SIMULA—an ALGOL-Based Simulation Language

SIMULA—an ALGOL-Based Simulation Language

September, 1966 | Ole-Johan Dahl and Kristen Nygaard
This paper introduces SIMULA, a programming language designed to facilitate the formal description of discrete event systems. SIMULA is an extension of ALGOL 60, incorporating the concept of quasi-parallel processing. The language is intended to help systems analysts describe and simulate systems with discrete events, such as nerve networks, communication systems, and traffic flow. Key features of SIMULA include: 1. **Process Concept**: SIMULA introduces the concept of processes, which are collections of programs operating in parallel. Processes perform their operations in groups called "active phases" or "events." 2. **Quasi-Parallel Processing**: Processes can be referenced individually and operate in a quasi-parallel manner, allowing for efficient simulation of complex systems. 3. **Remote Accessing**: The language supports remote accessing of process attributes, enabling interaction between processes. 4. **Sequencing Statements**: Statements that operate on the sequencing set (SQS) to alter the states of processes, such as scheduling events and deleting event notices. 5. **Main Program**: A SIMULA block serves as the main program, which can be part of an ordinary ALGOL program and functions as both a process and an outer block to other processes. The paper also includes examples of SIMULA programs, such as a job shop system and a simple epidemic model, to illustrate the language's capabilities. The authors acknowledge the contributions of various individuals and organizations in the development of SIMULA.This paper introduces SIMULA, a programming language designed to facilitate the formal description of discrete event systems. SIMULA is an extension of ALGOL 60, incorporating the concept of quasi-parallel processing. The language is intended to help systems analysts describe and simulate systems with discrete events, such as nerve networks, communication systems, and traffic flow. Key features of SIMULA include: 1. **Process Concept**: SIMULA introduces the concept of processes, which are collections of programs operating in parallel. Processes perform their operations in groups called "active phases" or "events." 2. **Quasi-Parallel Processing**: Processes can be referenced individually and operate in a quasi-parallel manner, allowing for efficient simulation of complex systems. 3. **Remote Accessing**: The language supports remote accessing of process attributes, enabling interaction between processes. 4. **Sequencing Statements**: Statements that operate on the sequencing set (SQS) to alter the states of processes, such as scheduling events and deleting event notices. 5. **Main Program**: A SIMULA block serves as the main program, which can be part of an ordinary ALGOL program and functions as both a process and an outer block to other processes. The paper also includes examples of SIMULA programs, such as a job shop system and a simple epidemic model, to illustrate the language's capabilities. The authors acknowledge the contributions of various individuals and organizations in the development of SIMULA.
Reach us at info@study.space