Movatterモバイル変換


[0]ホーム

URL:


Zum Inhalt springen
WikipediaDie freie Enzyklopädie
Suche

Simula

aus Wikipedia, der freien Enzyklopädie

Simula ist eineProgrammiersprache, die vonOle-Johan Dahl undKristen Nygaard in den 1960er Jahren amNorsk Regnesentral(Norwegisches Rechenzentrum) an derUniversität Oslo entwickelt wurde, um Simulationen von z. B. physikalischen Prozessen am Rechner durchführen zu können.

Die Sprache gilt als ersteobjektorientierte Programmiersprache. Sie baute auf der Definition vonAlgol 60 auf, ist blockstrukturiert mit den üblichen Grunddatentypen und Kontrollstrukturen und führtKlassen ein, die die Konzepte von Datenstrukturen undKoroutinen vereinigen.

Simula gilt als Vorgänger vonSmalltalk. Viele der mit Simula eingeführten Konzepte finden sich in modernen objektorientierten Programmiersprachen wieder. Das Klassenkonzept von Simula-67 diente beispielsweise als Vorbild für das vonC++; die Sprache benutzte schon damals einige der noch heute in modernen objektorientierten Programmiersprachen verwendeten Schlüsselwörter wieclass,new,this.

Das WortSimula setzt sich aus den Bestandteilensimu fürsimulation undla fürlanguage zusammen.

Objekte

[Bearbeiten |Quelltext bearbeiten]

Die Sprache basiert aufAlgol 60, ergänzt diese aber um Konzepte vonObjekten undKoroutinen. Simula führt auch das Klassenkonzept ein. Was in späteren Jahren unter den Begriffen Datenabstraktion – das Verbergen von Implementierungsdetails – oderModularisierung – das Trennen eines Programms in Funktionseinheiten – bekannt wurde, ist schon inSimula als Begriff vorhanden. Ein Objekt fasst Untereinheiten ggf. unterschiedlicherDatentypen zu einer neuen Einheit zusammen. Zur Manipulation eines Objektes werden dazu passende Prozeduren und Funktionen vereinbart.

InSimula ist diese Implementierung noch nicht für andere Blöcke unsichtbar, aber der erste Schritt in diese Richtung ist getan. Gibt es mehrere Objekte mit einer ähnlichen Struktur, die sich vielleicht nur in einigen Komponenten unterscheiden, so besteht die Möglichkeit, Ober- und Unterklassen zu vereinbaren, was heutzutage alsVererbung bezeichnet wird.

Zusätzlich gibt es eine Möglichkeit, sogenannteKoroutinen zu vereinbaren, damit Objekte miteinander kommunizieren und selbständig agieren können; und es gibt große Bibliotheken mit Funktionen zur Verwaltung vonWarteschlangen und zur Ausführung vonProzeduren zu festgelegten Zeitpunkten, so dass es auch möglich ist, umfangreiche Simulationen zu programmieren. Die Sprache fand außerhalb Europas kaum Verbreitung, obwohl sie in Skandinavien sehr verbreitet war. 1987 wurde der letzte gültige Simula-Standard verabschiedet. Hier ist ein Code-Beispiel:

Vereinbarung einer Klassendefinition:

class datum;begin  integer tag, monat, jahr;  jahr := 1992;end;

Erzeugung eines „Datum-Objektes“:

ref (datum) heute;    (* Variable vom Typ "Zeiger auf datum" *)heute :- new datum;   (* Erzeugung eines Objektes und Zuweisung                         der Referenz an "heute" mit ":-"    *)outint(datum.jahr,6); (* Ausgabe der Jahreszahl *)

Verwendung von Datum als Oberklasse – der Wochentag wird hinzugefügt:

datum class tagesdatum;begin  ref (string) wochentag;end;

Entstehungsgeschichte

[Bearbeiten |Quelltext bearbeiten]

1962 trafen sich Ole-Johan Dahl und Kristen Nygaard amNorsk Regnesentral (NR) in Oslo, im selben Jahr wurde eine erste formale Beschreibung der Sprache auf demIFIP 62 Weltkongress in München vorgestellt. AlsUNIVAC das Simula-Projekt unterstützte, wurde eineUNIVAC 1107 am NR installiert. Ein erster Prototyp eines Simula-Compilers lief 1964 auf derUNIVAC 1107 des NR und dasSimula-I-Handbuch wurde 1965 veröffentlicht. 1967 erschien die überarbeitete SprachversionSimula-67, für die auf mehreren damals existierenden Großrechnersystemen Compiler entwickelt wurden. In den 70er Jahren wurde Simula in der Praxis vielfach eingesetzt, und die theoretischen Konzepte der Sprache hatten großen Einfluss auf damals moderne Programmiersprachen. Die Konzepte der Objektorientierung wurden weiterentwickelt und schließlich in Smalltalk-80 erstmals konsequent umgesetzt. Die erste Smalltalk-Version wurde in Simula geschrieben.

Erzählt wird, dass Dahl und Nygaard an Schiffssimulationen gearbeitet hatten. Dabei ergab sich durch die kombinatorische Explosion von Parameterbeziehungen eine verwirrende Vielfalt an Möglichkeiten, wie sich die verschiedensten Attribute der unterschiedlichen Schiffe gegenseitig beeinflussen konnten. So kam die Idee auf, die unterschiedlichen Schiffstypen jeweils als eigenständige Objekte zu klassifizieren, wobei jede Klasse von Objekten für dieeigenen Daten und daseigene Verhalten selbst zuständig war.

Simula wird heute immer noch gelegentlich eingesetzt, aber der historische Einfluss der Sprache ist wichtiger als ihre Bedeutung in der modernen Programmierung. In den skandinavischen Ländern wurde Simula lange Zeit als Ausbildungssprache verwendet; das BuchSIMULA begin gilt auch in Deutschland als Klassiker.Bjarne Stroustrup, der als Student das Programmieren mit Simula erlernt hatte und bei seinem späteren ArbeitgeberAT&T inC programmieren musste, reicherte C mit Hilfe einesPräprozessors (cfront) um die wesentlichen Konstrukte von Simula an, um weiter in der erlernten Art programmieren zu können. Seine Erweiterung hieß zunächstC with classes und ist heute alsC++ bekannt.

Ein Nachfolger von Simula mit dem NamenBeta wurde zwar entwickelt, aber kaum eingesetzt.

Literatur

[Bearbeiten |Quelltext bearbeiten]
  • Helmut Rohlfing:SIMULA. Eine Einführung. Bibliographisches Institut, Mannheim 1973,ISBN 3-411-00747-8. 
  • G. M. Birtwhistle and O.-J. Dahl and B Myhrhaug and K. Nygaard:SIMULA begin. Studentlitteratur, Lund, Schweden 1973. 

Weblinks

[Bearbeiten |Quelltext bearbeiten]
Normdaten (Sachbegriff):GND:4191599-9 (GND Explorer,lobid,OGND,AKS)
Abgerufen von „https://de.wikipedia.org/w/index.php?title=Simula&oldid=228975304
Kategorien:

[8]ページ先頭

©2009-2026 Movatter.jp