Learn SIMULA with Real Code Examples
Updated Nov 21, 2025
Explain
Simula allows developers to model real-world systems through objects and classes.
It supports structured programming, inheritance, and simulation constructs.
Commonly used for discrete event simulation, academic research, and as a precursor to modern OO languages.
Core Features
Classes and subclasses with instance variables
Object-oriented design with inheritance
Coroutines for cooperative multitasking
Typed variables and strong type checking
Simulation-specific constructs for modeling processes
Basic Concepts Overview
Classes, objects, and inheritance
Coroutines for cooperative multitasking
Strong typing and variable declarations
Simulation constructs: processes, events, queues
Procedures and structured programming
Project Structure
src/ - Simula source files
lib/ - optional reusable class libraries
bin/ - compiled executables
tests/ - simulation test scenarios
docs/ - documentation and modeling notes
Building Workflow
Write Simula source code (.sim or .sml files)
Define classes and subclasses
Compile using the Simula compiler
Run simulation and monitor outputs
Debug using compiler messages and test simulations
Difficulty Use Cases
Beginner: small simulations of processes
Intermediate: object-oriented modeling
Advanced: large discrete-event simulations
Expert: language research and teaching OO principles
Historical/academic: studying Simula's influence on OO design
Comparisons
First language to introduce classes and objects
Coroutines for simulation unlike Pascal or Algol
Less practical for modern production than Java/C++
Focused on discrete-event simulation
Historical significance in OO programming evolution
Versioning Timeline
1962β1965 β Initial Simula concepts at Norsk Regnesentral
1967 β Simula I for simulation
1967β1968 β Simula 67 released with classes and objects
1970sβ1980s β Academic and research adoption
2025 β Historical and educational use
Glossary
Class: blueprint for objects
Object: instance of a class
Inheritance: subclass derives from superclass
Coroutine: cooperative multitasking process
Simulation: modeling of real-world processes