„Es war eine solche Verbesserung gegenüber den meisten seiner Nachfolger“
Original: http://staff.um.edu.mt/jskl1/asu/index.html von Jarek Sklenar
(Tony Hoare’s Kommentar zu Algol 60)
Die objektorientierte Simulation (OOS) kann als Sonderfall der objektorientierten Programmierung (OOP) betrachtet werden. Einige Prinzipien der OOP wie das Vorhandensein einer unterschiedlichen Anzahl von Instanzen von störenden Objekten sind in der Simulationsumgebung seit langem Standard und oft in anderer Terminologie. Die SIMULA-Sprache (früher SIMULA 67 genannt) ist die erste echte objektorientierte Sprache. Da es ziemlich alt ist, hat es immer noch die meisten (und alle wichtigen) Mechanismen und Prinzipien der OOP. Mit Ausnahme der Beta-Programmiersprache sind andere weit verbreitete OOP-Sprachen konzeptionelle Teilmengen der SIMULA-Sprache, deren Standard 1967 definiert wurde. Einige Dinge wie Klassen, Vererbung, virtuelle Methoden usw. wurden in SIMULA schon lange definiert, bevor sie durch den OOP-Boom in den 80er Jahren wieder entdeckt wurden. Um mehr über SIMULA zu erfahren, besuchen Sie die Seite der ASU (Association of SIMULA Users) mit weiteren Referenzen.
SIMULA wurde kritisiert, dass es auf der einen Seite eine hohe Komplexität der Sprache selbst gibt, kombiniert mit eher begrenzten Simulationsmöglichkeiten außer der Zeitsteuerung auf der anderen Seite. Der Mangel an unterstützenden Simulationswerkzeugen wie transparente Erfassung von Statistiken, fortgeschrittenere Warteschlangen als die in der Systemklasse Simset verfügbaren Grundlisten, Berichtsgenerierung usw. ist darauf zurückzuführen, dass die Sprache 1968 offiziell eingefroren wurde. Diese Entscheidung war umstritten. Der Vorteil ist, dass es nur eine SIMULA mit minimalen Unterschieden zwischen den Implementierungen gibt. Andererseits wurde die zukünftige Entwicklung erschwert. SIMULA ist damit eher ein OOP-Hintergrund für die Erstellung von Simulationstools als eine komplette benutzerfreundliche Simulationsumgebung. Das wohl bekannteste dieser Werkzeuge ist DEMOS (Birtwistle 1979). DEMOS ist keine Unterklasse der Systemklasse Simulation und somit können die Benutzer keine Prozesse der Simulation verwenden. Ich bin überzeugt, dass die prozessorientierte diskrete Simulation die fortschrittlichste und natürlichste Art der Erstellung von Simulationsmodellen ist. Der Klassenprozess der Simulation ist die erste Oberklasse dieses Typs. Die Prozesshandhabungseinrichtungen der Simulation sind somit eine Art Standard, der in vielen späteren Simulationswerkzeugen kopiert wurde. Um die Prozesse der Simulation uneingeschränkt verfügbar zu halten, habe ich eine einfache Erweiterung der Simulation geschrieben, die die Bedienung benutzerfreundlicher macht. Es gibt zwei Hauptklassen:
- statsim deklariert Klassen für statistisch beobachtete Objekte (mit oder ohne Zeit) zusammen mit einer zufälligen Variablen mit empirischer Tabellenverteilung. Statistische Objekte können ein Histogramm erzeugen und die Verteilung (cdf) in einer Datei speichern. Empirische Zufallszahlenobjekte können es laden, so dass es möglich ist, Simulationsergebnisse in anderen Modellen zu verwenden. Verfahren für einige theoretische Zufallsverteilungen sind ebenfalls verfügbar.
- quesim deklariert Klassen zur Simulation von Warteschlangennetzwerken. Es gibt Klassen für einen generischen Kunden, verschiedene Arten von Warteschlangen, Multichannel-Server und die gesamte Single Queue Service Station. Neben den üblichen Statistiken über Warteschlangenlänge, Wartezeit, Auslastung der Server usw. ist es auch möglich, Warte- und Serviceleistungen zu erhalten.
Ich nenne das Tool QUESIM. Besuchen Sie die QUESIM-Homepage, um mehr darüber zu erfahren und herunterzuladen.
Das große Ereignis in der Geschichte von SIMULA ist hier: Sie können einen kostenlosen Port des CIM SIMULA für Windows erhalten, der sehr einfach zu installieren und zu bedienen ist. Petr Novak, Absolvent der Karlsuniversität Prag (unter der Leitung von Evzen Kindler), hat einen unglaublich kurzen Port geschaffen (alle auf einer Diskette!!!), der von jedem innerhalb weniger Minuten installiert werden kann. Um den CIM/win32-Port herunterzuladen, besuchen Sie die Seite Cim 3.33 (Port für 32-Bit-Windows). Beachten Sie, dass diese Version von SIMULA den gesamten Speicher nutzt und dass sie eine erweiterte Klasse Terminal zur Steuerung des Textbildschirms inklusive Maus enthält. Grafiken sind derzeit nicht verfügbar. UOM-Studenten können den Port direkt anfordern – kontaktieren Sie mich.
Sie können auch das Dokument Einführung zu OOP der SIMULA lesen, das auf einem Vortrag basiert, der an der Universität Malta anlässlich des 30-jährigen Bestehens von SIMULA gehalten wurde.
Um mehr über die Geschichte von Simula zu erfahren, gibt es zwei sehr interessante Beiträge:
Holmevik, J.R. (1994). “ Erstellung von SIMULA: eine historische Studie über die technologische Genese.“ IEEE Annals of the History of Computing, 16 (4), S. 25-37, 1994. Das Papier wurde auch auf der 18. ASU-Konferenz 1992 vorgestellt und im SIMULA Newsletter Vol.20(1), Oktober 1992, veröffentlicht.
Dank der freundlichen Genehmigung von Herrn Holmevik können Sie eine lokale Kopie seiner Arbeit Compiling SIMULA herunterladen.
Krogdahl, S. (2003). „Die Geburt der Simula“ Dieses Papier wird in den Proceedings der HiNC 1 Konferenz in Trondheim, Juni 2003 (IFIP AG 9.7, in Zusammenarbeit mit IFIP TC 3) veröffentlicht. Redakteure: Janis A. Burbenko jr., John Impagliazzo, Arne Sølvberg.
Gehen Sie zum SIMULA Mailing Center, um eine Liste der Personen zu durchsuchen, die an der objektorientierten Modellierung und Simulation beteiligt sind. Diese Liste ist sicherlich nicht vollständig, also können Sie sich gerne um eine Teilnahme bewerben.