Simulation und moderne Programmiersprachen. Modula, C, Ada
Autoren
Mehr zum Buch
Inhaltsverzeichnis1 Einführung.2 Anforderungen an die Programmiersprachen aus Sicht der Simulation.3 Kurze Einführung in die untersuchten Sprachen.3.1 Modula-2.3.1.1 Geschichtlicher Überblick.3.1.2 Erweiterungen und Unterschiede gegenüber Pascal.3.1.2.1 Das Modulkonzept.3.1.2.2 Sichtbarkeit, Gültigkeit und Lebensdauer.3.1.2.3 Maschinennahe Programmierung und Koroutinen.3.1.2.4 Datenstrukturen und strenge Typbindung.3.1.2.5 Syntaktische und semantische Änderungen.3.1.3 Zum Sprachumfang.3.2 “C”.3.2.1 Datentypen und Deklarationen.3.2.1.1 Elementare Datentypen.3.2.1.2 Zeigertypen.3.2.1.3 Strukturierte Datentypen.3.2.1.4 Deklarationen.3.2.1.5 Typprüfung.3.2.2 Ausdrücke und Anweisungen.3.2.2.1 Operanden.3.2.2.2 Operatoren und Ausdrücke.3.2.2.3 Anweisungen und Kontrollstrukturen.3.2.3 Programmstruktur.3.2.3.1 Funktionen.3.2.3.2 Blöcke.3.2.3.3 Getrennte Übersetzung und Speicherungsklassen.3.2.3.4 Typdefinitionen.3.2.4 Besonderheiten.3.2.4.1 Bezeichner.3.2.4.2 Präprozessor.3.2.4.3 Laufzeitbibliothek.3.2.5 Zusammenfassung.3.3 Ada.3.3.1 Geschichtlicher Überblick.3.3.2 Datenstrukturierung.3.3.2.1 Datentypen.3.3.2.2 Typenkonzepte und Objekt-Vereinbarungen.3.3.2.3 Strukturierte Datentypen.3.3.3 Unterprogramme.3.3.3.1 Parameter.3.3.3.2 Überladen (overloading).3.3.4 Modulkonzepte.3.3.4.1 Bibliothekseinheiten.3.3.4.2 Untereinheiten (subunits).3.3.4.3 Synonyme.3.3.4.4 Private Typen.3.3.5 Ausnahmen (exceptions).3.3.5.1 Deklaration und Auslösung.3.3.5.2 Behandlung und Übertragung.3.3.5.3 Anwendung.3.3.6 Prozesse.3.3.6.1 Deklaration.3.3.6.2 Ablaufsteuerung (scheduling).3.3.6.3 Synchronisation und Kommunikation.3.3.6.4 Alternative Eingangs-Bearbeitung.3.3.6.5 Alternative Eingangs-Aufrufe.3.3.6.6 Beendigung von Prozessen.3.3.7 Generische Programmeinheiten.3.3.7.1 Generische Vereinbarung.3.3.7.2 Generische Inkarnation.3.3.7.3 Generische Parameter.4 Die Simulationsumgebung und deren Implementation.4.1 Allgemeine Betrachtungen.4.1.1 Modularisierung.4.1.2 Zugriffsschutz.4.1.3 Freispeicherverwaltung.4.1.4 Simulationsstatistik.4.2 Ereignisorientierte Implementationen.4.2.1 Ereignislistenverwaltung (“EventChain”).4.2.2 Warteschlangenverwaltung (“Queue”).4.2.3 Verteilungsfunktionen (“Distributions”).4.2.4 Anmerkungen zu den Implementationen.4.2.4.1 Modula.4.2.4.2 “C”.4.2.4.3 Ada.4.3 Prozeßorientierte Implementation.4.3.1 Das Paket “Adaset”.4.3.2 Das Paket “Simulation”.4.3.2.1 Die Anwendersicht.4.3.2.2 Datenstrukturen.4.3.2.3 Die Ereignislistenverwaltung.4.3.2.4 Die Ablaufsteuerung von Prozessen.4.3.2.5 Prozeßalgorithmen.4.3.2.6 Bewältigung technischer Randprobleme.5 Realisierung eines Beispielmodells.5.1 Modell einer Fertigungsanlage (Jobshop-Modell).5.1.1 Zur Wahl des Modells.5.1.2 Modellspezifikation.5.1.3 Erweiterungen für die prozeßorientierte Version.5.2 Ereignisorientierte Version.5.2.1 Bestimmung der Ereignisarten.5.2.2 Umsetzung in Datenstrukturen und Prozeduren.5.2.2.1 Datenstrukturen.5.2.2.2 Prozeduren.5.2.3 Anmerkungen zur Statistik.5.2.4 Besonderheiten der einzelnen Implementationen.5.2.4.1 Anmerkungen zur Modula-Version.5.2.4.2 Anmerkungen zur “C”-Version.5.2.4.3 Anmerkungen zur Ada-Version.5.2.5 Diskussion der Ergebnisse.5.3 Prozeßorientierte Version (“Jobshop_Process”).5.3.1 Der Prozeß im Jobshop-Modell.5.3.2 Modularisierungskonzepte.5.3.3 Anbindung an die Simulationsumgebung.5.3.4 Probleme bei der Implementation.5.3.5 Module innerhalb “Jobshop_Process”.5.3.5.1 “Common”.5.3.5.2 “MachineGroup”.5.3.5.3 “Main”.5.3.6 Statistikführung.6 Bewertung der untersuchten Sprachen.6.1 Modularisierung.6.1.1 Vergleich der Konzepte.6.1.2 Das Problem der strengen Typbindung.6.2 Prozeßorientierte Simulation.6.3 Temporäre Objekte.6.4 Ein-/ Ausgabeformatierung.6.5 Verständlichkeit von Quelltexten.6.6 Verfügbarkeit von Übersetzern.6.7 Programmierumgebung.6.8 Zusammenfassung.7 Ausblick.7.1 Allgemeine Aspekte.7.1.1 Tracing.7.1.2 Automatische Statistik.7.1.3 Präprozessoren.7.2 Ereignisorientierter Ansatz.7.2.1 Das Modul “EventChain”.7.2.2 Das Modul “Queue”.7.2.3 Das Modul “Distributions”.7.3 Prozeßorientierter Ansatz.7.3.1 Modula-2: Die Prozeduren “NEWPROCESS” und “TRANSFER”.7.3.2 “C”: Die Funktionen “setjmp” und “longjmp”.7.3.3 Ada: Die Pakete “Simulation” und “Samoa”.Anhänge: Programmtexte.A Ereignisorientierte Version.A.1 Modula.A.1.1 Die Simulationsumgebung.A.1.1.1 EventChain.A.1.1.2 Queue.A.1.1.3 Distributions.A.1.1.4 FloatlnOut.A.1.2 Das Job-Shop-Modell.A.2 “C”.A.2.1 Die Simulationsumgebung.A.2.1.1 Spezifikationen.A.2.1.2 EventChain.A.2.1.3 Queue.A.2.1.4 Distributions.A.2.2 Das Job-Shop-Modell.A.3 Ada.A.3.1 Die Simulationsumgebung.A.3.1.1 Global.A.3.1.2 EventChain.A.3.1.3 Queue.A.3.1.4 Distributions.A.3.2 Das Job-Shop-Modell.A.4 Ausgaben zum Job-Shop-Modell.B Prozeßorientierte Version.B.1 Adaset.B.1.1 Spezifikationsteil.B.1.2 Implementationsteil.B.2 Simulation.B.2.1 Spezifikationsteil.B.2.2 Implementationsteil.B.3 Das priorisierte Job-Shop-Modell.B.4 Ausgaben zum priorisierten Job-Shop-Modell.Sachwortverzeichnis.