Occam (Programmiersprache)

occam ist eine gleichzeitige Programmiersprache, die auf die Prozess-Algebra von Communicating Sequential Processes (CSP) baut, und viele seiner Eigenschaften teilt. Es wird nach William von Ockham der Rasiermesser-Berühmtheit von Occam genannt.

occam ist eine befehlende Verfahrenssprache (wie Pascal). Es wurde von David May und anderen an INMOS entwickelt, der von Tony Hoare als die heimische Programmiersprache für ihre transputer Mikroprozessoren empfohlen ist, aber Durchführungen für andere Plattformen sind verfügbar. Die am weitesten bekannte Version ist occam 2; sein Programmierhandbuch wurde von Steven Ericsson-Zenith und anderen an INMOS geschrieben.

Übersicht

In der folgenden Beispiel-Einrückung und Formatierung sind kritisch, für den Code grammatisch zu analysieren: Ausdrücke werden am Ende der Linie begrenzt, Listen von Ausdrücken müssen auf demselben Niveau der Einrückung sein. Diese Eigenschaft, genannt die Abseitsregel, wird auch auf anderen Sprachen wie Haskell und Pythonschlange gefunden.

Die Kommunikation zwischen Prozessen arbeitet durch genannte Kanäle. Prozess-Produktionsdaten zu einem Kanal über"!" während ein anderer Daten mit eingibt"?". Eingang und Produktion werden blockieren, bis das andere Ende bereit ist, Daten zu akzeptieren oder anzubieten. Beispiele (c ist eine Variable):

Tastatur? c

Schirm! c

SEQ führt eine Liste von Ausdrücken ein, die folgend bewertet werden. Das ist nicht implizit, wie es auf den meisten anderen Programmiersprachen ist. Beispiel:

SEQ

x: = x + 1

y: = x * x

DURCHSCHNITT beginnt eine Liste von Ausdrücken, die gleichzeitig bewertet werden können. Beispiel:

DURCHSCHNITT

p

q

ALT gibt eine Liste von vorsichtigen Befehlen an. Die Wächter sind eine Kombination einer boolean Bedingung und eines Eingangsausdrucks (beide fakultativ). Jeder Wächter, für den die Bedingung wahr ist und der Eingangskanal, ist bereit ist erfolgreich. Eine der erfolgreichen Alternativen wird für die Ausführung ausgewählt. Beispiel:

ALT

count1 (veröffentlichter 1983) war eine einleitende Version der Sprache, die von der Arbeit von David May an EPL und dem CSP von Tony Hoare geborgt hat. Das hat nur den VAR Datentyp unterstützt, der ein integrierter Typ entsprechend der heimischen Wortlänge der Zielarchitektur und Reihe von nur einer Dimension war.

occam 2

occam 2 ist eine Erweiterung, die von INMOS Ltd 1987 erzeugt ist, die Schwimmpunkt-Unterstützung, Funktionen, mehrdimensionale Reihe und mehr Datentypen wie unterschiedliche Größen von ganzen Zahlen (INT16, INT32) und Bytes hinzufügt.

Mit dieser Revision ist occam eine Sprache geworden, die dazu fähig ist, nützliche Programme auszudrücken, wohingegen occam 1 zum Überprüfen von Algorithmen und Erforschen der neuen Sprache mehr passend war (jedoch, der occam, der 1 Bearbeiter in occam 1 geschrieben wurde, also gibt es einen Existenz-Beweis, der vernünftig nach Größen geordnet hat, konnten nützliche Programme in occam 1, trotz seiner Beschränkungen geschrieben werden).

occam 2.1

occam 2.1 war die letzte von der Reihe von occam durch INMOS beigetragenen Sprachentwicklungen. Definiert 1994 war es unter Einfluss eines früheren Vorschlags für einen occam 3 Sprache (auch verwiesen auf als "occam91" während seiner frühen Entwicklung) geschaffen von Geoff Barrett an INMOS am Anfang der 1990er Jahre. Ein revidiertes Bedienungshandbuch, das occam 3 beschreibt, wurde für die Gemeinschaftsanmerkung verteilt, aber die Sprache wurde in einem Bearbeiter nie völlig durchgeführt.

occam 2.1 hat mehrere neue Eigenschaften in occam 2 eingeführt, einschließlich:

  • Genannte Datentypen (IST DATENTYP X y)
  • Genannte Aufzeichnungen
  • Gepackte Aufzeichnungen
  • Die Entspannung von etwas von der Typ-Konvertierung herrscht
über
  • Neue Maschinenbediener (z.B. BYTESIN)
  • Das Kanalwiederschreiben und der Kanal ordnen
  • Fähigkeit, Reihe der festen Länge von der Funktion zurückzugeben.

Weil eine volle Liste der Änderungen Anhang P des INMOS occam 2.1 Bedienungshandbuch sieht.

occam-π

occam-π ist die gemeinsame Bezeichnung für die occam Variante, die durch spätere Versionen von KRoC, der Kent Retargetable occam Bearbeiter durchgeführt ist. Die Hinzufügung des Symbols "π" (Pi) zum Occam-Namen ist eine Anspielung auf die Tatsache, dass KRoC occam mehrere durch die Pi-Rechnung begeisterte Ideen einschließt. Es enthält eine bedeutende Anzahl von Erweiterungen auf den occam 2.1 Bearbeiter zum Beispiel:

  • Verschachtelte Protokolle
  • Laufzeitprozess-Entwicklung
  • Bewegliche Kanäle, Daten und Prozesse
  • Recursion
  • Protokoll-Erbe
  • Ordnen Sie Konstrukteure
  • Verlängertes Rendezvous

Siehe auch

  • Gleichzeitige Programmiersprachen
  • Das Kommunizieren folgender Prozesse

Weiterführende Literatur

http://www.booksonline.iospress.com/Content/View.aspx?piid=5962 http://www.booksonline.iospress.com/Content/View.aspx?piid=91 http://www.booksonline.iospress.com/Content/View.aspx?piid=56
  • Egorov, A., technische Universität - Sofia, (1983-2011) Записки по Компютърни архитектури

Links


Ockham / Oktoberrevolution
Impressum & Datenschutz