Top 1K Features Creators Events Podcasts Books Extensions Interviews Blog Explorer CSV

Simula

< >

Simula is a programming language created in 1965 by Ole-Johan Dahl and Kristen Nygaard.

#350on PLDB 59Years Old
REPL · Try It Online · Wikipedia · Docs

Simula is the name of two simulation programming languages, Simula I and Simula 67, developed in the 1960s at the Norwegian Computing Center in Oslo, by Ole-Johan Dahl and Kristen Nygaard. Syntactically, it is a fairly faithful superset of ALGOL 60. Simula 67 introduced objects, classes, inheritance and subclasses, virtual procedures, coroutines, and discrete event simulation, and features garbage collection. Read more on Wikipedia...


Example from hello-world:
Begin OutText ("Hello World"); Outimage; End;
! Hello World in Simula; BEGIN OutText("Hello World!"); OutImage; END
Example from Wikipedia:
Simulation Begin Class FittingRoom; Begin Ref (Head) door; Boolean inUse; Procedure request; Begin If inUse Then Begin Wait (door); door.First.Out; End; inUse:= True; End; Procedure leave; Begin inUse:= False; Activate door.First; End; door:- New Head; End; Procedure report (message); Text message; Begin OutFix (Time, 2, 0); OutText (": " & message); OutImage; End; Process Class Person (pname); Text pname; Begin While True Do Begin Hold (Normal (12, 4, u)); report (pname & " is requesting the fitting room"); fittingroom1.request; report (pname & " has entered the fitting room"); Hold (Normal (3, 1, u)); fittingroom1.leave; report (pname & " has left the fitting room"); End; End; Integer u; Ref (FittingRoom) fittingRoom1; fittingRoom1:- New FittingRoom; Activate New Person ("Sam"); Activate New Person ("Sally"); Activate New Person ("Andy"); Hold (100); End;

Language features

Feature Supported Example Token
Booleans ✓ True False
Strings ✓ "Hello world" "
Assignment ✓ :=
Print() Debugging ✓ OutText
Line Comments ✓ ! A comment !
Comments ✓
Semantic Indentation X

- Build the next great programming language · Add · Issues · About · Search · Keywords · Livestreams · Labs · Resources · Acknowledgements

Built with Scroll v154.2.0