The SIMULA programming language was designed and built by Ole-Johan Dahl and Kristen Nygaard at the Norwegian Computing Centre (NCC) in Oslo between 1962 and 1967. It was originally designed and implemented as a language for discrete event simulation, but was later expanded and reimplemented as a full scale general purpose programming language. Although SIMULA never became widely used, the language has been highly influential on modern programming methodology.

This is the genealogy of the programming language Simula:

Simula is a child of Algol.
Simula was born in year 1964.
It became Simula 67 in year 1967.
Then it begat Smalltalk in year 1969.
Then it begat C with Classes in year 1980.
Then it begat Eiffel in year 1986.

This genealogy is brought to you by the Programming Languages Genealogy Project.

"In the spring of 1967, a new employee of the Norwegian Computing Center in a very shocked voice told the switchboard operator: 'Two men are fighting violently in front of the blackboard in the upstairs corridor. What shall we do?' The operator came out of the office, listened for a few seconds and then said: 'Relax, it's only Dahl and Nygaard discussing SIMULA."


The SIMULA programming language was created by Kristen Nygaard and Ole-Johan Dahl. The idea for the language began in 1961, when Nygraad had an idea for a simulation language. That is, SIMULA was created to be a discrete event simulation language. A language that could, for example, be used to simulate an airport departure area, or a the work flow of a factory; a language that would be of interest to people in operations research, of which Nygraad was one.

Nygaard determined that he was not competent enough in programming languages to do it alone, and conscripted Dahl as the "expert programmer" for the project. In 1965, with the support of the Norwegian Computing Center and Univac, the first SIMULA compiler was born.

SIMULA I was successful in that it was very useful, and many people actually used it. This was thanks in part to advocacy from leaders in the field like Donald Knuth. It was the next SIMULA version though, SIMULA 67, that would leave a lasting mark in computer science.

SIMULA 67, contrary to what might be expected from the name, was not merely a simulation language. It was, in fact, a full general programming language that had a simulation environment as part of its library.

As a language, SIMULA was heavily influenced by ALGOL, especially ALGOL's block structure, and the distinction that ALGOL made between a block of text, and its dynamic instance of it. SIMULA expanded and generalized this block form and called it a class. The dynamic instance of a class was given the name object. Further, SIMULA, found a way to have a block inside the environment of another without having it be textually nested in the source code. This "nested" block was called a subclass.

SIMULA 67, while it was popular as a simulation language, did not become a very popular general purpose programming language. Perhaps this is due to the original authors' decision of keeping the name SIMULA. But also perhaps because SIMULA was surpassed by other languages who had taken SIMULA's lessons to heart, languages like Smalltalk. Nevertheless, SIMULA and its creators have a place in history as having introduced the world to object oriented programming.


References:
Kristen Nygraad, Ole-Johan Dahl, The Development of the SIMULA Languages, History of Programming Languages, 1981.
P. Wegner, Programming Languages -- the First 25 years, Programming Languages, a Grand Tour, 2nd Ed., E. Horowitz, ed. Computer Science Press, 1985.

Log in or registerto write something here or to contact authors.