AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Sysygy Script Engine - Version 0.99h
Thema durchsuchen
Ansicht
Themen-Optionen

Sysygy Script Engine - Version 0.99h

Ein Thema von littleDave · begonnen am 13. Jun 2008 · letzter Beitrag vom 1. Sep 2009
Antwort Antwort
Benutzerbild von littleDave
littleDave

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

Re: Sysygy Script Engine - Version 0.99h

  Alt 9. Mai 2009, 16:04
Zitat von Geri:
Die Script engine ist für mich immer noch interessant. Du schreibst aber, dass du an einer Neuen Scriptengine dran bist. Hast du schon einen Zeitpunkt für das erste Release und macht es dann besser wenn man auf diese neue Engine wartet?
Zitat von mkinzler:
Bzw wie kompatibel wird die neue zu der (schon hervorragenden) "alten" Engine sein?
Also die neue Script-Engine kommt ganz gut vorran - im Momemt bin ich bei der Implementierung von arrays und records. Danach stehen Klassen auf der ToDo-Liste.

Generell wird die Script-Engine nicht sehr kompatibel zu der alten sein. Die Virtual Machine ist komplett neu geschrieben und ist somit nicht von den Daten kompatibel. Jedoch wird die Syntax ebenfalls wieder Pascal sein, somit ist die Sprache an sich sehr kompatibel. Jedoch hab ich die Syntax auch schon erweitert und die Funktionen werden in virtuellen statischen Klassen in der Script-Engine zusammengefasst.

Hier mal ein Beispiel
Delphi-Quellcode:
//alte Script-Sprache
var i: integer;
begin
  i := StrToInt('123');
  WriteLn(IntToStr(i));
end;

// Neue Script-Sprache
var i: integer;
begin
  i := Convert.StrToInt('123');
  Console.WriteLine(Convert.IntToStr(i)); // Entweder so
  Console.WriteLine(i); // oder so - overloaded Methoden werden unterstützt
end;
Jedoch wird man Projekte an die neue Script-Engine etwas anpassen müssen. Die grundlegenden Funktionen bleiben in etwa gleich, jedoch mit etwas anderen Parametern:
Delphi-Quellcode:
var PE: TSE2RunTime;
begin
  PE := Compiler.Compile('program Test; begin end.');
  try
    if PE <> nil then // korrekt kompiliert
    begin
      // z.B.
      PE.SaveToFile('Compiled.dat');

      PE.Initialize;
      PE.Run;
      PE.Finalize;
    end;
  finally
    PE.Free;
  end;

  // Oder so
  PE := TSE2RunTime.Create;
  try
    PE.LoadFromFile('Compiled.dat');
    PE.Initialize;
    PE.Run;
    PE.Finalize;
  finally
    PE.Free;
  end;
end;
Wann der erste Release sein wird, kann ich noch nicht sagen - aber ich beeil mich
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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz