Grammatik anbringen

Eine Affix-Grammatik ist eine Art formale Grammatik, die zur Beschreibung der Syntax von Sprachen verwendet wird und von der Beschreibung natürlicher Sprachen inspiriert ist .

Tatsächlich handelt es sich um eine operative Variante der Grammatik von van Wijngaarden (2. Form).

Die Regeln einer Affix-Grammatik ähneln denen nicht-kontextueller Grammatiken , deren Begriffsnamen (oder Nicht-Terminals) parametrisiert würden. Diese als Affixe bezeichneten Parameter ermöglichen es, diese Begriffe mit Modalitäten zu versehen. Ihr Name ist von der Linguistik inspiriert, in der Modalitäten die Affixe (Präfixe, Infixe oder Suffixe) bestimmen können.

Wenn derselbe Zusatz in einer Regel mehrmals vorkommt, wird angenommen, dass sein Wert jedes Mal der gleiche ist.

Beispiel

Betrachten Sie die folgende nicht kontextbezogene Grammatik:

Satz → Prädikat Betreff "." Betreff → Name Prädikat → Verbobjekt Betreff → Name Name → Pierre | Verheiratet Name → Eltern | die Kinder Verb → mag | mögen Verb → Hilfe | Hilfe

Diese Grammatik beschreibt Sätze wie:

Mit mehr Substantiven , mehr Verben , mehr Konzepten, mehr Regeln können viele französische Sätze beschrieben werden, was vielversprechend aussieht.

Diese Art der Grammatik beschreibt jedoch auch viele Sätze wie:

Während Französisch erfordert, dass Subjekt und Verb in der Anzahl übereinstimmen.

Eine angehängte Grammatik drückt es folgendermaßen aus:

Hyperregeln: Satz → Betreff + Nummer Prädikat + Nummer "." Betreff + Nummer → Name + Nummer Prädikat + Nummer → Verb + Nummer Objekt Betreff → Name + Nummer Nom + Singular → Pierre | Verheiratet Name + Plural → die Eltern | die Kinder Verb + Singular → Hilfe | Gefällt mir Verb + Plural → Hilfe | Gefällt mir Metarule: Nummer → Singular | Plural.

Indem diese Grammatik in ihrer ersten Regel die Ausrichtung der Anzahl des Subjekts und des Prädikats (tatsächlich seines einzigen Verbs) auferlegt, hinterlässt sie nur korrekte Sätze, obwohl wir das sagen können

sollte stattdessen geschrieben werden

Dies könnte auch mit Hilfe von Affixen behandelt werden, abhängig von den verfügbaren Mitteln, um die Beziehungen zwischen Affixen zu definieren.

Arten von Affix-Grammatiken

Im einfachsten Fall können die Affixe nur eine endliche Anzahl von Werten annehmen, und diese Werte können nur gleich oder unterschiedlich sein. In diesem Fall machen die Affixe die nicht kontextuellen Grammatiken kompakter, ohne ihre Leistung zu erhöhen (Klasse 2 von N. Chomsky ).

Wir können auch zulassen, dass die Affixe beliebige Zeichenfolgen als Werte verwenden und ihre Verkettung zulassen , wobei die zulässigen Werte für die Affixe durch eine bestimmte nicht kontextbezogene Grammatik festgelegt werden , die als Affix-Grammatiken bezeichnet wird . Wir sprechen dann von 2-Level- Grammatiken oder vW2-Grammatiken. Diese Art von Grammatik wurde in den Berichten zur Definition der Programmiersprache Algol 68 verwendet .

Die Regeln , die Konzepte definieren , werden dann genannt Konzept Regeln oder hyperrules  : sie sind allgemeine Regeln.

Die Regeln, die die Affixe oder Regeln für Affixe definieren, spielen die Rolle von Metarulen: Sie organisieren die Affixe oder Modalitäten und skizzieren eine Theorie der beschriebenen Sprache.

Für das obige Beispiel würden wir also nehmen:

Nummer: Singular | Plural-

Das Erweitern einer Affix-Regel multipliziert die Möglichkeiten, zum Beispiel mit:

Nummer: Singular | Duell | Plural- Modus: indikativ | bedingt | Konjunktiv | Imperativ | Partizip | Infinitiv

M. Sintzoff und CHA Koster haben gezeigt, dass vW2-Grammatiken und Affix-Grammatiken die Beschreibung von Sprachen der Klasse 0 ermöglichen. Obwohl dies viele unentscheidbare Fragen aufwirft, haben Cleaveland und Uzgalis die konkrete Kraft dieser Formalismen für Programmiersprachen gezeigt Sie können die Syntax, die statische Semantik (Konsistenzprüfung) und die dynamische Semantik beschreiben.

Erweiterte Affix-Grammatiken (EAG) und endliche gitterwertige Affix-Grammatiken (AGFL) sind Varianten, mit denen der beste Kompromiss gefunden werden soll zwischen:

Programmieren mit Affix-Grammatiken

Über die Formalisierung von Sprachen oder Sprachen hinaus basiert die Anpassung von Affix-Grammatiken im Hinblick auf die grammatikalische Programmierung , die Grundlage vieler Werkzeuge, auf drei Punkten:

Darstellung von Affixen

Es entwickelte sich zunächst unter zwei Gesichtspunkten:

Die Entwicklung des Feldes hat weniger problematische Darstellungen begünstigt:

Modage anbringen

Die Ausrichtung der Parameterpassagen schafft andere Varianten: Es kann sein:

Arbeitsplätze

Die Umsetzung dieser Ideen ergab:

Diese Sprachen und ihre Umgebungen wurden ursprünglich entwickelt, um die Erstellung von Compilern zu erleichtern. Sie haben zu anderen Anwendungen geführt, z. B. zur Textbearbeitung, zur automatischen Analyse von AFP-Versendungen, zur automatischen Klassifizierung von Dokumenten und in einem anderen Genre zum interaktiven Design verschiedener Anzeigen Hoc- Sprachen durch skalierbares Mock-up / Prototyping ihrer Compiler.

Hinweis

Obwohl dieser Formalismus im Prinzip in der Nähe von Attributgrammatiken , Metamorphosegrammatiken oder DCGs liegt, erleichtern die Unterscheidung zwischen notwendigem Begriff und möglichem Begriff und die Tatsache, dass die Anhänge immer typisiert und häufig moderiert werden, die Erkennung von Fehlern und Inkonsistenzen in großen Anwendungen erheblich.

Anmerkungen

  1. bereits von CHA Koster besprochen in: CHA Koster & L. Meertens. Basic English, eine generative Grammatik für einen Teil des Englischen . Technischer Bericht, Euratom Seminar Machine en Talen , Univ. von Amsterdam, 1962.
  2. van Wijngaarden, Mailloux, Peck, Koster, Sintzoff, Lambert, Meertens, Fisker: Überarbeiteter Bericht über die algorithmische Sprache ALGOL 68 , 1975, Acta Informatica , 5: 1-236
  3. Sintzoff, M., 1967 Existenz der van Wijngaarden-Syntax für jede rekursiv aufzählbare Menge , Annals of the Scientific Society of Brussels 2, 115-118
  4. Cleveland & Uzgalis "Grammatiken für Programmiersprachen", 1977 Computer Science Library, Elsevier.
  5. siehe CHA Koster, 1991, Grammatiken für natürliche Sprachen anbringen in: Attributgrammatiken
  6. bestätigt von Cleveland & Uzgalis, op. cit.
  7. Die Anzahl wird minimiert, da sie bei Bedarf auch eine Schwachstelle bei der Konsistenzprüfung darstellen.
  8. Beney J., Präsentation der STARLET / GL-Sprache , 1989 rev. 2001
  9. wie ein PL1 / C-Compiler für Kontrolldaten Frankreich: Maranzana M., Martin JF, Frécon L., 1990, Un Traducteur de PL1 / Multics gegen C / VE , TSI, Band 9, Nr. 5, S. 399-42. (Quelle: 24.000 LET-Zeilen; Produkt-Compiler: 94.000 undokumentierte C-Zeilen).
  10. Arbeiten für Englisch, Niederländisch, Latein, Französisch, Russisch und Arabisch
  11. Colmerauer A., ​​1975, Die Grammatiken der Metamorphose , Artificial Intelligence Group, Fakultät für Naturwissenschaften von Luminy, Universität Aix-Marseille II
  12. Pereira F., Warren D., 1980, Definite-Klausel-Grammatiken für die Sprachanalyse - Ein Überblick über den Formalismus und ein Vergleich mit Augmented Transition Networks . Künstliche Intelligenz Nr. 13, p.  231-278

Literaturverzeichnis

Basen

Metakompilierung

Zusammenstellung und Sprachgestaltung

Sprachen

Automatische Dokumentation

Siehe auch