Home
Up
Intro
Contents
Chapter
1
2
3
4
5
6
7
8
9
10
Design
Assert
Timing
EBNF
Report
Pas
Last Changed: Nov. 19, 1997
This is a conversion from Oberon text to HTML. The converter software is still under development,
and some features or information may be missing in this converted version.
HTML hypertext facilities are not yet active in this document.
To exploit the interactive facilities, use Oberon System 3 and the source of this text,
available as ASCII-coded Oberon System 3 documents. A previous version is also available for Oberon V4.
To access this and other additional material use
ftp.
For the convenience of our students, most of this information and the related material is in German.
Sorry if this is not one of your languages.
Einführung in die Programmiersprache Oberon.
Einführung in die Programmiersprache Oberon
Günther Sawitzki
<gs@statlab.uni-heidelberg.de>
Übersicht: Vorwort und Inhalt
-- Dieses Manuskript ist noch in Entwicklung. Stand: Juni 1998 --
Die Vorlesung "Einführung in die Programmiersprache Oberon" richtet
sich an Studenten mit mathematischen Grundkenntnissen und Interesse an Informatik.
Oberon ist unter anderem der Name für
- ein Forschungsprojekt über
Software-Umgebungen für Workstations, durchgeführt 1986-1989
am Institut für Computersysteme, ETH Zürich
- ein in diesem Projekt entwickeltes
Betriebssystem, das sowohl eigenständig implementiert sein kann, als
auch als Emulation über anderen Betriebssystemen
- eine Programmiersprache.
Der Kurs befasst sich mit der Programmiersprache Oberon. Seit dem ersten
Entwurf 1988 hat die Sprache einige Veränderungen erhalten. Dem Kurs
liegt die Sprachdefinition Oberon-2 vom Oktober 1993 zu Grunde. Die Sprache
Oberon kann auch unabhängig vom Oberon-Betriebssystem benutzt werden.
Der Kurs macht drei Gänge durch die Sprache Oberon. Im ersten Durchlauf
werden Grundkenntnisse in der Handhabung des Oberon-Betriebssystems vermittelt
und die Bestandteile der Sprache Oberon vorgestellt (Modul, Typen und Variablen,
Deklarationen, Kontrollstrukturen). Die Grundlektionen sollten ausreichen,
um sich auch im Selbststudium weitere Oberon-Kenntnisse etwa anhand von Reiser
und Wirth: "Programmieren in Oberon", Kap. 9 ff, anzueignen.
Im zweiten Durchlauf wird Design und Implementierung in Oberon an Beispielen
diskutiert. Dabei werden insbesondere Prinzipien des objekt-orientierten
Designs und Methoden des Software-Engineering zur Diskussion kommen. Einige
der Beispiele entstammen "Project Oberon" (Wirth und Gutknecht 1992) und
"Programming in Oberon" (Reiser und Wirth 1992).
Der dritte Durchlauf ist ein systematischer und vollständiger Gang
durch die Sprachdefinition "The Programming Language Oberon-2" (Mössenböck
und Wirth, Oktober 1993).
Der erste Durchlauf kann etwa als Kompaktkurs in einer Woche durchgeführt
werden. Der zweite Durchlauf eignet sich eher für eine einsemestrige
projektbegleitende Arbeitsgruppe, die mit dem dritten Durchlauf, etwa in
Form eines zweitägigen Auffrischungskurses, abgeschlossen werden kann.
Für die praktischen Übungen wird das Oberon-Betriebssystem benutzt.
Dies ist im Laufe der Zeit in verschiedenen Varianten weiterentwickelt worden
und wird noch weiterentwickelt. Deshalb ist es leider unvermeidlich, dass
es Unterschiede geben wird zwischen den Angaben hier, und der Situation,
die der Leser bei sich zu einem späteren Zeitpunkt vorfindet.
Die ursprüngliche Entwicklungslinie von Oberon ist in (Wirth und Gutknecht
1992) und (Reiser 1991) beschrieben; die aktuelle Fassung ist derzeit Oberon
V4. Eine ältere Fassung dieses Kurses für V4 ist über <http://statlab.uni-heidelberg.de/>
zugänglich. Die derzeitige Entwicklungslinie der ETH Zürich ist
Oberon System 3. Die vorliegende Fassung des Kurses wurde mit Oberon System
3 Version 2.1 und System 3 Version 2.2 benutzt. Als kommerzielles Produkt
steht auch BlackBox (früher Oberon/F genannt) zur Verfügung,
das jedoch derzeit nur unter Windows und MacOS implementiert ist.
Für den Kurs wird eine Installation von Oberon System 3 mit Gadgets.
empfohlen. Der Kurs benutzt lokale Werkzeuge, die über die Oberon-Seite
auf <http://statlab.uni-heidelberg.de/> bereitstehen, oder durch die
entsprechenden Werkzeuge der System 3-Distribution ersetzt werden können.
Der Kurs gibt keine allgemeine Einführung in das Oberon-System. Dazu
gibt es zu jedem Oberon-System Begleit-Unterlagen ("ReadMe", "DoubleClickOnMe",
"Tour"), deren Lektüre dringend empfohlen wird. Für System 3
wird als weitergehende Einführung
A. Fischer, Hannes Marais: The
Oberon Companion,
vdf Hoschsulverlag AG, Zürich
1998, ISBN 3 7281 2493 1,
empfohlen.
(c) G. Sawitzki, StatLab Heidelberg 1995 - 1998
Für Hilfe, Hinweise und Unterstützung ist A. Fischer, F. Friedrich,
M. Fuchs, G. Valiente und C. Werner zu danken, sowie den Teilnehmern der
bisherigen Kurse.
System-spezifische Besonderheiten
Allgemein: wenn Sie eine Oberon-Version benutzen, die kein hierachisches
File-System unterstützt, müssen Sie bei den Namen der Beispiel-Dateien
die Verzeichnis-Angaben Kurs/ bzw. Kurs/PIO/ löschen.
S3: für Macintosh und Windows unterstützt Dateinamen nach UNIX_Konvention.
Bei Macintosh werden benötigte Verzeichnisse automatisch generiert,
bei Windows sollten sie vorweg angelegt werden.
S3: für IBM-kompatible (native)
unterstützt kein hierarchisches Dateisystem. Der Kurs-Text muss entsprechend
verändert werden.
S3: die Behandlung des Options-Zeichen
bei Oberon-Kommandos befindet sich im Umbruch. Je nach Version (und Modul)
kann "/", "\" oder "%" gefordert sein.
V4 allgemein: Wenn gsBuilder nicht
verfügbar ist, kann anstelle gsBuilder.Compile auch Folds.Compile benutzt
werden. Die Fehler-Liste muss dann selektiert und Fehler-Elemente eingesetzt
werden.
Dateien werden mit Edit.Open ^ (im Fenster System.Tool)
geöffnet.
V4 für Macintosh benutzt
Dateinamen nach Macintosh-Konventionen. Im Kurs-Text muss der Separator
/ durch : ersetzt werden.
V4: Dateien werden mit Edit.Open
geöffnet. Im Kurs-Text ist Desktops.OpenDoc ^ durch
Edit.Open zu ersetzen.
Wenn gsBuilder nicht verfügbar ist, kann anstelle gsBuilder.Compile
das Komando Builder.Compile benutzt werden. In diesem Fall muss die Fehlerliste
selektiert und die Fehler mit müssen mit Builder.MarkErrors markiert
werden.
Home
Up
Intro
Contents
Chapter
1
2
3
4
5
6
7
8
9
10
Design
Assert
Timing
EBNF
Report
Pas