machandel
Projektzusammenfassung | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
machandel
machandel ist eine Programmiersprache mit deutschen Schlüsselwörtern, die an FORTH angelehnt ist, sich aber auch aus anderen, neueren Einflüssen (von Factor) und eigenen Ideen zusammensetzt.
Eine konkatenative Programmiersprache ist eine, bei der die Komposition von Funktionen durch Konkatenation der syntaktischen Entsprechungen bewirkt wird. Während man in vielen anderen Programmiersprachen f(g(x)) schreibt, schreibt man in konkatenativen Programmiersprachen z.B. x g f .Hier wird zuerst x ausgewertet. Dann wird g darauf angewandt und auf das Ergebnis dessen wird f angewandt.
Ein wesentlicher Unterschied zu FORTH besteht darin, dass es Blöcke (=anonyme Funktionen) gibt, die nicht nur von allen Kontrollstrukturen genutzt werden, sondern sich auch zu neuen Blöcken zusammensetzen lassen (Komposition zweier anonymer Funktionen). Außerdem ist ein größerer Einfluss auf den Lexer möglich.
Der größte Unterschied - zumindest zu allen mir bekannten Programmiersprachen - besteht in der syntaktischen Definition von Unterprogrammen. Anders als in FB oder anderen Programmiersprachen haben Unterprogramme nicht einen einzigen Namen, sondern können mehrere Namen haben, die durch reguläre Ausdrücke definiert sind, so auch Zahlen([+-]?[0-9]+) und Strings, die gleichberechtigt neben allen anderen Unterprogrammen stehen. Um für einen gegebenen Ausdruck möglichst das richtige Unterprogramm auszuwählen - sofern mehrere zutreffende syntaktische Definition existieren - gibt es ein Auswahlverfahren, das mit einem Hierarchiesystem und anhand der ...ähm..."Spezifität"... der syntaktischen Definition versucht, das sicherzustellen ([0-9]? ist spezifischer als [0-9]* [a-e] ist spezifischer als [a-z] usw.).
Implementierung
Meine Implementierung in FB generiert x86-Maschinencode und nutzt PCRE für reguläre Ausdrücke. Das Projekt befindet sich momentan in einem Entwicklungszustand mit kleiner Standardbibliothek, bei dem sich noch einiges ändern kann. Insofern würde ich mich sehr über Feedback freuen :)
Projektseite bei launchpad.net
machandel inkl. Quelltext kann von launchpad.net zu den Bedingungen der EUPL (GPL-kompatibel) heruntergeladen werden.
Einführung
Eine Einführung im PDF-Format findet sich im Ordner "Dokumentation" des Downloads.
Dateimanager |
---|
Es wurden bisher keine Sources abgelegt. |