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 pernewinstanziiert. - 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.