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, and was also influenced by the design of SIMSCRIPT.

Simula 67 introduced objects, classes, inheritance and subclasses, virtual procedures, coroutines, and discrete event simulation, and featured garbage collection. 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.