Anzeige
Anzeige
Fundstück

Wie funktioniert ein Compiler? Mit diesem Projekt baust du dir selbst einen

Compiler sind so kompliziert, dass nur die nerdigsten Nerds in der Lage sind, überhaupt irgendwas daran zu verstehen, richtig? Falsch. In diesem Projekt lernt ihr, wie ihr selber einen bauen könnt.

2 Min.
Artikel merken
Anzeige
Anzeige

(Foto: ronstik/Shutterstock)

Ein Compiler – oder Kompilierer – ist ein Computerprogramm, das Quellcode einer bestimmten Programmiersprache in eine Form übersetzt, die von einem Computer ausgeführt werden kann. So oder so ähnlich lautet die gängige Definition des Wortes. Was das die meisten von euch praktisch angeht? Nichts. Die Mehrheit muss sich in ihrem täglichen Job nicht damit auseinandersetzen, was ein Compiler macht. Aber: Compiler sind überall. Viele der Tools, die ihr jeden Tag verwendet, basieren auf von Compilern entlehnten Konzepten.

Compiler sind gar nicht so kompliziert

Anzeige
Anzeige

Compiler sind kompliziert? Sind sie. Das muss aber nicht unbedingt sein. In dem mit „The super tiny Compiler“ betitelten Projekt findet ihr eine detaillierte Anleitung, wie ihr euren eigenen, klitzekleinen Kompilierer bauen könnt. Mit JavaScript, eine neue Programmiersprache muss also auch keiner von euch lernen. Ganz nebenbei lernt ihr, wie ein Compiler funktioniert und was eigentlich dahintersteckt. Das Ganze ist nämlich ziemlich einfach und gar nicht so kompliziert, wie ihr vielleicht glaubt, ist Jamie Kyle, der Autor des Projekts, überzeugt.

Von Lisp zu C

Der klitzekleine Compiler, den ihr bauen werdet, kompiliert Lisp-ähnliche Funktionsaufrufe zu C-ähnlichen Funktionsaufrufen. Wer weder Lisp noch C beherrscht, muss sich davon aber nicht abschrecken lassen, für euch gibt’s im Projekt ein – zugegebenermaßen sehr – kurzes Intro dazu. Lisp und C zu lernen, ist aber auch nicht Sinn und Zweck der Übung. Um dem Tutorial zu folgen, soll es genügen, wenn ihr wisst, wie in beiden Sprachen die Syntax zur Addition und Subtraktion ganzer Zahlen lautet.

Anzeige
Anzeige

3 Schritte: Parsen, Transformieren und Code generieren

Anhand der vorgestellten – allerdings unvollständigen – Codebeispiele demonstriert Kyle die Hauptbestandteile moderner Compiler; genau diese Codebits wird euer Compiler nämlich am Ende kompilieren. Am Ende gibt es für die meisten Compiler nämlich drei Stadien: Parsen, Transformation und Code-Generation. Parsen bedeutet einfach, dass der Code zu einer abstrakteren Repräsentation seiner selbst umgewandelt wird. Im zweiten Schritt, den Kyle Transformation nennt, wird diese abstrakte Repräsentation so manipuliert, dass sie eben das macht, was der Compiler will. Im dritten Schritt, der Code-Generation, wird dieser transformierte Code in neuen Code umgewandelt, in diesem Fall zu C-ähnlichem Code. Jetzt wo ihr diese Basics verstanden habt, könnt ihr euren eigenen Compiler bauen – im Projekt auf GitHub findet ihr alles, was ihr dafür braucht.

Anzeige
Anzeige
Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Ein Kommentar
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Carsten Pitz

Compiler sind wirklich nicht so schwierig zu realisieren. Den ersten habe ich mit 16 oder 17 ohne großen theoretischen Hintergrund für meinen Vater gebaut. Dieser hat mathematische Formeln in der üblichen Schreibweise in Tastenfolgen für den HP35 Taschenrechner (RPN Logik) umgesetzt. Damals noch in Turbo Pascal 1.0

Antworten

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige