Many of the important object-oriented concepts stem from the Simula programming language
developed in Norway in the mid-1960s to support simulation of ‘real world’ processes
(Dahl and Nygaard, 1966), although object-oriented programming did not emerge as a new
programming paradigm until the development of the Smalltalk language (Goldberg and
Robson, 1983). Modules in Simula are not based on procedures as they are in conventional
programming languages, but on the physical objects being modeled in the simulation. This
seemed a sensible approach as the objects are the key to the simulation: each object has to
maintain some information about its current state, and additionally has actions (behavior)
that have to be modeled. From Simula, we have the definition of an object.