Akzeptor zur Syntaxanalyse, Syntaxdiagramme
Akzeptor zur Syntaxanalyse
Um ein in einer Programmiersprache geschriebenes Programm ausführen zu können, muss dieses in Maschinencode übersetzt werden. Dies geschieht u.a. durch einen Scanner und einen Parser.
Scanner: überprüft ob Wörter richtig geschrieben sind, ersetzt mit Tokens Parser: Überprüfung der Syntax
Damit sind Scanner und Parser Automaten, insbesondere ein Transduktor und ein Akzeptor.
Praktisch sind Scanner und Parser komplexer aufgebaut - für unsere Betrachtungen an dieser Stelle genügt die Sichtweise auf die Automaten.
Beispiel: Bezeichner in Pascal
Betrachten wir als Beispiel einen Bezeichner in Pascal (bzw. einer pascalähnlichen Sprache). Diese Bezeichner dürfen:
- Aus Zeichen (a..z), Ziffern (0..9) und dem Sonderzeichen "_" bestehen.
- Ziffern dürfen nicht zu Beginn des Bezeichners stehen.
- Einem beginnenden Unterstrich muss ein Zeichen folgen.
Grammatiken können auf einfache Art mit Hilfe von Sytaxdiagrammen dargestellt werden ... in unserem Fall:
DEA Umsetzung
Da Syntaxdiagramme genau alle Worte einer Sprache erzeugen / erkennen können, kann auch ein entsprechender DEA konstruiert werden.