Ich bin jetzt mitten in der Herstellung eines einfachen Bytecode-Interpreter, der RPN für Ausdruck Notation und wirklich Postfix-Notation für alles verwendet, aber jetzt bin ich zu der Frage gekommen, die ist: Kurzschluss Auswertung tatsächlich sein kann Wird für Postfix-Ausdrücke verwendet? Zum Beispiel beim Auswerten des Ausdrucks (false & & (faktoriell (7)> faktoriell (5))) C++ weiß das Ergebnis des & &-Operators auf den beiden Operanden wertet false, bevor es sogar zum zweiten Operanden kommt, da (false & & alles) ist immer gleich falsch. Jetzt, wenn Sie dies in RPN setzen, erhalten Sie (falsch (7 Fakultät 5 Fakultät) & &).RPN Kurzschluss Auswertung
Ich wollte einen effizienten RPN-Ausdrucksparser erstellen, daher ist das Problem: Wie mache ich einen effizienten RPN-Ausdrucksparser mit Kurzschlussauswertung?
Sie schreiben Code. Wir sind nicht hier, um Ihr System für Sie zu entwerfen oder Ihnen beizubringen, wie Sie es entwerfen. –
@MarcB Danke für die Informationen, die ich denke. Jedenfalls habe ich eine nützliche Antwort bekommen, also ja. –
RPN und Postfix Notation sind die gleichen Dinge, nicht zwei verschiedene Dinge. Sie bauen keine RPN-Parser in Interpreter. Die Eingabe ist bereits geparst und kann linear verarbeitet werden. Wenn Sie eine Kurzschlussauswertung wünschen, müssen Sie Verzweigungen einführen. – EJP