Oberon (Programmiersprache)

Oberon (Programmiersprache)
Oberon
ETH Oberon Logo
Basisdaten
Paradigmen: imperativ, strukturiert, objektorientiert
Erscheinungsjahr: 1991
Entwickler: Niklaus Wirth, Jürg Gutknecht
Einflüsse: Pascal, Modula-2
Beeinflusste: Component Pascal, Active Oberon

Oberon, 2000 offiziell in ETH Oberon umbenannt, ist eine von Niklaus Wirth und Jürg Gutknecht entwickelte, objektorientierte, streng strukturierte Programmiersprache. Sie ist den ebenfalls von Wirth entworfenen Vorgängern Pascal und Modula-2 recht ähnlich, allerdings strukturierter als Pascal und mächtiger, gleichzeitig aber erheblich weniger umfangreich als Modula-2. Das ETH Oberon System ist ein eigenständiges Betriebssystem der ETH Zürich, das in der Sprache Oberon implementiert ist, als Entwicklungsgrundlage für die Sprache diente und ebenso wie der Compiler kostenlos erhältlich ist.

Oberon wurde – wie sein Vorgänger Modula-2 – parallel zu einer Workstation (Ceres) entwickelt.

Oberon fand nach seiner Veröffentlichung recht schnell unter anderem zu Bildungszwecken in Schulen und Universitäten Verwendung. Es existieren inzwischen allerdings auch auf Oberon basierende, ebenfalls kostenlos verfügbare Werkzeuge, die auch kommerziell eingesetzt werden, wie zum Beispiel die Programmiersprache Component Pascal und die Entwicklungsumgebung BlackBox Component Builder.

Die Vorteile von Oberon liegen besonders im modularen Aufbau, der großen Sicherheit und in der Einfachheit der Sprache, die eindeutig und vergleichsweise kurz definiert werden kann (siehe auch EBNF). Mit Oberon ist es besonders leicht und sicher, das Programmieren auf verschiedene Personen aufzuteilen und die Arbeit später zusammenzufügen.

Hanspeter Mössenböck hat Oberon mit wenigen Änderungen zur Programmiersprache Oberon-2 weiterentwickelt, wobei zusätzlich im Wesentlichen explizit typgebundene Prozeduren erlaubt wurden, so dass die entsprechenden Objekte nicht mehr implizit in der formalen Parameterliste der Methoden aufgeführt werden müssen. Ferner wurde die Exportmarke "-" (als Alternative zu "*") zur Unterdrückung von Schreibrechten auf Objekte oder deren Komponenten eingeführt.

Die Quelltexte der Compiler sind in der Regel frei verfügbar. Es gibt verschiedene Programm-Entwicklungsumgebungen, genannt werden kann zum Beispiel auch POW!.[web 1] Neben dem Einsatz als Programmiersprache ist auch die Nutzung als Betriebssystem (Native Oberon) möglich.

Inhaltsverzeichnis

Code-Beispiele

Hello World im Ulmer OBERON-System:

  MODULE HelloWorld;
 
  IMPORT Write;
 
  BEGIN
 
    Write.Line("Hello World");
 
  END HelloWorld.

Anders als bei anderen vollwertigen, objektorientierten Programmiersprachen wird der Quelltext nicht interpretiert (zum Beispiel Ruby) oder in Bytecode übersetzt (zum Beispiel Java), sondern in der Regel in einem einzigen Compilerdurchlauf sehr schnell in Maschinensprache übersetzt. Der compilierte Code ist typsicher, und Speicherbereichsprüfungen sind obligatorisch. Die Verwendung von Laufzeitdebuggern und von Programmanweisungen zur Deallokation von Zeigervariablen ist obsolet. Es ist allerdings möglich, Haltepunkte zu setzen (Anweisung HALT) und auch alle lokalen Variablen nach dem Abbruch des Programms zu analysieren. Globale Variablen können im Laufzeitsystem jederzeit analysiert werden. Die Entwicklungszeiten mit Oberon sind daher sehr kurz, und der Maschinencode ist dennoch sehr effizient und robust. Auch Echtzeitanwendungen können mit Oberon implementiert werden.

Die Programmiersprache Oberon zeichnet sich dadurch aus, dass sie die objektorientierte Architektur im Gegensatz zum Beispiel zu C++ unter anderem mit einem integrierten Laufzeitsystem Oberon System und einer Automatischen Speicherbereinigung (garbage collection) vollständig unterstützt. Auf Mehrfachvererbung wurde bewusst verzichtet, um den Compiler von komplexen Verwaltungsaufgaben zu entlasten und den Programmierer vor unerwarteten Ergebnissen im Zusammenhang mit dem Diamond-Problem zu bewahren.

Die objektorientierte Programmierung wird mit erweiterten Datenverbünden vom Datentyp RECORD erreicht. Die Definition von Methoden wird durch typengebundene Prozeduren, und die Definition von Sichtbarkeiten wird durch Exportmarken ("*" für Schreibzugriff und "-" für Lesezugriff) erwirkt. Beispiel in Oberon-2:

 MODULE Vererbung1;
 
 TYPE
 
    GraphischesObjekt* = POINTER TO GraphischesObjektBeschreibung;
    GraphischesObjektBeschreibung = RECORD farbe*: LONGINT; END;
 
    Punkt* = POINTER TO PunktBeschreibung;
    PunktBeschreibung = RECORD (GraphischesObjekt) x*, y*: LONGINT; END;
 
    Linie* = POINTER TO LinienBeschreibung;
    LinienBeschreibung= RECORD (GraphischesObjekt) xStart*, yStart*, xEnde*, yEnde*: LONGINT; END;
 
 PROCEDURE (punkt: Punkt) Zeichne*; 
 BEGIN
    ...
 END Zeichne; 
 
 PROCEDURE (linie: Linie) Zeichne*; 
 BEGIN
    ...
 END Zeichne; 
 
 VAR
 
    punkt1: Punkt;
    linie1: Linie;
 
 BEGIN
 
    NEW (punkt1);
    punkt1.x := 1;
    punkt1.y := 1;
    punkt1.Zeichne ();
 
    NEW (linie1);
    linie1.xStart := 1;
    linie1.yStart := 1;
    linie1.xEnde  := 2;
    linie1.yEnde  := 2;
    linie1.Zeichne ();
 
 END Vererbung1.

Attribute, die nur einen Lesezugriff haben, können durch typengebundene Prozeduren (Methoden) verändert werden. Beispiel:

 MODULE Vererbung2;
 
 TYPE
 
    Objekt* = POINTER TO Objektbeschreibung;
    Objektbeschreibung = RECORD x-: INTEGER; END;
 
 PROCEDURE (objekt: Objekt) SetzeX* (wert: INTEGER); 
 BEGIN
    objekt.x := wert;
 END SetzeX; 
 
 VAR
 
    objekt1: Objekt;
    int: INTEGER;
 
 BEGIN
 
    NEW (objekt1);
    objekt1.SetzeX (1);
    int := objekt1.x;
 
 END Vererbung2.

Weiterentwicklungen

Ausgehend von Oberon und Oberon-2 sind die Programmiersprachen Component Pascal, Active Oberon und Zonnon entstanden.

Siehe auch

Literatur

  • Martin Reiser: The Oberon System. Broschiert, 300 Seiten, Addison-Wesley, 1991, ISBN 0-201-54422-9.
  • Martin Reiser, Niklaus Wirth: Programming in Oberon - Steps beyond Pascal and Modula. Broschiert, 336 Seiten, Addison-Wesley, 1992, ISBN 0-201-56543-9.
  • Niklaus Wirth, Jürg Gutknecht: Project Oberon. Gebundene Ausgabe, 560 Seiten, Addison Wesley, 1993, ISBN 0-201-54428-8.
  • Martin Reiser, Niklaus Wirth: Programmieren in Oberon: Das neue Pascal. Addison-Wesley, 1994, ISBN 3-89319-657-9, 2. korrigierter Nachdruck 1997.

Weblinks

Einzelnachweise

  1. POW!, eine IDE zu Oberon

Wikimedia Foundation.

Игры ⚽ Поможем написать реферат

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Oberon — bezeichnet in Mythologie und Literatur: Alberich (Mythologie), einen Zwerg eine Figur in William Shakespeares „Sommernachtstraum“, siehe Oberon (Elfenkönig) eine Verserzählung von Christoph Martin Wieland, siehe Oberon (Wieland) eine romantische… …   Deutsch Wikipedia

  • Programmiersprache/Zeittafel — Jahr Name Entwickler, Hersteller Vorläufer, Vorgänger 1840 Erstes Programm Ada Lovelace * 1946 Plankalkül Konrad Zuse * 1952 A 0 Grace Hopper * …   Deutsch Wikipedia

  • Oberon — Obe|ron [engl. < Oberon mfrz. Auberon, romanisierte Form von: Alberich = der den Nibelungenhort bewachende Zwerg] (Mythol.): König der Elfen. * * * I Oberon,  Programmiersprache: eine von Niklaus Wirth und Jürg Gutknecht zwischen 1985 und 1989 …   Universal-Lexikon

  • Programmiersprache Pascal — Pascal Paradigmen: imperativ, strukturiert Erscheinungsjahr: 1972 Entwickler: Niklaus Wirth Dialekte: UCSD Pascal …   Deutsch Wikipedia

  • Programmiersprache Cluster — Die Programmiersprache Cluster wurde Anfang der 1990er von Thomas Pfrengle und Ulrich Sigmund (StoneWare) für das Amiga Graphikkartensystem EGS entwickelt. Sie ist ein Dialekt der Programmiersprache Modula 2 mit Anleihen aus Oberon… …   Deutsch Wikipedia

  • Oberon microsystems — ist ein Spin off der ETH Zürich mit Sitz in Zürich. Oberon microsystems beschäftigt sich seit 1993 mit der Entwicklung von Software und ist als Dienstleister auf diesem Sektor tätig. Das Unternehmen hat sich auf die Entwicklung von… …   Deutsch Wikipedia

  • Oberon — Objektorientierte Programmiersprache, entwickelt von Nikolaus Wirth als Nachfolger von Modula 2 …   Acronyms

  • Oberon — Objektorientierte Programmiersprache, entwickelt von Nikolaus Wirth als Nachfolger von Modula 2 …   Acronyms von A bis Z

  • Forth (Programmiersprache) — Forth wurde von Charles H. Moore 1969 entwickelt und ist in erster Linie als Programmiersprache bekannt geworden. Forth ist aber nicht nur eine Programmiersprache, sondern gleichzeitig ein Betriebssystem und eine Entwicklungsumgebung zur… …   Deutsch Wikipedia

  • Active Oberon — Paradigmen: imperativ, strukturiert, objektorientiert Entwickler: Niklaus Wirth, Jürg Gutknecht Einflüsse: Oberon Beeinflusste …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”