SIMULA I
<language> SIMUlation 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].