Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Simula
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Early object-oriented programming language}} {{about|the programming language|the village in Estonia|Simula, Estonia}} {{distinguish|text=[[Simulia (company)|Simulia]]}} {{Infobox programming language | name = Simula | logo = Simula - logo.svg | logo caption = | screenshot = <!-- Filename only --> | screenshot caption = | paradigms = [[Multi-paradigm programming language|Multi-paradigm]]: [[Procedural programming|procedural]], [[Imperative programming|imperative]], [[Structured programming|structured]], [[Object-oriented programming|object-oriented]] | family = [[ALGOL]] | designer = [[Ole-Johan Dahl]] | developer = [[Kristen Nygaard]] | released = {{Start date and age|1962}} | latest release version = Simula 67, Simula I | latest release date = <!-- {{Start date and age|1987}} --> | typing = [[Static type|Static]], [[Nominal type system|nominative]] | scope = [[Scope (computer science)|Lexical]] | programming language = [[ALGOL 60]] (mostly)<br/>[[SIMSCRIPT]] (some parts) | dialects = | influenced by = [[ALGOL 60]], [[SIMSCRIPT]] | influenced = [[BETA (programming language)|BETA]], [[CLU (programming language)|CLU]], [[Eiffel (programming language)|Eiffel]], [[Emerald (programming language)|Emerald]], [[Pascal (programming language)|Pascal]], [[Smalltalk]], [[C++]], and many other [[List of object-oriented programming languages|object-oriented programming languages]]<!-- criteria: says "influenced by simula" on page, not multi-paradigm --> | operating system = [[Unix-like]], [[Windows]], [[z/OS]], [[TOPS-10]], [[MVS]] | license = | website = {{URL|www.simula67.info}} }} '''Simula''' is the name of two [[Simulation language|simulation]] [[programming language]]s, Simula I and Simula 67, developed in the 1960s at the [[Norwegian Computing Center]] in [[Oslo]], by [[Ole-Johan Dahl]] and [[Kristen Nygaard]]. [[Syntax (programming languages)|Syntactically]], it is an approximate [[Subset|superset]] of [[ALGOL 60]],<ref name="CommonBase">{{cite report |last1=Dahl |first1=Ole-Johan |author-link=Ole-Johan Dahl |last2=Myhrhaug |first2=Bjรธrn |last3=Nygaard |first3=Kristen |author3-link=Kristen Nygaard |date=1970 |url=http://www.edelweb.fr/Simula/#7 |title=Common Base Language |publisher=Norwegian Computing Center |access-date=17 November 2020 |url-status=usurped |archive-url=https://web.archive.org/web/20131225084408/http://www.edelweb.fr/Simula/scb-1.pdf |archive-date=2013-12-25}}</ref>{{rp|1.3.1}} and was also influenced by the design of [[SIMSCRIPT]].<ref>{{cite web |title=The Development of the Simula Languages |url=https://hannemyr.com/cache/knojd_acm78.pdf |last=Nygaard |first=Kristen |author-link=Kristen Nygaard |date=1978 |quote=The development of .. SIMULA I and SIMULA 67... were influenced by the design of SIMSCRIPT ...}}</ref> Simula 67 introduced [[Object (computer science)|objects]],<ref name="CommonBase"/>{{rp|2, 5.3}} [[Class (computer programming)|classes]],<ref name="CommonBase"/>{{rp|1.3.3, 2}} [[Inheritance (object-oriented programming)|inheritance]] and [[Subclass (computer science)|subclasses]],<ref name="CommonBase"/>{{rp|2.2.1}} [[Virtual function|virtual procedures]],<ref name="CommonBase"/>{{rp|2.2.3}} [[coroutine]]s,<ref name="CommonBase"/>{{rp|9.2}} and [[discrete event simulation]],<ref name="CommonBase"/>{{rp|14.2}} and featured [[Garbage collection (computer science)|garbage collection]].<ref name="CommonBase"/>{{rp|9.1}} Other forms of [[subtyping]] (besides inheriting subclasses) were introduced in Simula derivatives.{{citation needed|date=December 2013}} Simula is considered the [[Object-oriented programming#History|first object-oriented programming language]]. As its name suggests, the first Simula version by 1962 was designed for doing [[simulation]]s; Simula 67 though was designed to be a general-purpose programming language<ref>Kristen Nygaard and Ole-Johan Dahl. 1978. The development of the SIMULA languages. History of programming languages. Association for Computing Machinery, New York, NY, USA, 439โ480. DOI:https://doi.org/10.1145/800025.1198392</ref> and provided the framework for many of the features of object-oriented languages today. Simula has been used in a wide range of applications such as simulating [[very-large-scale integration]] (VLSI) designs, [[process modeling]], [[communication protocol]]s, [[algorithm]]s, and other applications such as [[typesetting]], [[computer graphics]], and [[education]]. Computer scientists such as [[Bjarne Stroustrup]], creator of C++, and [[James Gosling]], creator of Java, have acknowledged Simula as a major influence.<ref>{{cite web |last=Wong |first=William |title=Before C, What Did You Use? |url=http://www.electronicdesign.com/embedded-revolution/c-what-did-you-use |website=Electronic Design |access-date=22 May 2017}}</ref> Simula-type objects are reimplemented in [[C++]], [[Object Pascal]], [[Java (programming language)|Java]], [[C Sharp (programming language)|C#]], and many other languages.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)