Betriebliche Semantik

In der Informatik ist betriebliche Semantik eine Weise, Bedeutung Computerprogrammen auf eine mathematisch strenge Weise zu geben. Betriebliche Semantik wird in zwei Kategorien eingeteilt: Betriebliche Struktursemantik (oder Semantik des kleinen Schritts) beschreiben formell, wie die individuellen Schritte einer Berechnung in einem computergestützten System stattfinden. Durch die Opposition beschreiben natürliche Semantik (oder Semantik des großen Schritts), wie die Gesamtergebnisse der Ausführungen erhalten werden. Andere Annäherungen an die Versorgung einer formellen Semantik von Programmiersprachen schließen axiomatische Semantik und denotational Semantik ein.

Die betriebliche Semantik für eine Programmiersprache beschreibt, wie ein gültiges Programm als Folgen von rechenbetonten Schritten interpretiert wird.

Diese Folgen sind dann die Bedeutung des Programms.

Im Zusammenhang von funktionellen Programmen, dem Endschritt in einem Enden

Folge gibt den Wert des Programms zurück. (Im Allgemeinen kann es viele Rückwerte für ein einzelnes Programm, geben

weil das Programm nichtdeterministisch sein konnte, und sogar für ein deterministisches Programm es viele Berechnungsfolgen geben kann, da die Semantik genau nicht angeben kann, welche Folge von Operationen diesen Wert erreicht.)

Das Konzept der betrieblichen Semantik wurde zum ersten Mal im Definieren der Semantik des ALGOL 68 verwendet.

Die folgende Behauptung ist ein Zitat aus dem revidierten Algol 68 Bericht:

Die Bedeutung eines Programms auf der strengen Sprache wird in Bezug auf einen hypothetischen Computer erklärt

der den Satz von Handlungen durchführt, die die Weiterentwicklung dieses Programms einsetzen. (Algol68, Abschnitt 2)

Der erste Gebrauch des Begriffes "betriebliche Semantik" in seiner Gegenwart, die bedeutet, wird zugeschrieben

Dana Scott (Plotkin04).

Was folgt, ist ein Zitat aus dem Samenpapier von Scott auf der formellen Semantik,

in dem er die "betrieblichen" Aspekte der Semantik erwähnt.

Das ist ja alles schön und gut, auf einen 'abstrakteren' und eine 'sauberere' Annäherung an zu zielen

Semantik, aber wenn der Plan ist, ein Nutzen, die betrieblichen Aspekte zu sein, kann

nicht

völlig ignoriert werden. (Scott70)

Vielleicht war die erste formelle Verkörperung der betrieblichen Semantik der Gebrauch der Lambda-Rechnung, um die Semantik des LISPELNS durch [] zu definieren.

Abstrakte Maschinen in der Tradition der SECD Maschine sind auch nah verbunden.

Annäherungen

Gordon Plotkin hat die betriebliche Struktursemantik, Robert Hieb und Matthias Felleisen die Verminderungszusammenhänge und Gilles Kahn die natürliche Semantik eingeführt.

Betriebliche Struktursemantik

Betriebliche Struktursemantik (auch genannt hat betriebliche Semantik oder Semantik des kleinen Schritts strukturiert), wurde von Gordon Plotkin in (Plotkin81) als ein logisches Mittel zum Definieren betrieblicher Semantik eingeführt. Die Grundidee hinter dem SOS ist, das Verhalten eines Programms in Bezug auf das Verhalten seiner Teile zu definieren, so einen strukturellen, d. h., Syntax orientiert und induktiv, Ansicht auf der betrieblichen Semantik zur Verfügung stellend. Eine SOS-Spezifizierung definiert das Verhalten eines Programms in Bezug auf (Satz) Übergang-Beziehung (En). SOS-Spezifizierungen nehmen die Form von einer Reihe von Interferenzregeln an, die die gültigen Übergänge eines zerlegbaren Stückes der Syntax in Bezug auf die Übergänge seiner Bestandteile definieren.

Für ein einfaches Beispiel denken wir einen Teil der Semantik einer einfachen Programmiersprache; richtige Illustrationen werden in Plotkin81 und Hennessy90 und anderen Lehrbüchern gegeben. Lassen Sie Reihe über Programme der Sprache, und lassen Sie Reihe über Staaten (z.B Funktionen von Speicherpositionen bis Werte). Wenn wir Ausdrücke (angeordnet durch), Werte und Positionen haben , dann würde ein Speicheraktualisierungsbefehl Semantik haben:

\frac {\\langle E, s\rangle \Rightarrow V\{\\langle L: = E \, \, s\rangle\longrightarrow (s\uplus (L\mapsto V)) }\

</Mathematik>

Informell sagt die Regel, dass, "wenn der Ausdruck im Staat zum Wert abnimmt, dann wird das Programm den Staat mit der Anweisung aktualisieren".

Die Semantik von sequencing kann durch die folgenden drei Regeln gegeben werden:

\frac {\\langle C_1, s\rangle \longrightarrow der }von \

{\\langle C_1; C_2 \, s\rangle\longrightarrow \langle C_2, s'\rangle }\

\quad\quad

\frac {\\langle C_1, s\rangle \longrightarrow \langle C_1', s'\rangle }\

{\\langle C_1; C_2 \, s\rangle\longrightarrow \langle C_1'; C_2 \, s'\rangle }\

\quad\quad

\frac {}\

{\\langle \mathbf {Hopser}, s\rangle\longrightarrow s }\

</Mathematik>

Informell sagt die erste Regel das,

wenn das Programm in Zustandschlüssen im Staat, dann wird das Programm im Staat zum Programm im Staat abnehmen.

(Sie können daran als das Formalisieren denken "Von Ihnen können laufen, und dann führen

das Verwenden des resultierenden Speicherlagers.)

Die zweite Regel sagt das

wenn das Programm im Staat zum Programm mit dem Staat abnehmen kann, dann wird das Programm im Staat zum Programm im Staat abnehmen.

(Sie können daran als das Formalisieren des Grundsatzes für einen Optimierungsbearbeiter denken:

"Ihnen wird erlaubt sich zu verwandeln, als ob es eigenständig war, selbst wenn es gerade der ist

der erste Teil eines Programms. ")

Die Semantik ist strukturell, weil die Bedeutung des folgenden Programms, durch die Bedeutung und die Bedeutung dessen definiert wird.

Wenn wir auch Ausdrücke von Boolean über den Staat, angeordnet dadurch haben, dann können wir die Semantik während Befehl definieren:

\frac {\\langle B, s\rangle \Rightarrow \mathbf {wahr}} {\\langle\mathbf {während }\\B\\mathbf {}\\C, s\rangle\longrightarrow \langle C tun; \mathbf {während }\\B\\mathbf {}\\C, s\rangle }\tun

\quad

\frac {\\langle B, s\rangle \Rightarrow \mathbf {falsch}} {\\langle\mathbf {während }\\B\\mathbf {}\\C, s\rangle\longrightarrow s }\tun

</Mathematik>

Solch eine Definition erlaubt formelle Analyse des Verhaltens von Programmen, die Studie von Beziehungen zwischen Programmen erlaubend. Wichtige Beziehungen schließen Simulierungsvorordnungen und bisimulation ein.

Diese sind im Zusammenhang der Parallelitätstheorie besonders nützlich.

Dank seines intuitiven Blicks und leicht, Struktur, zu folgen

SOS hat große Beliebtheit gewonnen und ist ein De-Facto-Standard im Definieren geworden

betriebliche Semantik. Als ein Zeichen des Erfolgs, der ursprüngliche Bericht (so genannter Aarhus

Bericht) auf dem SOS (Plotkin81) hat mehr als 1000 Zitate gemäß CiteSeer http://citeseer.ist.psu.edu/673965.html, angezogen

das Bilden davon einer der am meisten zitierten technischen Berichte in der Informatik.

Verminderungssemantik

Verminderungssemantik ist eine alternative Präsentation der betrieblichen Semantik mit so genannten Verminderungszusammenhängen. Die Methode wurde von Robert Hieb und Matthias Felleisen 1992 als eine Technik eingeführt, für eine equational Theorie für die Kontrolle und den Staat zu formalisieren. Zum Beispiel kann die Grammatik einer einfachen Lambda-Rechnung des Anrufs durch den Wert und seiner Zusammenhänge als gegeben werden:

e = v \; | \; (e \; e) \; | \; x \quad\quad v = \lambda x.e \quad\quad C = \left [\, \right] \; | \; (C \; e) \; | \; (v \; C)

</Mathematik>

Die Zusammenhänge schließen ein Loch ein, wo ein Begriff eingesteckt werden kann.

Die Gestalt der Zusammenhänge zeigt an, wo die Verminderung vorkommen kann (d. h. ein Begriff kann in zugestopft werden) ein Begriff.

Um eine Semantik für diese Sprache zu beschreiben, werden Axiome oder Verminderungsregeln zur Verfügung gestellt:

(\lambda x.e \; v) \longrightarrow e \,\left [x / v\right] \quad (\mathrm {\\Beta})

</Mathematik>

Dieses einzelne Axiom ist die Beta-Regel von der Lambda-Rechnung. Die Verminderungszusammenhänge zeigen, wie diese Regel zusammensetzt

mit mehr komplizierten Begriffen. Insbesondere diese Regel kann für die Argument-Position eines auslösen

Anwendung wie, weil es einen Zusammenhang gibt

das vergleicht den Begriff. In diesem Fall zersetzen die Zusammenhänge einzigartig Begriffe, so dass die nur eine Verminderung möglicher ist

an jedem gegebenen Schritt. Das Verlängern des Axioms, um die Verminderungszusammenhänge zu vergleichen, gibt den vereinbaren Verschluss. Einnahme des

der reflexive, transitive Verschluss dieser Beziehung gibt die Verminderungsbeziehung für diese Sprache.

Die Technik ist für die Bequemlichkeit nützlich, in der Verminderungszusammenhänge Staat modellieren oder Konstruktionen (z.B, Verlängerungen) kontrollieren können. Außerdem, Verminderungssemantik sind verwendet worden, um objektorientierte Sprachen, Vertragssysteme und andere Spracheigenschaften zu modellieren.

Natürliche Semantik

Natürliche Semantik (oder Semantik des großen Schritts)...

Siehe auch

  • Algebraische Semantik
  • Axiomatische Semantik
  • Semantik von Denotational
  • Dolmetscher-Semantik
  • Formelle Semantik von Programmiersprachen
  • Gilles Kahn. "Natürliche Semantik". Verhandlungen des 4. Jährlichen Symposiums auf Theoretischen Aspekten der Informatik. Springer-Verlag. London. 1987.

Kortex / Kikuko Inoue
Impressum & Datenschutz