What is code generation?
Code generation is a mechanism by which a compiler takes the source code as input and converts it into machine code. This machine code is actually executed by the system. Code generation is generally considered the final stage of compilation, although several intermediate steps are performed before the final executable is created. These intermediate steps are used for optimization and other relevant processes.
Der Codegenerierungsprozess wird von einer Komponente ausgeführt, die als Code generator, Teil des Compilerprogramms, bekannt ist. Der ursprüngliche Quellcode eines Programms durchläuft mehrere Phasen, bevor die endgültige ausführbare Datei generiert wird. Dieser endgültige ausführbare Code ist tatsächlich der Maschinencode, den Computersysteme ohne weiteres ausführen können.
In den Zwischenphasen der Kompilierung werden Codeoptimierungsregeln nacheinander angewendet. Manchmal hängen diese Optimierungsprozesse voneinander ab, sodass sie basierend auf der Abhängigkeitshierarchie nacheinander angewendet werden. Nachdem mehrere Phasen übergeben wurden, wird ein Syntaxbaum oder ein abstrakter Syntaxbaum generiert, der die Eingabe für den Codegenerator darstellt. An diesem Punkt wandelt der Codegenerator ihn in lineare sequentielle Befehle um. Nach diesem Schritt können je nach Compiler einige weitere Schritte consequences. Der endgültige optimierte Code ist der Maschinencode für die Ausführung und Ausgabeerzeugung.