<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Simula</id>
	<title>Simula - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Simula"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Simula&amp;action=history"/>
	<updated>2026-05-21T18:01:41Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Simula&amp;diff=103275&amp;oldid=prev</id>
		<title>imported&gt;RaLusch: Link http://www.isima.fr/asu/ ungültig; Alternative fehlt</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Simula&amp;diff=103275&amp;oldid=prev"/>
		<updated>2022-12-18T17:09:23Z</updated>

		<summary type="html">&lt;p&gt;Link http://www.isima.fr/asu/ ungültig; Alternative fehlt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Simula&amp;#039;&amp;#039;&amp;#039; ist eine [[Programmiersprache]], die von [[Ole-Johan Dahl]] und [[Kristen Nygaard]] in den 1960er Jahren am &amp;#039;&amp;#039;Norsk Regnesentral&amp;#039;&amp;#039; &amp;#039;&amp;#039;(Norwegisches Rechenzentrum)&amp;#039;&amp;#039; an der [[Universität Oslo]] entwickelt wurde, um Simulationen von z.&amp;amp;nbsp;B. physikalischen Prozessen am Rechner durchführen zu können.&lt;br /&gt;
&lt;br /&gt;
Die Sprache gilt als erste [[Objektorientierte Programmierung|objektorientierte Programmiersprache]]. Sie baute auf der Definition von [[Algol 60]] auf, ist blockstrukturiert mit den üblichen Grunddatentypen und Kontrollstrukturen und führt [[Klasse (Objektorientierung)|Klassen]] ein, die die Konzepte von Datenstrukturen und [[Koroutine]]n vereinigen.&lt;br /&gt;
&lt;br /&gt;
Simula gilt als Vorgänger von [[Smalltalk (Programmiersprache)|Smalltalk]]. 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 von [[C++]]; die Sprache benutzte schon damals einige der noch heute in modernen objektorientierten Programmiersprachen verwendeten Schlüsselwörter wie &amp;#039;&amp;#039;&amp;#039;class&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;new&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;this&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Das Wort &amp;#039;&amp;#039;Simula&amp;#039;&amp;#039; setzt sich aus den Bestandteilen &amp;#039;&amp;#039;simu&amp;#039;&amp;#039; für &amp;#039;&amp;#039;&amp;lt;u&amp;gt;simu&amp;lt;/u&amp;gt;lation&amp;#039;&amp;#039; und &amp;#039;&amp;#039;la&amp;#039;&amp;#039; für &amp;#039;&amp;#039;&amp;lt;u&amp;gt;la&amp;lt;/u&amp;gt;nguage&amp;#039;&amp;#039; zusammen.&lt;br /&gt;
&lt;br /&gt;
== Objekte ==&lt;br /&gt;
Die Sprache basiert auf [[Algol 60]], ergänzt diese aber um &amp;lt;!-- frühe (was sind frühe Konzepte??) --&amp;gt;Konzepte von [[Objekt (Programmierung)|Objekten]] und [[Koroutine]]n. Simula führt auch das Klassenkonzept ein. Was in späteren Jahren unter den Begriffen Datenabstraktion – das Verbergen von Implementierungsdetails – oder [[Modularisierung]] – das Trennen eines Programms in Funktionseinheiten – bekannt wurde, ist schon in &amp;#039;&amp;#039;Simula&amp;#039;&amp;#039; als Begriff vorhanden. Ein Objekt fasst Untereinheiten ggf. unterschiedlicher [[Datentyp]]en zu einer neuen Einheit zusammen. Zur Manipulation eines Objektes werden dazu passende Prozeduren und Funktionen vereinbart.&lt;br /&gt;
&lt;br /&gt;
In &amp;#039;&amp;#039;Simula&amp;#039;&amp;#039; 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 als [[Vererbung (Programmierung)|Vererbung]] bezeichnet wird.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich gibt es eine Möglichkeit, sogenannte [[Koroutine]]n zu vereinbaren, damit Objekte miteinander kommunizieren und selbständig agieren können; und es gibt große Bibliotheken mit Funktionen zur Verwaltung von [[Warteschlange (Datenstruktur)|Warteschlangen]] und zur Ausführung von [[Prozedur (Programmierung)|Prozeduren]] 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:&lt;br /&gt;
&lt;br /&gt;
Vereinbarung einer Klassendefinition:&lt;br /&gt;
&lt;br /&gt;
 class datum;&lt;br /&gt;
 begin&lt;br /&gt;
   integer tag, monat, jahr;&lt;br /&gt;
   jahr := 1992;&lt;br /&gt;
 end;&lt;br /&gt;
&lt;br /&gt;
Erzeugung eines „Datum-Objektes“:&lt;br /&gt;
&lt;br /&gt;
 ref (datum) heute;    (* Variable vom Typ &amp;quot;Zeiger auf datum&amp;quot; *)&lt;br /&gt;
 heute :- new datum;   (* Erzeugung eines Objektes und Zuweisung&lt;br /&gt;
                          der Referenz an &amp;quot;heute&amp;quot; mit &amp;quot;:-&amp;quot;    *)&lt;br /&gt;
 outint(datum.jahr,6); (* Ausgabe der Jahreszahl *)&lt;br /&gt;
&lt;br /&gt;
Verwendung von Datum als Oberklasse – der Wochentag wird hinzugefügt:&lt;br /&gt;
&lt;br /&gt;
 datum class tagesdatum;&lt;br /&gt;
 begin&lt;br /&gt;
   ref (string) wochentag;&lt;br /&gt;
 end;&lt;br /&gt;
&lt;br /&gt;
== Entstehungsgeschichte ==&lt;br /&gt;
1962 trafen sich Ole-Johan Dahl und Kristen Nygaard am &amp;#039;&amp;#039;Norsk Regnesentral (NR)&amp;#039;&amp;#039; in Oslo, im selben Jahr wurde eine erste formale Beschreibung der Sprache auf dem [[IFIP]] 62 Weltkongress in München vorgestellt. Als [[Sperry Rand|UNIVAC]] das Simula-Projekt unterstützte, wurde eine [[UNIVAC 1100/2200|UNIVAC 1107]] am NR installiert. Ein erster Prototyp eines Simula-[[Compiler]]s lief 1964 auf der &amp;#039;&amp;#039;UNIVAC 1107&amp;#039;&amp;#039; des NR und das &amp;#039;&amp;#039;&amp;#039;Simula-I&amp;#039;&amp;#039;&amp;#039;-Handbuch wurde 1965 veröffentlicht. 1967 erschien die überarbeitete Sprachversion &amp;#039;&amp;#039;&amp;#039;Simula-67&amp;#039;&amp;#039;&amp;#039;, 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.&lt;br /&gt;
&lt;br /&gt;
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 die &amp;#039;&amp;#039;eigenen&amp;#039;&amp;#039; Daten und das &amp;#039;&amp;#039;eigene&amp;#039;&amp;#039; Verhalten selbst zuständig war.&lt;br /&gt;
&lt;br /&gt;
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 Buch &amp;#039;&amp;#039;SIMULA begin&amp;#039;&amp;#039; gilt auch in Deutschland als Klassiker. [[Bjarne Stroustrup]], der als Student das Programmieren mit Simula erlernt hatte und bei seinem späteren Arbeitgeber [[AT&amp;amp;T]] in [[C (Programmiersprache)|C]] programmieren musste, reicherte C mit Hilfe eines [[Präprozessor]]s ([[cfront]]) um die wesentlichen Konstrukte von Simula an, um weiter in der erlernten Art programmieren zu können. Seine Erweiterung hieß zunächst &amp;#039;&amp;#039;C with classes&amp;#039;&amp;#039; und ist heute als [[C++]] bekannt.&lt;br /&gt;
&lt;br /&gt;
Ein Nachfolger von Simula mit dem Namen [[Beta (Programmiersprache)|Beta]] wurde zwar entwickelt, aber kaum eingesetzt.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur&lt;br /&gt;
 | Autor=[[Helmut Rohlfing]]&lt;br /&gt;
 | Titel=SIMULA. Eine Einführung&lt;br /&gt;
 | Verlag=Bibliographisches Institut&lt;br /&gt;
 | Ort= Mannheim&lt;br /&gt;
 | Jahr=1973&lt;br /&gt;
 | ISBN=3-411-00747-8&lt;br /&gt;
}}&lt;br /&gt;
* {{Literatur&lt;br /&gt;
 | Autor=G. M. Birtwhistle and O.-J. Dahl and B Myhrhaug and  K. Nygaard&lt;br /&gt;
 | Titel=SIMULA begin&lt;br /&gt;
 | Verlag=Studentlitteratur&lt;br /&gt;
 | Ort=Lund, Schweden&lt;br /&gt;
 | Jahr=1973&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* {{DNB-Portal|4191599-9|TYP=Literatur über}}&lt;br /&gt;
* Ole-Johan Dahl: [http://simula67.at.ifi.uio.no/Archive/Birth-of-S.pdf &amp;#039;&amp;#039;The Birth of Object Orientation&amp;#039;&amp;#039;] (PDF; 132&amp;amp;nbsp;kB) – englische, ausführliche Darstellung der Historie&lt;br /&gt;
* Dahl, Ole-Johan; Nygaard, Kristen: Simula – An Algol-based Simulation Language. CACM, 9(9):671–678, 1966.&lt;br /&gt;
* [https://web.archive.org/web/20150518071901/http://www.macs.hw.ac.uk/~rjp/bookhtml/ An Introduction to Programming in Simula] Eine Einführung von Rob Pooley in HTML Form&lt;br /&gt;
&lt;br /&gt;
{{Normdaten|TYP=s|GND=4191599-9|LCCN=|NDL=|VIAF=}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Objektorientierte Programmiersprache]]&lt;br /&gt;
[[Kategorie:Computersimulation]]&lt;/div&gt;</summary>
		<author><name>imported&gt;RaLusch</name></author>
	</entry>
</feed>