Schreiben eines Interpreters in Go
212 Seiten
German
PDF
4.5

Schreiben eines Interpreters in Go

Schreiben eines Interpreters in Go

Autor:

Jahr:

Zusammenfassung:

Einleitung

Das Buch «Writing an Interpreter in Go» (auf Deutsch: «Schreiben eines Interpreters in Go») von Thorsten Ball ist ein einzigartiger praktischer Leitfaden, der Schritt für Schritt lehrt, einen vollwertigen Interpreter für die fiktive Programmiersprache Monkey zu erstellen. Im Gegensatz zu akademischen Lehrbüchern über Compiler konzentriert sich dieses Buch auf echten Code und minimale Theorie, sodass der Leser sofort mit dem Schreiben eines funktionierenden Interpreters in der Sprache Go beginnen kann.

Das Buch erschien 2018, umfasst 212 Seiten und richtet sich an Programmierer, die tiefer verstehen möchten, wie Programmiersprachen «unter der Haube» funktionieren. Es setzt keine Vorkenntnisse im Bereich Compiler voraus, aber sichere Kenntnisse in Go.

Worum geht es in diesem Buch

Das Buch führt den Leser konsequent durch alle Phasen der Erstellung eines Interpreters: von der lexikalischen Analyse bis zur Codeausführung. Die Hauptthemen:

  • Lexikalischer Analysator (Lexer) — Zerlegung des Quellcodes in Tokens.
  • Parser — Erstellung eines abstrakten Syntaxbaums (AST) mittels rekursivem Abstieg und der Pratt-Parsing-Methode (Pratt parser).
  • Objektsystem — Darstellung von Werten (Zahlen, Zeichenketten, Booleans, Funktionen, Arrays, Hashes).
  • Auswerter (eval) — Durchlaufen des AST und Ausführen von Ausdrücken und Anweisungen.
  • Closures und Funktionen erster Klasse — Implementierung von Gültigkeitsbereichen und Closures.
  • Eingebaute Funktionen — Hinzufügen von Standardoperationen (len, puts, first, rest usw.).
  • Typsystem — dynamische Typisierung mit Prüfungen zur Laufzeit.

Jedes Kapitel endet mit funktionierendem Code, der sofort getestet werden kann. Am Ende erhält der Leser einen Interpreter, der Programme in Monkey ausführen kann – einer Sprache mit einer Syntax, die an eine Mischung aus C, JavaScript und Python erinnert.

Für wen ist dieses Buch geeignet

Das Buch ist nützlich für:

  • Go-Entwickler, die ihr Verständnis der Sprache und ihrer Möglichkeiten vertiefen möchten.
  • Programmierer, die sich für Compiler interessieren – diejenigen, die erfahren möchten, wie Parser und Interpreter funktionieren.
  • Studenten und Dozenten – als praktische Ergänzung zu Kursen über Programmiersprachen.
  • Jeden Entwickler, der seine eigene Sprache oder DSL (domänenspezifische Sprache) erstellen möchte.

Wichtig: Das Buch lehrt Go nicht von Grund auf – der Leser sollte in der Lage sein, Go auf mittlerem Niveau zu schreiben (Kenntnisse über Strukturen, Interfaces, Zeiger; Goroutinen sind nicht erforderlich).

Was der Leser lernen wird

Nach der Lektüre werden Sie in der Lage sein:

  • Einen Lexer von Grund auf zu schreiben, der Zeichenketten in Tokens zerlegt.
  • Einen Parser mittels rekursivem Abstieg mit Operator-Prioritäten zu implementieren.
  • Ein AST zu erstellen und zu durchlaufen.
  • Ein System von Werten und Umgebungen (Laufzeitumgebungen) zu erstellen.
  • Closures und Funktionen höherer Ordnung zu implementieren.
  • Unterstützung für Arrays, Hashes und Zeichenkettenoperationen hinzuzufügen.
  • Zu verstehen, wie dynamische Dispatch und Fehlerbehandlung funktionieren.
  • Fertigen Code eines Interpreters zu erhalten, der erweitert werden kann.

Stärken des Buches

Praktische Ausrichtung. Jedes Konzept wird sofort durch Code untermauert. Sie lesen nicht nur Theorie – Sie schreiben den Interpreter Zeile für Zeile.

Schrittweise Darstellung. Das Buch ist in kleine Kapitel unterteilt, die jeweils neue Funktionalität hinzufügen. Dies ermöglicht es, leicht zu früheren Abschnitten zurückzukehren.

Sauberer Go-Code. Der Autor verwendet idiomatisches Go, Interfaces und Komposition, was den Code sowohl lehrreich als auch praxistauglich macht.

Keine überflüssige Theorie. Im Gegensatz zum «Drachenbuch» (Aho, Lam, Sethi, Ullman) gibt es hier keine formalen Grammatiken und Beweise – nur das, was für einen funktionierenden Interpreter nötig ist.

Empfehlungen