Warum dieses Projekt?

Im Quelltext steht nicht immer offen erkennbar, welche Berechnung von welcher anderen abhängt oder wie lange Daten benötigt werden. Leek untersucht ein Programmiermodell, in dem solche Beziehungen ausdrücklich beschrieben werden. Das Ziel ist verständlicheres Ausführen und Analysieren, nicht nur eine weitere Schreibweise für bekannte Befehle.

Ein Programm als Abhängigkeitsplan

Wenn zwei Berechnungen unabhängig voneinander sind, könnten sie grundsätzlich getrennt bearbeitet werden. Braucht eine Berechnung dagegen das Ergebnis einer anderen, muss diese Reihenfolge eingehalten werden. Leek möchte solche Beziehungen im Programmgraphen sichtbar machen.

Die Idee ähnelt einem Arbeitsplan: Welche Eingaben liegen vor, welcher Schritt erzeugt welches Ergebnis und wo wird es weiterverwendet? Eine sichtbare Struktur soll helfen, Aufwand und mögliche Parallelität zu verstehen.

Was der Prototyp bereits umsetzt

Der kleine Compiler liest Funktions- und Ganzzahl-Deklarationen, prüft einen begrenzten Satz von Regeln und erzeugt C-Code. Daraus wird mit einem vorhandenen C-Compiler ein ausführbares Programm gebaut. Zusätzlich kann ein Graph zur Darstellung exportiert werden.

Das umfassendere Sprachmodell aus dem Entwurf ist damit noch nicht vollständig implementiert. Allgemeine Ausdrücke, Funktionsaufrufe, Rückgabewerte und vollständige Typprüfung gehören nicht zum dokumentierten kleinen Prototyp. Eine automatische Performance-Steigerung wird daraus nicht abgeleitet.

Warum nicht einfach einen vorhandenen Compiler verwenden?

Für normale Anwendungen ist ein etablierter Compiler die naheliegende Wahl. Leek ist ein Forschungs- und Lernprojekt zur Frage, wie expliziter Datenfluss die Struktur einer Sprache verändern könnte.

Der Wert liegt darin, den Weg von der Eingabe über die Analyse bis zum sichtbaren Graphen und ausführbaren Ergebnis selbst zu untersuchen. Das verbindet Leek mit den anderen Projekten rund um klare Datenlayouts und nachvollziehbare Ausführung.

Quellcode & Dokumentation

Quellcode und die verfügbare Projektdokumentation findest du auf GitHub. Dort stehen auch die Hinweise zum Bauen, zur Nutzung und zur Lizenz.

leek auf GitHub ↗

Weiter entdecken