compilerbau:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
compilerbau:start [2021/10/29 07:38] – Martin Pabst | compilerbau:start [2022/05/19 08:03] – [Compilerbau (Einführung)] Martin Pabst | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Compilerbau (Einführung) ====== | ====== Compilerbau (Einführung) ====== | ||
- | Ein Schüler (Lukas) | + | <WRAP center round tip 80%> |
+ | Wenn Du Dich für Compilerbau interessierst, | ||
+ | </ | ||
+ | |||
+ | Ein Schüler | ||
+ | |||
+ | <WRAP center round info 80%> | ||
+ | Ein **Compiler** ist ein Computerprogramm, | ||
+ | - **Lexer**: Der Lexer zerlegt den Programmtext in die kleinsten syntaktisch sinnvollen Einheiten (" | ||
+ | - **Parser**: Der Parser analysiert die Liste der Tokens und erstellt daraus eine strukturelle Repräsentation des Programms, üblicherweise einen Baum (" | ||
+ | - **Interpreter/ | ||
+ | </ | ||
- | Ein Compiler ist ein Computerprogramm, | ||
- | - Lexer: Der Lexer zerlegt den Programmtext in die kleinsten syntaktisch sinnvollen Einheiten (" | ||
- | - Parser: Der Parser analysiert die Liste der Tokens und erstellt daraus eine strukturelle Repräsentation des Programms, üblicherweise einen Baum (" | ||
- | - Interpreter/ | ||
Im Folgenden wird die Funktionsweise eines Compilers vorgestellt, | Im Folgenden wird die Funktionsweise eines Compilers vorgestellt, | ||
Zeile 18: | Zeile 25: | ||
====== Fertiges Programm zum Ausprobieren ====== | ====== Fertiges Programm zum Ausprobieren ====== | ||
+ | Der Compiler unten bekommt ein kleines Testprogramm übergeben. Er verarbeitet es in drei Schritten: | ||
+ | - Der Lexer zerlegt das Programm in einzelne Tokens. | ||
+ | - Der Parser bekommt die Tokenliste und baut daraus den AST (abstract syntax tree) auf. | ||
+ | - Der Interpreter führ das Testprogramm aus, indem er den AST geeignet traversiert. | ||
+ | Hier das Testprogramm: | ||
+ | <code java> | ||
+ | a = 1; | ||
+ | b = 2; | ||
+ | while(a < 10) { | ||
+ | a = a + 1; | ||
+ | b = b * 2; | ||
+ | print(b); | ||
+ | } | ||
+ | </ | ||
compilerbau/start.txt · Zuletzt geändert: 2022/05/19 08:10 von Martin Pabst