Ich denke darüber nach, meine eigene kleine Sprache zu schreiben.
Ich habe ein paar Optionen gefunden, aber zögern Sie nicht, mehr zu empfehlen.
Viele Sprachen benutzen die JVM, aber wenn Sie nicht eine Java-ische Sprache schreiben, wird die ganze Macht, die die stdlib Ihnen gibt, hässlich werden; Es ist auch nicht sehr gut in dynamischen Sachen.
Papagei scheint eine gute VM für die Entwicklung von Sprachen zu sein, aber es hat ein wenig verlassenen / unvollendeten / Hobby-Projekt Geruch.
OSA ist das, was Applescript antreibt, keine besonders bekannte VM, aber ich benutze Mac und es bietet eine gute Systemintegration.
CLR + Mac scheint keine gute Kombination zu sein ...
Meine Sprache wird eine objektorientierte funktionale gleichzeitige Datenflusssprache mit starker Typisierung und einer Mischung aus Python- und Lisp-Syntax sein. Klingt gut, wie?
[Bearbeiten]
Ich akzeptierte Python für jetzt, aber ich würde gerne mehr über OSA und Parrot erfahren.
Ein Ansatz, mit dem ich gespielt habe, ist das Python-Modul ast , um eine abstrakte Syntax zu erstellen Baum, der den auszuführenden Code darstellt. Die Python-Funktion compile
kann einen AST in Python-Bytecode kompilieren, wobei exec
kann dann ausgeführt werden. Dies ist etwas höher als das direkte Erzeugen von Bytecode, aber Sie werden sich mit einigen Macken der Python-Sprache befassen müssen (zum Beispiel der grundlegende Unterschied zwischen Anweisungen und Ausdrücken).
Dazu habe ich auch ein "deparse" -Modul geschrieben, das versucht, eine AST zurück in äquivalenten Python-Quellcode zu konvertieren, nur zum Debuggen. Sie können Code im Psil Repository finden, wenn Sie daran interessiert sind.
Beide oben genannten Optionen haben Zugriff auf nützliche Standardbibliotheken, die Ihnen Arbeit ersparen und in relativ sauberem und modularem C codiert sind, so dass sie nicht schwer zu verbinden sein sollten.
Das stimmt, ich stimme nicht zu, dass Papagei aufgegeben / Hobby ist. Es ist ziemlich ausgereift und hat einige sehr starke Entwickler, die daran arbeiten. Darüber hinaus ist es speziell eine VM, die auf mehrere dynamische Sprachen ausgerichtet ist. So wurde mit Flexibilität konzipiert.
Haben Sie Pypy in Betracht gezogen? Von dem, was ich gelesen habe, abgesehen davon, dass es ein Python JIT Compiler ist, hat es auch die Fähigkeit, mit anderen Sprachen umzugehen. Zum Beispiel gibt es ein Tutorial , das erklärt, wie man einen Brainfuck JIT erstellt Compiler mit Pypy.
Tags und Links language-design jvm osascript vm-implementation parrot