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