Oberon (Programmiersprache)

Oberon ist eine Programmiersprache geschaffen 1986 von Professor Niklaus Wirth (Schöpfer des Pascal, Modula und der Modula-2 Programmiersprachen) und seine Partner am ETH Zürich in der Schweiz. Es wurde als ein Teil der Durchführung des Oberons Betriebssystem entwickelt. Die ursprüngliche Absicht war, Modula-2 als die Durchführungssprache zu verwenden, aber es hat an den erforderlichen sicheren Möglichkeiten der Typ-Erweiterung Mangel gehabt. Außerdem wurde es geplant, schließlich die vollen Details des Betriebssystems und Bearbeiters zu veröffentlichen, so dass sie studiert und verstanden werden konnten. Diese Faktoren haben zur Entscheidung geführt, eine neue Sprache zu entwerfen, die sich auf gerade die wesentlichen Eigenschaften konzentriert hat, die für die Aufgabe in der Hand notwendig sind. Der Name ist vom Mond des Uranus, Oberons.

Oberon ist sehr viel Modula-2 in seiner Syntax ähnlich, aber ist beträchtlich kleiner. Die Eigenschaft-Einfachheit von Oberon führt zu beträchtlichem Raum und Codierleistungsfähigkeit für seine Bearbeiter. Die volle Sprache kann in einer Seite von EBNF angegeben werden. Der Bericht von Oberon, ist an 16 Seiten, ungefähr ein Drittel der Größe des Modula-2-Berichts, und einer der frühen vollen Bearbeiter war nur ungefähr 4000 Linien lange. Verschieden von Modula-2 hat es Müll-Sammlung.

Oberon wurde für Oberon Betriebssystem entworfen, das am Arbeitsplatz von Ceres (gebaut um den Nationalen Halbleiter 32032 Zentraleinheit) und dem Chamäleon-Arbeitsplatz gelaufen ist. Die Sprache von Oberon (und später, Oberon-2) ist jetzt zu vielen anderen Betriebssystemen einschließlich der javanischen Plattform getragen worden, wo Quellcode von Oberon zum Quellcode in Java, oder zu bytecode für Java virtuelle Maschine kompiliert. Der Oberon Betriebssystem ist auch für mehrere Hardware-Plattformen außer dem ursprünglichen Arbeitsplatz verfügbar.

Designabsichten

Oberon wird entworfen, um eine 'sichere' Sprache zu sein; es verwendet Reihe-Grenze-Überprüfung, Müll-Sammlung und starke Datentypprüfung. Diese Eigenschaften, besonders, die Logikfehlern ermöglichen, so bald wie möglich (d. h. während der Übersetzung) entdeckt zu werden, können die Anzahl von Programmfehlern bedeutsam vermindern, die in einem Programm an der Durchlaufzeit vorkommen. Jedoch wurden einige Eigenschaften, die in andere Sprachen in einem Versuch eingeschlossen sind, Programmfehler (z.B Enumerationen und Programmierer-definierte Reihen auf ganzen Zahlen) zu reduzieren, weggelassen. Folglich sollte mehr Sorge vom Programmierer genommen werden, wenn man mit numerischen Ausdrücken arbeitet, um Logikfehler zu vermeiden.

Interessante Eigenschaften

Schlüsseleigenschaften

Die folgenden Eigenschaften charakterisieren die Sprache von Oberon:

  • Pascal ähnliche aber konsequentere Syntax
  • Typ-Erweiterung mit der starken Datentypprüfung
  • Module mit Typ-karierten Schnittstellen und getrennter Kompilation
  • Vereinbarkeit zwischen allen numerischen Typen (gemischte Ausdrücke)
  • Schnur-Operationen
  • Unterstützung für das System, programmierend

Sichtbarkeitsfahnen

Globale Variablen, Typen, Konstanten und Verfahren sind standardmäßig nur innerhalb des Erklären-Moduls sichtbar. Sie können zu anderen Modulen durch suffixing sie mit einer Sichtbarkeitsfahne bekannt gegeben werden, nämlich ein Sternchen für den gelesenen - schreibt Erlaubnis. Der Verzug wurde gewählt, um Sicherheit zu sichern, im Falle dass eine Fahne unachtsam weggelassen wurde.

Lokale Variablen, Typen, Konstanten und Verfahren sind immer nur zum Erklären-Verfahren sichtbar.

Anruf durch die Verweisung oder durch den Wert

Zwei mögliche Weisen sind für Verfahren-Rahmen verfügbar. Anruf durch den Wert erlaubt Ausdrücken, als Rahmen verwendet zu werden, so dass der Wert des Ausdrucks am Verfahren überliefert wird. Anruf durch die Verweisung erlaubt Variablen, verwendet zu werden, so dass der Wert der Variable durch das Verfahren geändert werden kann. Ein Verfahren kann einen Bezugsparameter durch das Vorbefestigen davon mit dem Schlüsselwort erklären.

Durchführungen und Varianten

Oberon

Durchführungen ohne Kosten von Oberon (die Sprache) und Oberon (das Betriebssystem) können im Internet gefunden werden (mehrere sind von ETHZ selbst).

Oberon-2

Einige Änderungen wurden mit der ersten veröffentlichten Spezifizierung vorgenommen (objektorientierte Programmiereigenschaften wurden hinzugefügt, 'FÜR' die Schleife, wurde zum Beispiel wieder eingesetzt); das Ergebnis war Oberon-2, zurzeit die allgemeinste Durchführung. Es gibt eine Ausgabe genannt der Eingeborene Oberon, der ein Betriebssystem einschließt, und auf der PC-Klassenhardware direkt starten kann. Eine.NET Durchführung von Oberon mit der Hinzufügung einiger geringer.NET-zusammenhängender Erweiterungen ist auch an ETHZ entwickelt worden.

Durch ETH aufrechterhaltene Bearbeiter von Oberon-2 schließen Versionen für Windows, Linux, Solaris, Mac OS X. Furthermore ein dort sind Durchführungen für verschiedene andere Betriebssysteme, wie Atari-TOS oder AmigaOS.

Es gibt einen Scanner von Oberon-2 Lex und Yacc parser durch Stephen J Bevan von Universität von Manchester, das Vereinigte Königreich, das auf demjenigen in der Verweisung von Mössenböck und Wirth gestützt ist. Es ist an der Version 1.4.

Oberon-07

Oberon-07, der von Niklaus Wirth 2007 definiert ist und 2011 revidiert ist, basiert auf der ursprünglichen Version von Oberon aber nicht Oberon-2. Die Hauptänderungen sind: Ausführliche numerische Umwandlungsfunktionen (z.B Fußboden und FLT) müssen verwendet werden, die SCHLEIFE und AUSGANGS-Behauptungen sind beseitigt worden, WÄHREND Behauptungen erweitert worden sind, kehren Sie ZURÜCK Behauptungen können nur mit dem Ende einer Funktion, importierter Variablen verbunden werden und haben Wertrahmen strukturiert sind read-only-, und Reihe kann zugeteilt werden, ohne KOPIE zu verwenden. Für volle Details, sieh Die Programmiersprache Oberon-07.

Bearbeiter von Oberon-07 sind für den Gebrauch mit 32-Bit-Mikrokontrolleuren des ARMS und Kortexes-M3 entwickelt worden, und ein Wirth-bestimmter RISC Verarbeiter hat das Verwenden eines Xilinx FPGA spartanischer 3 Ausschuss durchgeführt.

Energischer Oberon

Energischer Oberon ist noch eine andere Variante von Oberon, der Gegenstände (mit dem Gegenstand - Zugriffsschutz und der lokalen Tätigkeitskontrolle), systemvorsichtige Behauptungen, Vorkaufsvorzugsterminplanung und eine ein bisschen geänderte Syntax für Methoden (auch bekannt als Typ-gebundene Verfahren in der Welt von Oberon) hinzufügt. Gegenstände können aktiv sein, was bedeutet, dass sie Fäden oder Prozesse sein können. Das Betriebssystem synchronisieren A2 auch bekannt als Schmeißfliege, besonders der Kern, und koordinieren verschiedene aktive Gegenstände.

Zusammenhängende Sprachen

Entwicklung hat Sprachen in dieser Familie fortgesetzt. Eine weitere Erweiterung von Oberon-2 hat Component Pascal erzeugt, der zurzeit von Oberon Microsystems unterstützt ist, eine kommerzielle Gesellschaft hat von von ETHZ, und durch die Queensland Universität der Technologie gesponnen. Außerdem tragen die Sprachen von Lagoona und Obliq den Geist von Oberon in Spezialgebiete.

ETHZ hat Energischen Oberon befreit, der aktive Gegenstände und die Schmeißfliege Betriebssystem und Umgebung (JDK, HTTP, FTP, usw.) für die Sprache unterstützt. Als mit vielen vorherigen Designs von ETHZ sind Versionen von beiden für das Download im Internet verfügbar. Da das geschrieben wird, werden sowohl einzelne als auch x86 Doppelzentraleinheiten und die Familie von StrongARM unterstützt.

Der neue.NET Entwicklungsaufwand an ETHZ ist auf eine neue Sprache genannt Zonnon eingestellt worden. Das schließt die Eigenschaften von Oberon ein und stellt einige von Pascal (aufgezählte Typen, eingebauter IO) wieder her, aber hat einige syntaktische Unterschiede. Zusätzliche Eigenschaften schließen Unterstützung für aktive Gegenstände, Maschinenbediener ein, der überlädt und das Ausnahme-Berühren. Zonnon ist als eine Einfügefunktionssprache für den Microsoft Visual Studio für die.NET Entwicklungsumgebung verfügbar.

Oberon-V (hat ursprünglich Seneca, nach Seneca der Jüngere genannt), ist ein Nachkomme von Oberon, der für numerische Anwendungen auf Supercomputern, besonders Vektor oder pipelined Architekturen entworfen ist. Es schließt Reihe-Konstrukteure und die GANZE Behauptung ein. (Sieh "Seneca - Eine Sprache für Numerische Anwendungen auf Vectorcomputers", Proc CONPAR 90 - VAPP IV Conf. R. Griesemer, Diss Nr. 10277, ETH Zürich.)

Siehe auch

  • Oberon (Betriebssystem)
  • Schmeißfliege OS

Links

Allgemein

Evolution von Oberon

ist

Osman II / Offener GL
Impressum & Datenschutz