Nach einiger Zeit poste ich auch mal was hier im Projekte-Forum

Und zwar programmiere ich seit etwa anderthalb Wochen an einer kleinen Skript-Engine.
Sie basiert auf einem JIT-Compiler, was ihr wohl einen deutlichen Geschwindigkeitsvorsprung gegenüber herkömmlichen Skripts geben sollte (was wohl bei Spielen durchaus praktisch sein könnte), das ganze funzt derzeit auf x86 (Linux, Windows) und amd64 (nur Linux).
Meine Ziele sind dabei eine einfache Integration und Nutzung sowie hohe Ausführungsgeschwindigkeit.
Der Compiler ist komplett in C implementiert und unterstützt kein C++, da ich mit C++ nochmal mehrere ABIs implementieren müsste (so ziemlich für jeden Compiler eine), stattdessen werden C++-Klassen über ein C-Interface exportiert.
Der Code ist atm auch noch absoluter Spaghetticode, da muss noch einiges neugeschrieben werden, Dokumentation fehlt auch noch.
So sieht die Sprache an sich aus:
Code:
// Zahl quadrieren
function square(int a): int
return a * a;
end
/*
Diese Struktur wurde über eine C-Datei extern definiert.
Auf diese Weise kann zB eine Game-Engine exportiert werden.
*/
teststruct struct;
function main() : int
// Ein bisschen mit der Struct rumspielen
int a = struct.value1;
struct2.testfunc1();
struct2.value1 = 2;
int b = struct2.testfunc1();
// Eine for-Schleife
int i;
for i = 0 to 10 do
int sq = square(i);
// Gibt einfach die Zahl aus
test(i, sq);
end
// Eine while-Schleife
i = 0;
while i < 4 do
i = i + 1;
test(i, i);
end
if i == 5 then
print("i ist gleich 5!");
end
end
Die Sprache ist atm sehr unvollständig, viel mehr als in dem Beispiel wird noch nicht unterstützt.
Features:
- Hohe Geschwindigkeit im Vergleich zu interpretierten Sprachen*
- Relativ schnelle Compilierung
- Einfache Syntax (Verbesserungsvorschläge posten)
* Kommt auch auf den Einsatzbereich an, allerdings sollten Funktionen ab dem 2. Aufruf grundsätzlich schneller sein
TODO-Liste (ungefähr):
- Operatoren für Strukturen
- Dokumentation
- Optimierungen
- Code aufräumen
- Interpreter für nicht unterstützte Architekturen
- Interface-Generator (parst C/C++-Header, ähnlich tolua)
Das ganze ist nicht gerade einfach, Hilfe jeder Art ist grundsätzlich erwünscht 
Ich würde mich freuen, wenn ihr das ganze mal ausprobiert und mir Bugs meldet.
Um das ganze auf Windows zum Laufen zu bringen, muss man bei den Skriptdateien (und je nach Compiler auch den Sources) die Zeilenenden umwandeln, da ich das diese mit Linux-EOLs erstellt habe.Version 0.0.0.20 lässt sich nicht unter Windows compilieren, einfach die Zeilen, in denen der Compiler meckert, rausnehmen, wird mit der nächsten Version behoben.
Updates:Version 0.0.0.20:- Fließkommazahlen
- Grundlegende umstrukturierung des Compilers
- Tonnenweise Bugfixes
- Bessere Kompatibilität zu C++
- Log-Funktionen, um Fehler in eine Datei umzuleiten
Version 0.0.0.29:- Deutliche Verbesserung der structs
- Vereinfachter C++-Wrapper mit API-Dokumentation
- Strings
- Logische Operatoren (and, or, xor)
- Bugfixes v.a. bei Funktionsaufrufen