Einzelnen Beitrag anzeigen

Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#12

Re: RUTIS Engine (Scripting)

  Alt 19. Jun 2009, 23:50
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
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat