Formale Grammatik

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet vonStartsymbol)
Zur Navigation springenZur Suche springen

Formale Grammatiken sindmathematische Modelle vonGrammatiken, die zur eindeutigen Erzeugung und Beschreibungformaler Sprachen dienen. Sie werden in dertheoretischen Informatik, insbesondere in derBerechenbarkeitstheorie, und imCompilerbau zum einen angewendet, um eindeutig festzulegen, ob einWort Element einer Sprache ist und zum anderen, um Eigenschaften dieser formalen Sprachen zu untersuchen bzw. zu beweisen. Formale Grammatiken werden mithilfe vonSemi-Thue-Systemen angegeben in derChomsky-Hierarchie klassifiziert.

Inhaltsverzeichnis

Beschreibung

[Bearbeiten |Quelltext bearbeiten]

Mit einer formalen Grammatik lassen sich ausgehend von einem StartsymbolS{\displaystyle S} (auchStartvariable genannt)Produktionsregeln aus einer RegelmengeP{\displaystyle P} anwenden, die aus dem Startsymbol neue Zeichenfolgen (Wörter) erzeugen, welche wiederum weiter ersetzt werden können. Diesen Vorgang nennt man auchAbleitung.

Das VokabularV{\displaystyle V} einer Grammatik, bestehend aus derdisjunkten Vereinigung einesAlphabetsT{\displaystyle T} vonTerminalsymbolen mit einer Menge vonNichtterminalsymbolenN{\displaystyle N}, gibt dabei vor, welche Symbole dafür verwendet werden können. Die Menge der Terminalsymbole definiert, aus welchen Zeichen Wörter bestehen, die nicht weiter abgeleitet werden können. Diese Wörter ergeben zusammengenommen die von der Grammatik beschriebene formale Sprache. Das Startsymbol muss dagegen ein Nichtterminalsymbol sein. Zusätzliche Nichtterminalsymbole erlauben differenziertere Regeln.

Produktionsregeln sind definitionsgemäßgeordnete Paare(α,β){\displaystyle (\alpha ,\beta )}, die auchαβ{\displaystyle \alpha \rightarrow \beta } geschrieben werden. Man wendet sie auf eine Zeichenfolgew{\displaystyle w} an, indem ein Vorkommen der Zeichenfolgeα{\displaystyle \alpha } inw{\displaystyle w} durchβ{\displaystyle \beta } ersetzt wird. Auf der linken Seite der Regel muss immer mindestens ein Nichtterminalsymbol stehen. Eine Menge von Regeln mit gleicher linker Seite, alsoαβ1,,αβn{\displaystyle \alpha \rightarrow \beta _{1},\;\ldots ,\alpha \rightarrow \beta _{n}}, wird abkürzend auch alsαβ1||βn{\displaystyle \alpha \rightarrow \beta _{1}\;|\;\ldots \;|\;\beta _{n}} geschrieben.

Zum Beispiel kann man mit der RegelmengeX+|{\displaystyle X\rightarrow +\;|\;-} die Zeichenfolge1X2{\displaystyle 1X2} entweder zu1+2{\displaystyle 1+2} oder zu12{\displaystyle 1-2} ableiten.

Ebenso wie auf eine gegebene Zeichenfolge mehrere Regeln gleichzeitig anwendbar sein können, muss es nicht immer nur eine Stelle in der Zeichenfolge geben, auf die eine Regel passt. Formale Grammatiken schreiben keine Reihenfolge vor. Alle nur aus Terminalsymbolen bestehenden Wörter, die sich aus dem Startsymbol ableiten lassen, zählen zur von der Grammatik beschriebenen Sprache.

Definition

[Bearbeiten |Quelltext bearbeiten]

Eine formale Grammatik wird dargestellt durch das 4-TupelG=(V,T,P,S){\displaystyle G=(V,T,P,S)}, worin:[1]

Das 4-Tupel wird je nach Konvention auch so definiert, dassV{\displaystyle V} der Menge derNichtterminalsymbole entspricht, sodassVT={\displaystyle V\cap T=\emptyset } ist.[2]

Hierbei bezeichnetX{\displaystyle X^{*}} dieKleenesche Hülle einer MengeX{\displaystyle X} von Zeichen (oder auch Wörtern).

Die MengeN=VT{\displaystyle N=V\setminus T} ist die Menge vonNichtterminalsymbolen (auchNonterminale oderMetasymbole genannt), insbesondere gehört das Startzeichen zu ihr. Das Wort auf der linken Seite der Regelpaare darf nicht ausschließlich aus Terminalzeichen bestehen, was man auch durch eineKonkatenation ausdrücken kann:

(VT)=VNV{\displaystyle \left(V^{*}\setminus T^{*}\right)=V^{*}NV^{*}}.

Es ergibt wenig Sinn, wenn das Wort auf der rechten Seite das Startsymbol enthält. Manche Autoren berücksichtigen das, indem sie die zugehörige Menge entsprechend beschränken, d. h.V{\displaystyle V^{*}} durch(V{S}){\displaystyle (V\setminus \{S\})^{*}} ersetzen.

Manche Autoren bezeichnen alternativ das Quadrupel(N,T,P,S){\displaystyle (N,T,P,S)} als GrammatikG{\displaystyle G}. Es finden sich darüber hinaus folgende abweichenden Bezeichnungen:[3]

Die von einer Grammatik beschriebene Sprache

[Bearbeiten |Quelltext bearbeiten]

Eine RegelRQP{\displaystyle R\rightarrow Q\in P} einer gegebenen GrammatikG{\displaystyle G} besagt, dass in einem WortwV{\displaystyle w\in V^{\ast }} mit R alsInfix, R durch Q ersetzt werden kann, so dass ein neues Wortw{\displaystyle w^{\prime }} mitQ{\displaystyle Q} als Infix entsteht. Man spricht hierbei auch davon, dassw{\displaystyle w} inw{\displaystyle w^{\prime }} mit der GrammatikG{\displaystyle G} bzw. durch die RegelRQ{\displaystyle R\rightarrow Q} übergeht, oder auch, dassw{\displaystyle w^{\prime }} ausw{\displaystyle w} abgeleitet wurde. Dies kann durchwRQw{\displaystyle w\rightsquigarrow _{R\rightarrow Q}w^{\prime }} notiert werden (häufig auch{\displaystyle \Rightarrow } anstatt{\displaystyle \rightsquigarrow }). Soll nur ausgedrückt werden, dass in der GrammatikG{\displaystyle G} das Wortw{\displaystyle w^{\prime }} ausw{\displaystyle w} entstehen kann, ohne eine Regel zu benennen, schreibt man stattdessenwGw{\displaystyle w\rightsquigarrow _{G}w^{\prime }} (ist die Grammatik aus dem Kontext offensichtlich, auch einfachww{\displaystyle w\rightsquigarrow w^{\prime }}). Demnach ist ein solcher Übergang vonw{\displaystyle w} inw{\displaystyle w^{\prime }} eineTransitionsrelation, die eine natürliche Erweiterung vonP{\displaystyle P} auf alle möglichenV{\displaystyle V^{*}}-Kontexte darstellt, nämlich:

:={(uRv,uQv)|(R,Q)P,u,vV}{\displaystyle \rightsquigarrow \;:=\;\{(u\circ R\circ v,u\circ Q\circ v)|(R,Q)\in P,u,v\in V^{*}\}},

wobei hier{\displaystyle \circ } dieKonkatenation von Wörtern bezeichnet.

Gibt es nun eine Folge von Wörternw0,w1,,wnV{\displaystyle w_{0},w_{1},\ldots ,w_{n}\in V^{\ast }}, bei der gilt, dass für jede natürliche Zahli{\displaystyle i} mit0i<n{\displaystyle 0\leq i<n} das Wortwi{\displaystyle w_{i}} inwi+1{\displaystyle w_{i+1}} übergeht (wiGwi+1{\displaystyle w_{i}\rightsquigarrow _{G}w_{i+1}}), so istwn{\displaystyle w_{n}} inn{\displaystyle n} Schritten ausw0{\displaystyle w_{0}} ableitbar, was durchw0Gnwn{\displaystyle w_{0}\rightsquigarrow _{G}^{n}w_{n}} dargestellt wird. Eine solche Wortfolgew0,w1,,wn{\displaystyle w_{0},w_{1},\ldots ,w_{n}} wirdAbleitung oderRechnung vonw0{\displaystyle w_{0}} inwn{\displaystyle w_{n}} der Längen{\displaystyle n} genannt. Weiterhin heißtw{\displaystyle w} inw{\displaystyle w^{\prime }} ableitbar, wenn es mindestens einnN0{\displaystyle n\in \mathbb {N} _{0}} gibt, so dassw{\displaystyle w^{\prime }} inn{\displaystyle n} Schritten ausw{\displaystyle w} ableitbar ist. Wennw{\displaystyle w} inw{\displaystyle w^{\prime }} ableitbar ist, so wird dies durch die SchreibweisewGw{\displaystyle w\rightsquigarrow _{G}^{\ast }w^{\prime }} dargestellt. Dabei wird zusätzlich definiert, dass für jedes WortwV{\displaystyle w\in V^{\ast }} gilt, dasswGw{\displaystyle w\rightsquigarrow _{G}^{\ast }w} ist, so dass die RelationG{\displaystyle \rightsquigarrow _{G}^{\ast }} diereflexiv-transitive Hülle der RelationG{\displaystyle \rightsquigarrow _{G}} ist.

Nun ist die von der GrammatikG{\displaystyle G} erzeugte formale SpracheL(G){\displaystyle L(G)} diejenige Sprache, die aus allen Wörtern besteht, die zum einen nur aus Terminalsymbolen bestehen und die zum anderen vom Startsymbol mit einer endlichen Anzahl von Schritten abgeleitet werden können:

L(G):={wT|SGw}{\displaystyle L\left(G\right):=\left\{w\in T^{*}|S\rightsquigarrow _{G}^{*}w\right\}}

Dabei ist es egal, in welcher Reihenfolge die Produktionsregeln auf die abgeleiteten Wörter angewandt werden, oder ob es mehrere Möglichkeiten gibt, um ein Wortw{\displaystyle w} ausS{\displaystyle S} abzuleiten. Zwei GrammatikenG1{\displaystyle G_{1}} undG2{\displaystyle G_{2}} sind genau dannäquivalent, wenn die durchG1{\displaystyle G_{1}} undG2{\displaystyle G_{2}} erzeugten Sprachen gleich sind:

G1 ist a¨quivalent zu G2:⟺L(G1)=L(G2){\displaystyle G_{1}\mathrm {\ ist\ {\ddot {a}}quivalent\ zu\ } G_{2}:\Longleftrightarrow L(G_{1})=L(G_{2})}

Wenn alle Terminalzeichen in den Wörtern der formalen Sprachen vorkommen, dann müssen die Terminalzeichen übereinstimmen. Die Nichtterminalzeichen sind dagegen völlig frei.

Beispiele

[Bearbeiten |Quelltext bearbeiten]

G1{\displaystyle G_{1}} sei eine Grammatik mit den Terminalsymbolen{a,b}{\displaystyle \{a,b\}}, den Nichtterminalsymbolen{S,A,B}{\displaystyle \{S,A,B\}}, dem StartsymbolS{\displaystyle S} und mit den Regeln

SABS(1)Sε(2)BAAB(3)BSb(4)Bbbb(5)Abab(6)Aaaa(7){\displaystyle {\begin{matrix}S&\to &ABS&\,(1)\\S&\to &\varepsilon &\,(2)\\BA&\to &AB&\,(3)\\BS&\to &b&\,(4)\\Bb&\to &bb&\,(5)\\Ab&\to &ab&\,(6)\\Aa&\to &aa&\,(7)\end{matrix}}}

Dabei istε{\displaystyle \varepsilon } dasleere Wort, welches ein Wort der Länge 0 ist. Diese GrammatikG1{\displaystyle G_{1}} definiert die Sprache aller Wörter der Formanbn{\displaystyle a^{n}b^{n}} mitnN0{\displaystyle n\in \mathbb {N} _{0}}. So sind auf Grund der folgenden Ableitungen die Wörterε{\displaystyle \varepsilon },ab{\displaystyle ab} undaabb{\displaystyle aabb} Elemente der durchG1{\displaystyle G_{1}} beschriebenen Sprache:

Es gibt aber noch andere Möglichkeiten, um das Wortaabb{\displaystyle aabb} ausS{\displaystyle S} abzuleiten.

Eine weitere Grammatik, die dieselbe Sprache beschreibt, ist diekontextfreie GrammatikG2{\displaystyle G_{2}} mit den Regeln:SaSb | ε{\displaystyle {\begin{matrix}S&\to &aSb\ |\ \varepsilon \end{matrix}}}

Jederekursiv aufzählbare Sprache wird von mehreren (und zwarabzählbar unendlich vielen) Grammatiken erzeugt.Allerdings gibt es auch Sprachen, die sich von keiner Grammatik erzeugen lassen.

Klassen von Grammatiken

[Bearbeiten |Quelltext bearbeiten]

Grammatiken werden Klassen zugeordnet, die sich durch Gemeinsamkeiten auszeichnen. Die bekannteste Klassifikation beschriebenNoam Chomsky undMarcel Schützenberger mit derChomsky-Hierarchie.

Chomsky-Hierarchie

[Bearbeiten |Quelltext bearbeiten]

DieChomsky-Hierarchie teilt die Grammatiken nach der Art der Produktionsregeln in Klassen vom Typ 0 bis Typ 3 ein:

  • Typ-0-Grammatiken:Phrasenstrukturgrammatiken sind uneingeschränkte formale Grammatiken.
  • Typ-1-Grammatiken:Kontextsensitive Grammatiken dürfen nur aus Regeln bestehen, in denen genau ein Nichtterminalsymbol durch eine Zeichenfolge ersetzt wird. Dieses Symbol darf auf der linken Seite der Regel auch von weiteren Symbolen umgeben sein, die einen Kontext angeben, innerhalb dessen die Ersetzung stattfinden muss.
  • Typ-2-Grammatiken: Inkontextfreien Grammatiken darf dagegen auf den linken Seiten der Regeln jeweils nur genau ein Nichtterminalsymbol stehen. Das Symbol kann dann unabhängig vom Kontext ersetzt werden.
  • Typ-3-Grammatiken: Beiregulären Grammatiken enthalten die linken Seiten der Regeln ebenfalls nur genau ein Nichtterminalsymbol. Bei linksregulären Grammatiken darf die rechte Seite der Regel aus höchstens einem Nichtterminalsymbol bestehen, dem höchstens ein Terminalsymbol folgt (Bsp.:XYa{\displaystyle X\to Ya}). Bei rechtsregulären Grammatiken darf hingegen die rechte Seite aus höchstens einem Terminalsymbol bestehen, dem höchstens ein Nichtterminal folgt (Bsp.:XaY{\displaystyle X\to aY}).

Die zugehörigen Sprachklassen sind abnehmend umfangreich. Es besteht folgende echteInklusionsbeziehung:

Für die SprachklassenLn{\displaystyle L_{n}} von Typn{\displaystyle n} mitn{0,1,2,3}{\displaystyle n\in \{0,1,2,3\}} gilt:L3L2L1L0{\displaystyle L_{3}\subset L_{2}\subset L_{1}\subset L_{0}}.

Weitere Sprachklassen

[Bearbeiten |Quelltext bearbeiten]

Von der Chomsky-Hierarchie abgesehen haben sich weitere Klassen an Grammatiken etabliert:

Siehe auch

[Bearbeiten |Quelltext bearbeiten]

Literatur

[Bearbeiten |Quelltext bearbeiten]
  • Katrin Erk, Lutz Priese:Theoretische Informatik. Eine umfassende Einführung. 2. erweiterte Auflage. Springer-Verlag, Berlin u. a. 2002,ISBN 3-540-42624-8,S. 53–61. 

Weblinks

[Bearbeiten |Quelltext bearbeiten]

Einzelnachweise

[Bearbeiten |Quelltext bearbeiten]
  1. Peter Bachmann:Grundlagen der Theoretischen Informatik. Cottbus 2001,S. 47 (tu-cottbus.de [PDF; abgerufen am 12. Februar 2011] Vorlesungsskript). 
  2. Christian Wagenknecht, Michael Hielscher:Formale Sprachen, Abstrakte Automaten und Compiler. Springer Vieweg, Wiesbaden 2014,S. 28,doi:10.1007/978-3-658-02692-9. 
  3. Während die Bedeutung vonT,N{\displaystyle T,N} undϵ{\displaystyle \epsilon } bzw.λ{\displaystyle \lambda } im gegebenen Fall jeweils klar ist, muss man sich beiV{\displaystyle V} (ebenso wie dem häufig benutztenΣ{\displaystyle \Sigma }) durch Überprüfung des Kontexts klarmachen, was gemeint ist; wobei man sich auf das Grammatik-Quadrupelsnicht verlassen kann.
  4. abKlaus Reinhardt:Prioritatszahlerautomaten und die Synchronisation von Halbspursprachen (Memento desOriginals vom 17. Januar 2018 imInternet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäßAnleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/users.informatik.uni-halle.de, Fakultät Informatik der Universität Stuttgart; Doktorarbeit 1994. Das Grammatik-Quadrupel ist hier wörtlich mit(V,Σ,P,S){\displaystyle (V,\Sigma ,P,S)} angegeben, damit ist in der hier gewählten Bezeichnungsweise(N,T,P,S){\displaystyle (N,T,P,S)} gemeint.
Normdaten (Sachbegriff):GND:4154991-0(lobid,OGND,AKS)
Abgerufen von „https://de.wikipedia.org/w/index.php?title=Formale_Grammatik&oldid=253902252#Beschreibung
Kategorien:
Versteckte Kategorie: