Content deleted Content added
m →History: add citation about simula's prefixing concept. |
|||
Line 128:
In 1962, [[Kristen Nygaard]] initiated a project for a simulation language at the [[Norwegian Computing Center]], based on his previous use of the [[Monte Carlo method|Monte Carlo simulation]] and his work to conceptualise real-world systems. [[Ole-Johan Dahl]] formally joined the project and the [[Simula]] programming language was designed to run on the [[UNIVAC I|Universal Automatic Computer]] (UNIVAC) 1107. Simula introduced important concepts that are today an essential part of object-oriented programming, such as [[Class (computer programming)|class]] and [[Object (computer science)|object]], inheritance, and [[Dynamic binding (computing)|dynamic binding]].<ref name="auto">{{Cite journal|last = Holmevik|first = Jan Rune|title = Compiling Simula: A historical study of technological genesis|journal = IEEE Annals of the History of Computing|volume = 16|issue = 4|pages = 25–37|year = 1994|url = http://www.idi.ntnu.no/grupper/su/publ/simula/holmevik-simula-ieeeannals94.pdf|doi = 10.1109/85.329756|s2cid = 18148999|access-date = 3 March 2018|archive-date = 30 August 2017|archive-url = https://web.archive.org/web/20170830065454/http://www.idi.ntnu.no/grupper/su/publ/simula/holmevik-simula-ieeeannals94.pdf|url-status = dead}}</ref> Simula was also designed to take account of programming and [[data security]]. For programming security purposes a detection process was implemented so that through [[Reference counting|reference counts]] a last resort [[Garbage collection (computer science)|garbage collector]] deleted unused objects in the [[random-access memory]] (RAM). But although the idea of data objects had already been established by 1965, data encapsulation through [[Scope (computer science)|levels of scope]] for [[Variable (computer science)|variables]], such as private (-) and public (+), were not implemented in Simula because it would have required the accessing procedures to be also hidden.<ref>{{Cite book|last = Dahl |first = Ole Johan|year = 2004 |chapter-url = http://www.mn.uio.no/ifi/english/about/ole-johan-dahl/bibliography/the-birth-of-object-orientation-the-simula-languages.pdf |doi = 10.1007/978-3-540-39993-3_3|access-date =3 March 2018 |chapter = The Birth of Object Orientation: The Simula Languages|title = From Object-Orientation to Formal Methods|volume = 2635|pages = 15–25|series = Lecture Notes in Computer Science|isbn = 978-3-540-21366-6|citeseerx = 10.1.1.133.6730}}</ref>
In the early stages, Simula was supposed to be a procedure package for the programming language [[ALGOL]] 60. Dissatisfied with the restrictions imposed by ALGOL the researchers decided to develop Simula into a fully-fledged programming language, which used the UNIVAC ALGOL 60 compiler. Simula was promoted by Dahl and Nygaard throughout 1965 and 1966, leading to increasing use of the programming language in Sweden, Germany and the [[Soviet Union]]. In 1968, the language became widely available through the [[Burroughs large systems|Burroughs B5500 computers]], and was later also implemented on the [[Ural (computer)|URAL-16 computer]]. In 1966, Dahl and Nygaard wrote a Simula [[compiler]]. They became preoccupied with putting into practice [[Tony Hoare]]'s record class concept, which had been implemented in the free-form, English-like general-purpose simulation language [[SIMSCRIPT]]. They settled for a generalised process concept with record class properties, and a second layer of prefixes. Through prefixing, a process could reference its predecessor and have additional properties. Simula thus introduced the class and subclass hierarchy, and the possibility of generating objects from these classes.
{{Cite journal
|last = Nygaard
|first = Kristen
|title = The Development of the SIMULA Languages
|journal = ACM SIGPLAN Notices
|volume = 13
|issue = 8
|pages = 245–272
|year = 1978
|url = https://doi.org/10.1145/960118.808391
|doi = 10.1145/960118.808391
|access-date = 22 October 2021 }}
</ref>
A Simula 67 compiler was launched for the [[IBM System/360|System/360]] and [[IBM System/370|System/370]] [[IBM mainframe|IBM mainframe computers]] in 1972.<ref name="auto"/> In the same year a Simula 67 compiler was launched free of charge for the French [[CII 10070]] and [[CII Iris]] 80 [[mainframe computers]]. By 1974, the Association of Simula Users had members in 23 different countries. Early 1975 a Simula 67 compiler was released free of charge for the [[DECsystem-10]] mainframe family. By August the same year the DECsystem-10 Simula 67 compiler had been installed at 28 sites, 22 of them in North America. The object-oriented Simula programming language was used mainly by researchers involved with [[physical modelling]], such as models to study and improve the movement of ships and their content through cargo ports.<ref name="auto"/>
|