(Moderator)
Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
Delphi 2007 Enterprise
|
Re: Parser UPN
12. Jun 2005, 10:12
@jbg: Die Abarbeitung des Syntaxbaumes ist nichts anderes als das Ausrechnen nach UPN-Notation.
Die Implementierung, so wie sie simonko erfunden hat, entspricht der eines simple precedence parsers. Die ist genauso gut oder schlecht, wie die manuelle Programmierung der BNF.
Der EBNF von jbg fehlt noch die Beschreibung von Potenzen (a^y).
Heutzutage nimmt man sich aber eher spezielle Programme, die sog. "Compiler Generatoren" und lässt die dann die richtige Implementierung erzeugen. Alles, was man da machen muss, ist, für jeden BFN-Ausdruck die Übersetzungsregel anzugeben. Das können Assemblerbefehle sein, oder eben die UPN-Notation. Ein einfacher UPN-Kalkulator nimmt sich dann den Input und berechnet das Ergebnis ("Wir basteln uns einen [Byte-code]-Interpreter"). Aber Du kannst eben genausogut aus dem Term ein kleines Assemblerprogrämmchen generieren lassen, welches du das Ergebnis berechnet ("Compiler").
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
|