Benutzer-Werkzeuge

Webseiten-Werkzeuge


compilerbau:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
compilerbau:start [2021/10/29 07:38] Martin Pabstcompilerbau:start [2022/05/19 08:02] – [Compilerbau (Einführung)] Martin Pabst
Zeile 1: Zeile 1:
 ====== Compilerbau (Einführung) ====== ====== Compilerbau (Einführung) ======
-Ein Schüler (Lukas) bat um eine Erklärung, wie ein Compiler (z.B. [[https://www.pabst-software.de/doku.php?id=programme:eos:start|EOS]] oder die [[https://www.online-ide.de|Online-IDE]]) programmiert wird. Leider pflegen alle Artikel, die ich dazu im Internet finde, einen recht theoretischen Zugang zum Thema. Daher möchte ich die Sache im Folgenden so erklären, wie ich sie (damals als Schüler in der 12. Jahrgangsstufe) an einem einfachen, in Pascal geschriebenen Compiler gelernt habe. \\ +<WRAP center round tip 80%> 
 +Wenn Du Dich für Compilerbau interessierst, solltest Du unbedingt das Buch [[https://craftinginterpreters.com/|"Crafting Interpreters"]] von Robert Nystrom lesen. Es ist sehr kurzweilig und äußerst anschaulich geschrieben. Für alle, die sich das Buch nicht leisten können, hat der Autor es [[https://craftinginterpreters.com/contents.html|hier kostenlos in Html-Form]] veröffentlicht. 
 +</WRAP> 
 + 
 +Ein Schüler von mir (Lukas) fragte mich, wie ein Compiler (z.B. [[https://www.pabst-software.de/doku.php?id=programme:eos:start|EOS]] oder die [[https://www.online-ide.de|Online-IDE]]) programmiert wird. Leider pflegen alle Artikel, die ich dazu im Internet finde, einen recht theoretischen Zugang zum Thema. Daher möchte ich die Sache im Folgenden so erklären, wie ich sie (damals als Schüler in der 12. Jahrgangsstufe) an einem einfachen, in Pascal geschriebenen Compiler gelernt habe. \\ 
  
 Ein Compiler ist ein Computerprogramm, das einen in einer Programmiersprache verfassten Programmtext einliest und in eine andere Programmiersprache umwandelt oder direkt ausführt. Er arbeitet üblicherweise in drei Schritten, die nacheinander ausgeführt werden: Ein Compiler ist ein Computerprogramm, das einen in einer Programmiersprache verfassten Programmtext einliest und in eine andere Programmiersprache umwandelt oder direkt ausführt. Er arbeitet üblicherweise in drei Schritten, die nacheinander ausgeführt werden:
Zeile 18: Zeile 22:
  
 ====== 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); 
 +}
 +</code>
  
  
compilerbau/start.txt · Zuletzt geändert: 2022/05/19 08:10 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki