AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Library: Object-Pascal / Delphi-Language Delphi Alternative zu Skriptsprachen: Delphi selbst!
Thema durchsuchen
Ansicht
Themen-Optionen

Alternative zu Skriptsprachen: Delphi selbst!

Ein Thema von alzaimar · begonnen am 14. Jan 2006
Antwort Antwort
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#1

Alternative zu Skriptsprachen: Delphi selbst!

  Alt 14. Jan 2006, 10:21
Wegen einer Wette ('Wer schreibt den schnellsten Formelparser') dachte ich mir:"Ich mach mir das Leben leicht" und schrieb also ein kleines Tool, das beliebige Funktionen ausführt. Das ist ja an sich nicht Tolles, da es hier sehr viele und auch gute Ansätze für Skriptinterpreter gibt. Meine Lösung hat den Vorteil, das es sich 100% an die Delphi-Syntax hält, garantiert alle Sprachkonstrukte unterstüzt und auch 100%ig genauso schnell wie Delphi ist. Die Lösung ist vollkommen unabhängig von der verwendeten Delphi-Version.

Super, oder? Wie ich das mache? Popeleinfach: Ich erzeuge aus dem Usercode einen DLL-Sourcecode, jage den durch den Delphi-Compiler, linke die fertige DLL zur Laufzeit ein und rufe die Funktion dann auf. Alles aus dem laufenden Delphi-Tool heraus.

Diese Lösung (na ja, die Machbarkeitsdemo) hat aber einige Nachteile, die man jedoch leicht umgehen kann:
1. Den DBCC kann man nicht weitergeben. Abhilfe: Den FreePascal-Compiler verwenden (wenn der DLLs erzeugen kann)
2. Die Demo kann nur eine Funktion F(X) erzeugen. Das kann man aber leicht erweitern, indem man den Funktionskopf mit angeben muss.
3. Die Demo unterstüzt keine Schnittstellen zu Variablen. Das ließe sich aber auch noch implementieren.
4. Die Anzeige von Syntaxfehlern ist nicht implementiert. Könnte man aber durch Analyse des DBCC-Outputs realisieren.

Im Sourcecode muss noch der Pfad zum Delphi-Kommandozeilenkompiler hinterlegt werden (i.a. im Bin-Verzeichnis, jedenfalls bei D6)

Ich poste das eigentlich nur, weil mein Wettgegner Bauklötze gestaunt hat . Er hat nämlich wirklich wochenlang an einem Parser gebastelt. Ich meine, als Denkanstoss für eigene Lösungen sollte das hier reichen. Leider hab ich keine Zeit mehr, diese Lösung (mit einem freien Compuler) in mein DB-Tool einzubauen (das mit DWS arbeitet).

[edit] LMDMüll rausgeschmissen, war überflüssig [/edit]
Angehängte Dateien
Dateityp: zip dllmaker_160.zip (2,5 KB, 177x aufgerufen)
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  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 09:02 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