Sprachen effizient interpretieren 18.12.2017, 00:00 Uhr

Der eilige Graal

Mit Graal und Truffle Programmiersprachen implementieren. Vorsicht: mit etwas Java.
Es gibt ja Gründe genug, eine eigene (dynamische) Programmiersprache zu entwickeln. Damit kann man etwa ein System nachträglich wunschgemäß konfigurieren oder dem Benutzer Möglichkeiten zur Funktionserweiterung gestatten. Also schreibt man einen Parser und wandelt damit die Anweisungen und Ausdrücke in einen abstrakten Syntaxbaum (AST) um, der dann von einem Interpreter abgearbeitet wird.
Damit wäre eigentlich alles gesagt, der Artikel zu Ende und wir könnten nach Hause gehen – wenn nicht dieser Interpreter oft viel zu langsam wäre. Also schreibt man über kurz oder lang eine virtu­elle Maschine, für die man den abstrakten Syntaxbaum in ein effizienteres Format umwandelt, damit dann die Interpretation deutlich schneller vonstattengeht. Ist auch das immer noch nicht schnell genug, dann wandelt man jenes interne Format in Maschinenbefehle um, sodass die Befehle unmittelbar auf dem zur Verfügung stehenden Prozessor ausgeführt werden können.

Jetzt 1 Monat kostenlos testen!

Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde.
  • + Digitales Kundenkonto,
  • + Zugriff auf das digitale Heft,
  • + Zugang zum digitalen Heftarchiv,
  • + Auf Wunsch: Weekly Newsletter,
  • + Sämtliche Codebeispiele im digitalen Heftarchiv verfügbar