AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte RUTIS Engine (Scripting) [WinCE spinnt]
Thema durchsuchen
Ansicht
Themen-Optionen

RUTIS Engine (Scripting) [WinCE spinnt]

Ein Thema von olee · begonnen am 14. Jun 2009 · letzter Beitrag vom 20. Aug 2010
Antwort Antwort
Seite 6 von 11   « Erste     456 78     Letzte »    
Benutzerbild von olee
olee
Registriert seit: 16. Feb 2008
DIES IST DIE ALTE VERSION VON RUTIS
Die neue Version gibts hier: RUTIS v2
----------------------------------------------

Hi,
Hier möchte ich euch eines meiner größten Projekte vorstellen.

RUTIS

Die "RunTime Script Engine" (RUTIS Engine) dient dazu, Scripte zur Laufzeit zu compilieren und auszuführen, um z.B. Die Funktionen von Programmen zu verändern, ohne diese neu zu compilieren.
Durch eine sehr hohe Geschwindigkeit lassen sich sogar ganze Programme allein mit einem solchen Script erstellen.
Die RUTIS Engine kann mehrere Compiler unterstützen wobei der Standardcompiler mit einem Delphi/Pascal Syntax arbeitet.

- - - HINWEIS: INFOS ETWAS VERALTET - WERDEN BEI GELEGENHEIT KORRIGIERT - - -
RUTIS bietet eine große Funktionsvielfalt:
  • Globale sowie lokale Variablen
  • Verschachtelbare Funktionen und Methoden, die auch rekursive Algorithmen lösen können.
  • Beliebige Deklaration von Records
  • Unterstützung von Pointern und Arrays
  • Einfache Verknüpfung von Hostprogramm und Script mittels speziellen, beliebig erstellbaren Verbindungsfunktionen.
  • NEU: Methode-Variablen (bisher jedoch nur parameterlose Prozeduren)
  • NEU: Formular Interface, wodurch sich ganze Anwendungen mit GUI erstellen lassen!
  • NEU: Aufruf von DLL-Funktionen über die deklaration im Script als 'external' ! (Hier ein DANKE an 'Astat')
  • uvm.
Das sollte vorerst an Informationen reichen.

RUTIS PROJEKTSEITE (Downloads, Infos usw.)
SVN-Portal: http://www.xp-dev.com/sc/77518


INFO : RUTIS unterliegt einer Creative Commons BY-NC-SA (DE) Lizenz
INFO 2: Die nachfolgenden Links könnten des öfteren nicht funktionieren, da sie nach jedem neuen Upload ungültig werden. Auf der Projektseite dagegen sollten
die Downloadlinks immer funktionieren. Ich entschuldige mich hier auch für eine solche Faulheit, die Links nur selten zu aktualisieren ^^
RUTIS Setup 1,04 MB RUTIS (zip) 1,28 MB RUTIS (Source) 2,08 MB


MFG
Codename: Performancepumpe

Geändert von olee (20. Mai 2011 um 03:50 Uhr)
 
Benutzerbild von olee
olee

 
Turbo Delphi für Win32
 
#51
  Alt 2. Jan 2010, 16:11
An so etwas hatte ich auch gedacht doch das wäre
a) Etwas schwer einzurichten
b) würde es einen in den Möglichkeiten einschränken

vor allem a) war der Grund, da ich beim kompillieren noch nix von dem zielprogramm weiß.

MFG
Björn Zeutzheim
  Mit Zitat antworten Zitat
Benutzerbild von olee
olee

 
Turbo Delphi für Win32
 
#52
  Alt 11. Jan 2010, 16:42
So es ist endlich wieder soweit!

Ich kann euch nun freudig verkünden, dass endlich die Neue Version von RUTIS draußen ist.

Es gab eine menge Bugfixes und anderen Korrekturen und RUTIS läuft so stabil wie noch nie zuvor.

Deswegen würde ich auch sagen das dies die erste, vorerst abgeschlossene Version von RUTIS ist.

D.h. wenn ich das nächste mal an RUTIS arbeite, wird es wohl in Richtung OOP gehen

Ihr dürft also gespannt bleiben .

Ich hoffe das ihr alle mir nun helfen könnt, ein wenig auf käfersuche in RUTIS zu gehen und auch über sonstige
Verbesserungsvorschläge wäre ich sehr dankbar.

MFG
Björn Zeutzheim
  Mit Zitat antworten Zitat
Benutzerbild von olee
olee

 
Turbo Delphi für Win32
 
#53
  Alt 5. Feb 2010, 16:33
Hallöchen miteinander

Freudig kann ich euch verkünden, das es nun endlich wieder ein UPDATE zu RUTIS gibt.

Es hat sich seit dem letzten mal ne Menge getan und ich habe wieder mal viele Bugs behoben und die Engine insgesamt verbessert.

Die größte und wichtigste Änderung ist jedoch bei den Strings erfolgt.
Während früher Strings in Rutis als PAnsiString, also als Pointer auf einen Pointer auf die Daten des Strings, im Stack abgelegt wurde, so wird nun ein AnsiString, also der direkte Pointer auf die Daten, im Stack abgelegt.
Das hört sich vllt. etwas kompliziert und unverständlich sein. Deswegen möchte ich mal einfach ausdrücken was aus all dem folgt:

RUTIS-Strings und Delphi-Strings sind nun vollständig zuweisungskompatibel, was vorher nicht der Fall war!

Der Download der aktuellsten Version befindet sich nun nicht mehr im ersten Post, sondern nur noch ausschließlich auf der RUTIS Projektseite.

MFG
Björn Zeutzheim
  Mit Zitat antworten Zitat
Benutzerbild von olee
olee

 
Turbo Delphi für Win32
 
#54
  Alt 8. Feb 2010, 19:00
So ich habe nochmal kräftig an RUTIS geschafft und auch mal die Bedienung des Editors usw. verbessert.

Der Editor kann nun, wenn er gestartet wird, automatisch die Dateiverknüpfungen für die Scriptdateien einrichten (.rutis; .rucs)
so das man über das Kontextmenü auf einer *.rutis-Datei diese in eine Exe oder eine .rucs-Datei umwandeln kann.

Des Weiteren war ich etwas kreativ und habe mal ein paar kleine Dateisymbole entworfen, die zusammen mit den Dateiverknüpfungen
für .rucs und .rutis Dateien eingerichtet werden.


Programmtechnisch gibt es ein paar besondere Neuerungen:

Man kann nun in RUTIS Scripten Klassenstrukturen definieren, die mit denen aus Delphi kompatibel sind.

Bsp.:

Hauptprogramm:
Delphi-Quellcode:
type
  TTestclass = class (TMeinVorfahr)
    int : Integer;
    Str : String;
  end;
Außerdem stellt das Hauptprogramm noch eine RUTIS-Externe-Funktion zur Verfügung ("GetTestclass"), die einen Pointer auf eine erstellte
Instanz von TTestclass zurückgibt.

RUTIS Script:
Delphi-Quellcode:
program TEST_Ext_Classes;

interface

type
  TTestclass = external class
    int : Integer;
    Str : String;
  end;

var
  Testclass : TTestclass;

implementation

begin
  Testclass := GetTestclass;
  write Testclass.Int;
  write Testclass.Str;
  write Testclass.Classname;
  write Testclass.Instancesize;
  write Testclass.Parent.Classname;
end;
Ausgabe:
Delphi-Quellcode:
<Wert von Int>
<Wert von Str>
TTestclass
12
TMeinVorfahr
Ich werde, wenn die Zeit geommen ist und ich auch die Lust dazu habe , daran weiterarbeiten und versuchen das ganze Richtung OOP zu entwickeln.

Diese NEUE VERSION ist wie immer auf der Projektseite zu finden.
Björn Zeutzheim
  Mit Zitat antworten Zitat
Benutzerbild von olee
olee

 
Turbo Delphi für Win32
 
#55
  Alt 10. Feb 2010, 22:36
Habe ein UPDATE zu RUTIS hochgeladen.

Es gibt nun eine Installation für RUTIS, die unter anderem die Dateiverknüpfungen für *.rutis Dateien erstellt usw.

Könntet ihr das mal testen, ob das alles funktioniert?

Ich würde mich über ein kleines bisschen Feedback sehr freuen.

Die NEUE VERSION ist wie immer auf der Projektseite zu finden.

PS: Die Downloads der beiden Archive sind kurzzeitig nich verfügbar, da ich die noch hochladen muss.
EDIT: Source ist wieder verfügbar!

MFG
Björn Zeutzheim
  Mit Zitat antworten Zitat
Namenloser

 
FreePascal / Lazarus
 
#56
  Alt 10. Feb 2010, 23:06
Hi,

ich habe zwar derzeit keine Verwendung für eine Scripting-Engine, habe mir dein Projekt allerdings dennoch mal kurz angesehen (hatte ich zwar schonmal, aber das ist schon ein Weilchen her). Da ich nur mal ein paar von den beigelegten Scripten schnell getestet habe, kann ich auch nicht viel Feedback geben. Aber ein paar Fragen hätte ich trotzdem.

Ich weiß nicht, ob du meinen Brainfuck-Thread mitbekommen hast, jedenfalls habe ich mich ja gerade etwas (mit Betonung auf *etwas*) mit JIT-Kompilierung befasst. Natürlich ist Brainfuck bei weitem nicht so komplex wie deine Scriptsprache, aber dennoch würde mich interessieren, ob du über eine solche Zwischenkompilierung schon mal nachgedacht hast oder vielleicht bereits einsetzt. Soweit ich es in Erinnerung habe, kompilierst du den Source-Code ja schon in eine Intermediate-Language, die du dann in einem Interpreter ausführst. Je nach dem, wie diese IL aufgebaut ist, könnte ein Compiler für diese IL ja mit durchaus vertretbarem Aufwand umsetzbar sein.

Das bringt mich zum nächsten Punkt, und zwar: Wie/womit hast du deinen Parser/Lexer erstellt bzw. aufgebaut? Hast du dazu einen fertigen Generator verwendet, oder vielleicht eigene Tools dafür entwickelt oder gar alles per Hand gecodet?

Schade, dass deine Script-Engine nicht Open Source ist. Hätte gerne mal ein bisschen im Source Code gestöbert

PS: Übrigens fände ich es super, wenn du alternativ zum Installer eine ZIP/7Z/Rar-Version anbieten würdest, da Setups garantiert nicht nur bei mir die Hemmschwelle, das Programm zu testen, erhöhen.
  Mit Zitat antworten Zitat
Benutzerbild von olee
olee

 
Turbo Delphi für Win32
 
#57
  Alt 10. Feb 2010, 23:21
Juhu ich darf wieder fragen beantworten

Also... (*tief-luft-hol*)

1)
Die Engine enthält einen KOMPLETT selbst geschriebenen Compiler. Ich habe mal was von solchen generatoren gehört,
aber da schön die Finger von gelassen (ich trau den dingern nicht so recht )

2)
Der Compiler erstellt einen Bytecode, der anschließend
von der internen VM ausgeführt werden kann.
Dieser bytecode lässt sich auch abspeichern (*.rucs Rutis-Compiled-Script Datei) und auch in den Executables die man mit RUTIS erstellen kann wird nie die Source, sndern nur der kompilierte Bytecode gespeichert (da bekommt keiner mehr die Source raus )

3)
MEIN PROJEKT IST OPEN-SOURCE!!!!!!
Les mal in welcher Forenkategorie wir uns befinden / den ersten Post / den letzten Post (unter "PS"). (Ich nehms dir nicht übel)
Die Source war nur vorübergehend nicht verfügbar, weil ich die neue noch nicht hochgeladen HATTE.

Jetzt ist sie wieder verfügbar, ebenso wie RUTIS als zip-Archiv

MFG
Björn Zeutzheim
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber

 
Delphi XE Professional
 
#58
  Alt 10. Feb 2010, 23:33
Hi!

Bitte ergänze in deinem ersten Beitrag noch einen Direktlink inkl. Größenangabe, wie es die "Richtlinien" für diese Kategorie vorsehen.

Danke!


Grüße, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von olee
olee

 
Turbo Delphi für Win32
 
#59
  Alt 10. Feb 2010, 23:42
Oh sorry...

Kannte zwar die Regel mit Größenangabe des Downloads, aber das mit "Direktlink" hab ich übersehen.

Ich habe die 3 Direktlinks ergänzt, kann aber nicht immer garantieren, dass die klappen.
Denn jedes mal wenn ich eine neue Version hochlade, ändern sich die Links, weshalb ich die dann immer ändern muss (was ich mal vergessen könnte).

MFG
Björn Zeutzheim
  Mit Zitat antworten Zitat
Namenloser

 
FreePascal / Lazarus
 
#60
  Alt 11. Feb 2010, 15:45
Zitat von olee:
MEIN PROJEKT IST OPEN-SOURCE!!!!!!
Les mal in welcher Forenkategorie wir uns befinden / den ersten Post / den letzten Post (unter "PS"). (Ich nehms dir nicht übel)
Ah, sorry. Ich bin über die Portalseite hier hergekommen und habe deshalb nicht auf die Sparte geachtet. Und weil ich auf Anhieb keinen Downloadlink für den Source Code gefunden hatte, ging ich davon aus, dass keiner verfügbar wäre.

Werd morgenheute vielleicht mal reinschauen, Danke.

[add]
Das sollte eig gestern Abend abgeschickt werden...
[/add]
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 11   « Erste     456 78     Letzte »    


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 10:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz