The following account is based on Jan Rune Holmevik's historical essay.
Kristen Nygaard started writing computer simulation programs in 1957. Nygaard saw a need for a better way to describe the heterogeneity and the
operation of a system. To further develop his ideas for a
computer language to describe a system, Nygaard realized that he needed someone with more
computer programming skills than he had.
Ole-Johan Dahl joined him on his work in January 1962. Shortly after, the decision was made to link the language to
ALGOL 60. By May 1962, the main concepts for a
simulation language were established;
SIMULA I, a specialized programming language designed for simulating discrete event systems, was born. Kristen Nygaard was invited to visit the
Eckert–Mauchly Computer Corporation in late May 1962 in connection with the marketing of their new
UNIVAC 1107 computer. At that visit, Nygaard presented the ideas of Simula to
Robert Bemer, the director of systems programming at
Univac. Bemer was a great
ALGOL fan and found the Simula project compelling. Bemer was also
chairperson of a session at the second international conference on information processing hosted by
International Federation for Information Processing (IFIP). He invited Nygaard, who presented the paper "SIMULA – An Extension of ALGOL to the Description of Discrete-Event Networks". The
Norwegian Computing Center got a
UNIVAC 1107 in August 1963 at a considerable discount, on which Dahl implemented the SIMULA I under contract with UNIVAC. The implementation was based on the UNIVAC
ALGOL 60 compiler. SIMULA I was fully operational on the UNIVAC 1107 by January 1965. In the following few years, Dahl and Nygaard spent a lot of time teaching Simula. Simula spread to several countries around the world and SIMULA I was later implemented on other computers including the
Burroughs B5500 and the Russian
Ural-16. In 1966
C. A. R. Hoare introduced the concept of record class construct, which Dahl and Nygaard extended with the concept of prefixing and other features to meet their requirements for a generalized process concept. Dahl and Nygaard presented their paper on
class and
subclass declarations at the IFIP Working Conference on
simulation languages in
Oslo, May 1967. This paper became the first formal definition of Simula 67. In June 1967, a conference was held to standardize the language and initiate a number of implementations. Dahl proposed to unify the
type and the class concept. This led to serious discussions, and the proposal was rejected by the board. Simula 67 was formally standardized on the first meeting of the Simula Standards Group (SSG) in February 1968. Simula was influential in the development of
Smalltalk and later
object-oriented programming languages. It also helped inspire the
actor model of concurrent computation although Simula only supports
coroutines and not true
concurrency. In the late sixties and the early seventies, there were four main implementations of Simula: •
UNIVAC 1100 by
Norwegian Computing Center (NCC) •
System/360 and
System/370 by NCC •
CDC 3000 by
University of Oslo's Joint Computer Installation at Kjeller •
TOPS-10 by
Swedish National Defence Research Institute (FOA) These implementations were ported to a wide range of platforms. The
TOPS-10 implemented the concept of public, protected, and private member variables and procedures, that later was integrated into Simula Standard in 1986. Simula Standard 1986 is the latest standard and is ported to a wide range of platforms. There are mainly four implementations: • Simula AS • Lund Simula • GNU Cim • Portable Simula Revisited In November 2001, Dahl and Nygaard were awarded the
IEEE John von Neumann Medal by the
Institute of Electrical and Electronics Engineers "For the introduction of the concepts underlying object-oriented programming through the design and implementation of SIMULA 67". In April 2002, they received the 2001 A. M.
Turing Award by the
Association for Computing Machinery (ACM), with the citation: "For ideas fundamental to the emergence of object oriented programming, through their design of the programming languages Simula I and Simula 67." Dahl and Nygaard died in June and August of that year, respectively, before the ACM Turing Award Lecture that was scheduled to be delivered at the November 2002
OOPSLA conference in Seattle.
Simula Research Laboratory is a
research institute named after the Simula language, and Nygaard held a part-time position there from the opening in 2001. The new Computer Science building at the
University of Oslo is named Ole Johan Dahl's House, in Dahl's honour, and the main auditorium is named Simula. == Sample code ==