8. Erzeugung von Programmgeneratoren

Man kann die Technik der Compilergenerierung verallgemeinern. Man ist also nicht nur fähig, Compiler bzw. Parser zu erzeugen, sondern auch ganz allgemeine Programmgeneratoren. Die Ausführungen sind analog zu denen der Compilererzeugung. Dies liegt einfach daran, daß die Compilererzeugung ein Beispiel für die Erzeugung von Programmgeneratoren ist.
So ist es leicht zu sehen, daß man Programmgeneratoren auch durch partielle Auswertung erzeugen kann. Hierzu spezialisiert man den partiellen Auswerter nicht auf einen Interpreter, wie es bei der Compilergenerierung der Fall ist, sondern auf einen Spezifikationsausführer (zu denen allerdings Interpreter gehören). Ein Spezifikationsausführer ist ein Programm, das als erste Eingabe eine Spezifikation erhält, die dann steuert, wie der Rest der Eingabe zu verarbeiten ist. (Die Spezifikation eines Interpreters ist das Quellprogramm.)
Bei dieser Verallgemeinerung gelten natürlich die gleichen Vor- und Nachteile, wie bei der Compilererzeugung. Der Spezifikationsausführer ist langsam, aber leicht zu schreiben. Ein Programmgenerator ist schwer zu schreiben, jedoch wesentlich schneller. Durch die partielle Auswertung kann man wiederum die Vorteile von beiden verbinden, indem man einen Spezifikationsausführer schreibt und diesen dann automatisch in einen Programmgenerator umwandelt.