ALGOL W

Algol W ist eine Programmiersprache. Es hat auf einem Vorschlag für das Algol X durch Niklaus Wirth und C. A. R. Hoare als ein Nachfolger des Algols 60 in der IFIP Arbeitsgruppe 2.1 basiert. Als das Komitee entschieden hat, dass der Vorschlag nicht ein genügend Fortschritt über das Algol 60 war, wurde der Vorschlag als Ein Beitrag zur Entwicklung des Algols veröffentlicht. Nach dem Bilden kleiner Modifizierungen in die Sprache hat Wirth eine hohe Qualitätsdurchführung für IBM/360 an der Universität von Stanford beaufsichtigt, die weit verteilt wurde.

Es hat eine relativ konservative Modifizierung des Algols 60 vertreten, Schnur, bitstring, komplexe Zahl und Verweisung hinzufügend, um datatypes und Übergang des Anrufs durch das Ergebnis von Rahmen, das Einführen während Behauptung zu registrieren, Schalter durch die Fall-Behauptung ersetzend, und allgemein die Sprache zusammenziehend.

Die Durchführung wurde in PL/360, eine EINEM ALGOL ähnliche von Wirth entworfene Zusammenbau-Sprache geschrieben. Die Durchführung hat das einflussreiche Beseitigen und die geistigen Kopierfräsanlagen eingeschlossen.

Syntax und Semantik

Auf

Algol-Syntax von W wird auf einer Teilmenge der EBCDIC Codierung gebaut. Im Algol sind 60 vorbestellte Wörter verschiedene lexikalische Sachen, aber im Algol W sind sie bloß Folgen von Charakteren und brauchen nicht abgezogen zu werden. Vorbestellte Wörter und Bezeichner werden durch Räume getrennt. Auf diese Weisen ähnelt Algol-Syntax von W der des Pascal und der späteren Sprachen.

Das ALGOL W Sprachbeschreibung definiert ALGOL W in einer Affix-Grammatik, die BNF ähnelt. Diese Grammatik war ein Vorgänger der Grammatik von Van Wijngaarden.

Viel ALGOL-Semantik von W wird grammatisch definiert:

  • Bezeichner sind durch ihre Definition innerhalb des aktuellen Spielraums bemerkenswert. Zum Beispiel ist ein procedure Bezeichner  ein Bezeichner, der durch eine Verfahren-Behauptung definiert worden ist, ist ein label Bezeichner  ein Bezeichner, der als ein Goto-Etikett verwendet wird.
  • Die Typen von Variablen und Ausdrücken werden durch Affixe vertreten. Zum Beispiel  τ Funktionsbezeichner ist  die syntaktische Entität für eine Funktion, die einen Wert des Typs τ zurückgibt, wenn ein Bezeichner als eine Funktion der ganzen Zahl im aktuellen Spielraum dann erklärt worden ist, wird das zum integer-Funktionsbezeichner  ausgebreitet.
  • Typ-Fehler sind grammatische Fehler. Zum Beispiel "ist integer-Ausdruck  / integer Ausdruck " und "real Ausdruck  / real Ausdruck " gültige, aber verschiedene syntaktische Entitäten, die Ausdrücke vertreten, aber "real Ausdruck  DIV integer Ausdruck " (d. h. Abteilung der ganzen Zahl, die auf einem Schwimmpunkt-Wert durchgeführt ist), ist eine ungültige syntaktische Entität.

Beispiel

Das demonstriert Algol die Rekordtyp-Möglichkeit von W.

REGISTRIEREN SIE PERSON (

SCHNUR (20) NAME;

ALTER DER GANZEN ZAHL;

LOGISCHER MANN;

VERWEISUNG (PERSON) VATER, MUTTER, YOUNGESTOFFSPRING, ELDERSIBLING

);

VERWEISUNG (PERSON) VERFAHREN YOUNGESTUNCLE (VERWEISUNG (PERSON) R);

BEGINNEN SIE

BEZUGS(PERSON) P, M;

P: = YOUNGESTOFFSPRING (VATER (FATHER(R)));

WÄHREND (P ¬ = UNGÜLTIG) UND (¬ MANN (P)) ODER (P = FATHER(R)) TUN

P: = ELDERSIBLING (P);

M: = YOUNGESTOFFSPRING (MUTTER (MOTHER(R)));

WÄHREND (M ¬ = UNGÜLTIG) UND (¬ MANN (M)) TUN

M: = ELDERSIBLING (M);

WENN P = UNGÜLTIG DANN

M

SONST, WENN M = UNGÜLTIG DANN

P

SONST

WENN ALTER (P)

Außenverbindungen


Vereinigte reformierte Kirche / XTree
Impressum & Datenschutz