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