Simula

Simula
ParadigmsMulti-paradigm: procedural, imperative, structured, object-oriented
FamilyALGOL
Designed byOle-Johan Dahl
DeveloperKristen Nygaard
First appeared1962 (1962)
Stable release
Simula 67, Simula I
Typing disciplineStatic, nominative
ScopeLexical
Implementation languageALGOL 60 (mostly)
SIMSCRIPT (some parts)
OSUnix-like, Windows, z/OS, TOPS-10, MVS
Websitewww.simula67.info
Influenced by
ALGOL 60, SIMSCRIPT
Influenced
BETA, CLU, Eiffel, Emerald, Pascal, Smalltalk, C++, and many other object-oriented programming languages

Simula is the name of two simulation programming languages, Simula I and Simula 67, developed in the 1960s at the Norwegian Computing Center in Oslo, by Ole-Johan Dahl and Kristen Nygaard. Syntactically, it is an approximate superset of ALGOL 60,:1.3.1 and was also influenced by the design of SIMSCRIPT.

Simula 67 introduced objects,:2,5.3 classes,:1.3.3,2 inheritance and subclasses,:2.2.1 virtual procedures,:2.2.3 coroutines,:9.2 and discrete event simulation,:14.2 and featured garbage collection.:9.1 Other forms of subtyping (besides inheriting subclasses) were introduced in Simula derivatives.

Simula is considered the first object-oriented programming language. As its name suggests, the first Simula version by 1962 was designed for doing simulations; Simula 67 though was designed to be a general-purpose programming language 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 protocols, algorithms, 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. Simula-type objects are reimplemented in C++, Object Pascal, Java, C#, and many other languages.