SIMULA I definition language
An extension to ALGOL 60
for the Univac 1107 designed in 1962 by Kristen Nygaard and Ole-Johan Dahl and implemented in 1964. SIMULA I was designed for discrete simulation. It introduced the record class
, leading the way to data abstraction
and object-oriented programming
languages like Smalltalk
. It also featured coroutines.
SIMULA's philosophy was the result of addressing the problems of describing complex systems for the purpose of simulating them. This philosophy proved to be applicable for describing complex systems generally (not just for simulation) and so SIMULA is a general-purpose object-oriented application programming language which also has very good discrete event simulation capability. Virtually all OOP products are derived in some manner from SIMULA.
For a description of the evolution of SIMULA and therefore the fundamental concepts of OOP, see Dahl and Nygaard in ["History of Programming Languages". Ed. R. W. Wexelblat. Addison-Wesley, 1981].