GameDev.net hat am 27. April 2015 eine Tutorialreihe zu Automaten, virtuellen Maschinen und Compilern veröffentlicht. Der Beitrag von Vilem Otte richtet sich an Entwickler, die den Weg von einer einfachen Ausdruckssprache bis zu ausführbarem Code nachvollziehen möchten.
Als Ausgangspunkt dient eine kleine Sprache mit Ganzzahlen, den Operatoren für Addition, Subtraktion, Multiplikation und Division sowie Klammern. Die Grammatik wird in Backus-Naur-Form beschrieben. Ein rekursiver Abstiegparser soll gültige Ausdrücke erkennen und zugleich Code erzeugen, den eine virtuelle Maschine ausführen kann.
Von der Grammatik zur virtuellen Maschine
Die Reihe verbindet formale Sprachdefinitionen mit Automatisierung, Assembler-Grundlagen und der praktischen Umsetzung. Der Autor kündigt für die einzelnen Teile nachvollziehbare Programme an, damit die Schritte vom Parser über die Zwischendarstellung bis zur Ausführung überprüfbar bleiben.
Für die Spieleentwicklung sind solche Grundlagen vor allem bei Skriptsprachen, Werkzeugen und spezialisierten Laufzeiten relevant. Sie helfen dabei, eigene Befehlsformate zu entwerfen und deren Verarbeitung sauber von der eigentlichen Laufzeit zu trennen. Einen zeitlich passenden Hintergrund liefert der Beitrag zu GCC 5.1, der wenige Tage zuvor neue Compilerfunktionen beschrieben hat.
