Simula ist die erste objektorientierte Programmiersprache der Welt. Sie wurde Mitte der 1960er-Jahre von Ole-Johan Dahl und Kristen Nygaard am Norwegian Computing Center in Oslo entwickelt – zuerst als Simulationssprache (Simula 1), 1967 verallgemeinert als Simula 67.

Warum Simula so wichtig ist

  • Klassen und Objekte: Simula führte das class-Konzept ein – Daten und Methoden werden zu einer Einheit gekapselt und per new instanziiert.
  • Vererbung: Klassen können von anderen Klassen abgeleitet werden; virtuelle Methoden erlauben dynamisches Binden.
  • Referenzvariablen: Objekte werden über Zeiger angesprochen, nicht über Kopien – die Grundlage aller späteren OO-Sprachen.
  • Coroutinen: Simula unterstützte nebenläufige Abläufe, die für die diskrete Ereignissimulation gebraucht wurden.

Simula-Konzepte im Beispiel

Simula
class Auto;
begin
  integer km;
  procedure fahren(n); integer n;
  begin km := km + n end;
end;

ref(Auto) a;
a :- new Auto;
a.fahren(100);

Simulas Erbe

Simula 67 basiert auf ALGOL 60 und erweiterte es um Klassen und Prozesse. Die Ideen von Simula beeinflussten direkt Smalltalk, C++ und Java. Auch die modulare Systematik von Modula-2 steht in der ALGOL-Tradition – Dahl und Nygaard erhielten 2001 gemeinsam mit Alan Kay den Turing Award für ihre Pionierarbeit.

Ohne Simula gäbe es die objektorientierte Programmierung in ihrer heutigen Form nicht.