SIMULA - an Algol Based Simulation Language
Download
Report
Transcript SIMULA - an Algol Based Simulation Language
SIMULA-an Algol Based
Simulation Language
geschrieben von: Zhaohan Chen
Betreuer: Prof. Dr. Rainer Manthey
04.07.2006
Zhaohan Chen SS06
1
Inhaltsübersicht
Quellen
Einleitung
Sprachekonzept
Zusammenfassung
04.07.2006
Zhaohan Chen SS06
2
Quellen
Ole-Johan Dahl, Kristen Nygaard: SIMULA - an ALGOL-based
Simulation Language. CACM 9(9), 671-678, 1966.
Ole-Johan Dahl: SIMULA, Vortrag aus der Konferenz
„Software Pioneers“, Bonn ,Juni 2001
http://de.wikipedia.org/wiki/Simula
http://java.sun.com/people/jag/SimulaHistory.html
04.07.2006
Zhaohan Chen SS06
3
kurzinfo
Einleitung
Simula = Simulation Language
Motivation: Durchführung von z.B. physikalische Prozessen am
Rechner
Anwendungen:
- Simulationsprobleme: z.B. Schlangen im Supermarkt,
Reaktionszeiten von Notdiensten
- Chipherstellung
04.07.2006
Zhaohan Chen SS06
4
Die Entwickler von Simula
Kristen Nygaard
(* 27.08.1926, † 20.08.2002 )
Norwegischer Informatiker und
Mathematiker
Ole-Johan Dahl
(* 12.10.1931, † 29.07.2002 )
Norwegischer Informatiker
04.07.2006
Zhaohan Chen SS06
Einleitung
5
Algol 60-Basis von Simula
Einleitung
wichtige Eigenschaften:
-Blockstruktur
-Programmiersicherheit
Weiteres:
-erstmalig Schleifenstrukturen
-Datenstrukturen getrennt von Prozeduren
04.07.2006
Zhaohan Chen SS06
6
Entwicklungsstufen von Simula
Simula 0 (1962 - 1963)
Algol Pre-Compiler
Simula 1 (1963 - 1965)
Compiler, der Programme/Probleme simuliert
Simula 67 (1966 - 1967)
- Vollständige Programmiersprache mit
erweiterbaren Funktionen (Simulationen)
- Einführung von Klassen, Unterklassen,
Objekten
04.07.2006
Zhaohan Chen SS06
Einleitung
7
Klassen
Sprachekonzept
Menge alle Klassen: hierarchische Baumstruktur
z.B. mit den Klassen A,B,C,D und E:
A
E
B
C
D
Unterklassenbeziehungen: z.B. B unter A und C unter B, C aber
auch unter A (indirekt)
04.07.2006
Zhaohan Chen SS06
8
Klassen(2)
Sprachekonzept
Bsp. Vereinbarung einer Klassendefinition:
class Person;
begin
text vorname, nachname, geschlecht;
vorname:= John;
end;
-Klassename: Person
-Attribute: vorname, nachname, geschlecht
04.07.2006
Zhaohan Chen SS06
9
Klassen(3)
Sprachekonzept
alle Klassen weisen folgende Struktur auf:
geerbte Attribute
Block-Kopf
neue Attribute
Anweisungen
Block-Hauptteil
geerbte Prozeduren
Block-Ende
neue Prozeduren
04.07.2006
Zhaohan Chen SS06
10
Vererbung
Sprachekonzept
Bsp.
class Person;
begin
text vorname, nachname, geschlecht;
vorname:= John;
end;
Person class Vater;
begin
outint(Vater.vorname);
end;
-Oberklasse: Person, Unterklasse: Vater
-“Vater“ erbt 3 Attribute: vorname, nachname, geschlecht
04.07.2006
Zhaohan Chen SS06
11
Vererbung(2)
Sprachekonzept
Prinzip von OJD genannt.
Übertragen von Eigenschaften von Ober-auf Unterklassen
Eigenschaften: Attribute und Prozeduren
auch: Deklarationen und Anweisungen
Überdeckung:
Standardvorgehensweise definiert:
Unterklassendeklarationen überdecken Vererbungseigenschaften
04.07.2006
Zhaohan Chen SS06
12
Referenzen
Sprachekonzept
Zugriff auf einzelne Objekte über sog. Referenzen
Bsp.
class Person;
begin
text vorname, nachname, geschlecht;
ref (Person) Peter;
end;
-Referenztype: ref (Person)
-drei Referenzvariablen: vorname, nachname, geschlecht
04.07.2006
Zhaohan Chen SS06
13
Referenzen(2)
Sprachekonzept
verschiedene Sichten auf Objekte:
innere Sicht
äußere Sicht
lokal definierte Variablen mit
bestimmtem Datentyp
Objekte von außerhalb als
Prozeduren und Variablen
ansteuerbar
initiierende Anweisungen,
operieren auf lokalen
Variablen
Mechanismen zum Anlegen neuer
Objekte aus Klassen
zwei Zugriffsarten:
lokale Zugriffe und Fremdzugriffe
04.07.2006
Zhaohan Chen SS06
14
Objekte
Sprachekonzept
Bsp.
class datum;
begin
text tag;
text jahr:=2006;
ref(datum) heute;
…
end
jede Objekt gehört zu einer Klasse
folgt gleiche Verhaltensschema und innere Struktur
hier: heute.jahr=2006
04.07.2006
Zhaohan Chen SS06
15
Zusammenfassung
von Kristen Nygaard und Ole-Johan Dahl in 60Jahren in Norwegen
entwickelt
erste objektorientierte Programmiersprache
direkte Nachfolger: SMALLTALK
weiteres: C++, Java
heute nicht mehr sehr weit verbreitet
04.07.2006
Zhaohan Chen SS06
16