Simulation Readings Series SIMULA’s Place in Simulation History


Journal Title

Journal ISSN

Volume Title



SIMULA (SIMulation LAnguage) is a computer programming language that was conceptualized, designed, and created at the Norwegian Computing Centre in Oslo by Ole-Johan Dahl and Kristen Nygaard. Originally, SIMULA was intended to facilitate development of models for complex real world systems. It contained elements of both a standardized system description and a programming language. With system concepts based on Nygaard's experience working with operations research projects in the early 1950's, SIMULA was implemented as a discrete event computer simulation language. Initial constructs were influenced by symbolic notation used in the 1950's to construct flow diagrams representing system operation and rules governing system behaviors [1].

Early foundations for SIMULA first appeared in 1961. By this time, Nygaard had developed a fragmentary set of ideas that relied on Monte Carlo techniques to represent random variation in the occurrence of delays experienced by customers passing through a network of processes. These processes consisted of a queue portion and a service portion. The service portions were constructed with a series of statements governing the action of passive entities or customers that used these stations. Customers were created at a given station and after completing service, would be transferred to the queue of another station. After obtaining and completing service there, the process would be repeated. These transfers would continue until the customer had traversed the network and left the system. The timing and sequence of these stations would determine the number of customers that could be served over a period of time [2].

Although Nygaard had experience with computers, he did not have sufficient knowledge to develop his own programming language. He recruited software expert Ole-Johan Dahl to help him move SIMULA from theory to implementation. In the spring of 1962 Nygaard and Dahl released the first formal proposal for SIMULA. They decided that the best way to make it a real programming language was to link it to an existing, strong language. ALGOL 60, a popular programming language in Europe at the time was selected and SIMULA was developed as an extension, which allowed discrete event simulation construction. Later, SIMULA was expanded and re-implemented as a full-scale general purpose programming language. Although SIMULA has never achieved wide usage, the concepts developed within the language have been highly influential on modern computer programming. SIMULA has been credited with introducing objectoriented programming concepts like classes, objects, inheritance, and dynamic binding [3].

SIMULA's primary use is to develop computer models of systems such as ticket counters, production lines, manufacturing systems, and concurrent processing of computer programs. Today a wide variety of discrete event computer simulation software packages, such as GPSS/H, SIMAN, and ProModel, are used to create similar applications [4–8].

For further reading on simulation in general see Robinson [9–11].


Citation: McHaney, Roger, Simulation Readings Series: SIMULA’s Place in Simulation History, Kansas State University, Manhattan, Kansas


SIMULA, SIMulation LAnguage, Computer Programming Language, Ole-Johan Dahl, Kristen Nygaard