Ich wollt mich auch mal zu der Script-Engine äußern.
Also erstmal: ein wirkliches Lob - ich weiß was für ein Aufwand es ist, so was zu schreiben. Ich hab mir das Testprogramm angeschaut und finde es wirklich gut.
Jedoch wollt ich noch kurz was sagen (jedoch wirklich ohne Konkurenzgedanken!):
Zitat von
olee:
Ich habe mir mal die Sysygy angekuckt und gesehen, dass die mit Variant arbeitet, was nicht gerade
schnell ist.
Bei meiner Script-Engine gibt es den Delphi-Typ Variant nicht und er wird auch nicht benutzt. Die einzige Funktion, die Variant unterstützt ist die "Call"-Methode, die als Rückgabewert den Typ Variant hat (die Funktion ist dazu da, um einzelne Script-Funktionen ausführen zu können). Mein Datentyp hat zwar im Namen zwar "Variant" stehe, jedoch ist der Typ an sich (wie bei dir) nen Record mit ner case-anweisung variabel gestalltet ist.
Delphi-Quellcode:
type
PSygScript_Variant = ^TSygScript_Variant;
TSygScript_Variant = record
...
case Byte of
btU8 : (tu8 : TbtU8); // byte
btS8 : (ts8 : TbtS8); // shortint
btU16 : (tu16 : TbtU16); // word
....
end;
Nur um das mal richtig darzustellen.
Ich denke, dass die Engine viel potential hat. Noch mal zum
OOP: eine Script-Engine ist in meinen Augen nicht dazu da, um Datentypen zu definieren, sondern nur um den Programmablauf zu steuern. Ich will zwar in meiner neuen Script-Engine irgendwann mal
OOP unterstützen, jedoch ist das wirklich nur zweitrangig.
Ich wünsch dir auf jeden Fall viel Glück und Erfolg mit der Script-Sprache und hoffe, dass es gut für dich weiter geht - und das Beste ist immernoch: man weiß sehr viel besser über die internen Abläufe des Compilers, über die CPU usw. bescheid
.
Ach ja, was mir noch aufgefallen ist:
Delphi-Quellcode:
var i: integer;
implementation
begin
i := 2.1; // <- das sollte nicht funktionieren
end.
Zudem würd ich noch die Operatoren
mod shr und
shl einbauen - das ist schon relativ wichtig.
Grüße