Vorlesung Notizen zum Thema von - bis
Thümmel: Formale Syntax Syntax-Typen 23. Okt. 1997 - 27. Nov. 1997
 
Übersicht zu den Übungsaufgaben usw. - Schlagwortverzeichnis

Syntax, Syntaxtypen, Normalform

Definition: S = < VT, VN, S, R > heißt formale Syntax, wenn Man nennt V := VT È VN das Vokabular, VT das terminale Vokabular, VN das nicht terminale Vokabular, S das Anfangs- oder Startsymbol (falls S Î VN) und R die Menge der Regeln.

Begriffe

Definition: Ein Paar (V, R) heißt Ersetzungs- oder Produktionssystem, wenn siehe Bäume und Ableitungen

Definition: Eine Regelsyntax (Regelgrammatik) ist ein Ersetzungssystem mit ausgezeichneter Kette.
Siehe auch: Typ 0 Syntax
 
Definition: Eine Syntax ist eine Typ 0 Syntax (Regelgrammatik, Ersetzungssyntax, Erzeugungssyntax) wenn für alle Regeln j -> y gilt:

  1. j, y Î V*
  2. j Ï VT*
Anders geschrieben: " r Î R : r = (j, y) mit j Î V* VN V*, y Î V*
Anmerkung: Aus 2. folgt j ¹ l.

Definition: Eine Syntax ist eine Typ 1nr Syntax (beschränkte / nicht-kontrahierende Syntax), wenn sie eine Typ 0 Syntax ist, und jedes r Î R eine der beiden folgenden Formen hat:

  1. S -> e
  2. j -> y mit lg(j) £ lg(y) und y Î ((VNÈVT) \ {S})* falls (1) Î R, sonst y Î V*
Anmerkung: j ¹ l  Þ  lg(j) ³Þ  lg(y) ³Þ  y ¹ e
Siehe auch die im folgenden definierten Typ 1 Syntaxen.

Definition: Eine Syntax ist eine Typ 1e Syntax (kontextsenitive Syntax), wenn sie Typ 1nr Syntax ist, und zusätzlich jedes r Î R eine der beiden folgenden Formen hat:

  1. S -> e
  2. xAy -> xzy mit A Î VN,  x, y Î V* und z Î (V* \ {e})
Frage: Gilt die strenge Bedingung für z immer oder analog zur Definition von Typ 1nr nur, wenn (1) Î R? Oder anderherum: Folgt nicht sowieso schon z ¹ e aus lg(A) £ lg(z)?

Anmerkung: Bei der Regel xAy -> xzy bezeichnet man A -> z als Kern und notiert für die Regel auch A -> z / x _ y. Beispiel: N -> Hund / ein _ VP

Definition: Eine Syntax ist eine Typ 1Ï Syntax, wenn sie Typ 1nr Syntax mit (S -> e) Ï R ist.

Definition: Eine Syntax ist eine Typ 1Î Syntax, wenn sie Typ 1nr Syntax mit (S -> e) Î R ist.

Definition: Eine Syntax ist eine kontextsensitive 59 Ch Typ 1 Syntax, wenn sie sowohl vom Typ 1e als auch vom Typ 1Ï ist.
Anmerkung: Also handelt es sich um eine kontextsensitive Syntax mit (S -> e) Ï R (lambdafrei, epsilonfrei).

Definition: Eine Syntax ist eine kontextsenitive e Typ 1 Syntax, wenn sie sowohl vom Typ 1e  als auch vom Typ 1Î.
Anmerkung: Weil eine kontextsenitive e Typ 1 Syntax vom Typ 1e ist, ist sie auch eine Typ 1nr Syntax. Daher hat jede Regel eine der beiden folgenden Formen:

  1. S -> e
  2. j1 c j2 -> j1 w j2  wobei
Wegen der dritten Bedingung muß w ¹ S sein. Ebenso folgt aus der letzten Bedingung w ¹ e.
Frage: War das so gemeint, oder müssen die Bedingungen für Typ 1e (kontextsensitive Syntax) weggelassen werden?

Definition: Eine Syntax ist eine kontextfreie 59 Ch Typ 2 Syntax, wenn sie eine kontextsenitive e Typ 1 Syntax ist, und jede Regel eine der beiden folgenden Formen hat:

  1. S -> e
  2. j1 c j2 -> j1 w j2  wobei j1 = l und j2 = l
Anmerkung: Für den Fall, daß die Definition der kontextsenitiven e Typ 1 Syntax fehlerhaft ist, sei folgende alternative Definition angegeben:
Eine Syntax ist eine kontextfreie 59 Ch Typ 2 Syntax, wenn sie Typ 1nr Syntax ist, und jede Regel eine der beiden folgenden Formen hat:
  1. S -> e
  2. j1 c j2 -> j1 w j2  wobei
 
Definition: Eine Syntax ist eine kontextfreie l Typ 2 Syntax, wenn  sie Typ 1nr Syntax ist, und jede Regel eine der beiden folgenden Formen hat:
  1. S -> e
  2. j1 c j2 -> j1 w j2  wobei
Frage: Wenn eine Typ 2 Syntax zugeleich auch eine Typ 1 Syntax ist, dann ist w = l ausgeschlossen, da aus lg(c) = 1 £ lg(w) folgt, daß w ¹ l.Worin unterscheidet sich dann aber eine kontextfreie l Typ 2 Syntax von einer kontextfreie 59 Ch Typ 2 Syntax?

Definition: Eine Syntax heißt separiert, wenn " r Î R : r = (j, y) mit y Î VN* oder y Î VT*.

Definition: Eine Syntax hat Normalform (heißt Normalsyntax), wenn " r Î R : r = (j, y) mit lg(y) £ 2.

Definition: Eine Syntax ist eine Typ 3 Syntax (kontextfreie Ch, rechtslineare Ch, rechtsprädikative Syntax), wenn sie eine Typ 2 Syntax ist, und w = w1w2 mit w1 Î VT und w2 Î VN. Entsprechend definiert man linkslineare, linksprädikative und beidseitige Syntaxen.

Anmerkung: Alternativ läßt man auch VN* zu. Dann hat die Syntax aber nicht mehr zwingend Normalform.



Joachim Wagner
Osnabrück, den 04. Februar 1998