Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Klatsch und Tratsch (https://www.delphipraxis.net/34-klatsch-und-tratsch/)
-   -   Eigener Compiler mit Delphi - Tutorial? (https://www.delphipraxis.net/162119-eigener-compiler-mit-delphi-tutorial.html)

marcoX 7. Aug 2011 16:34

Eigener Compiler mit Delphi - Tutorial?
 
Weil gerade Sommerloch ist und weil mich die Frage doch irgendwo am Rande interessiert.

Man kann ja auch mit Delphi einen eigenen Compiler schreiben. InnoSetup beweist das ja recht eindrucksvoll, die erzeugten Setup-Dateien sind soweit ich weiß selbstständig compilierte Programme.

Da sich hier ja einige die Mühe gemacht haben (und scheinbar auch die Zeit hatten) ein mehrere hundert Seiten umfassendes NonVLC Tutorial zu verfassen - wie wärs denn mal mit so etwas? ;)

cookie22 7. Aug 2011 16:58

AW: Eigener Compiler mit Delphi - Tutorial?
 
Innosetups sind nichts anderes als komprimierte Dateien und ein Exe-Stub, so änlich wie selbstenpackende Zip Dateien nur etwas aufwendiger.

Uwe Raabe 7. Aug 2011 17:00

AW: Eigener Compiler mit Delphi - Tutorial?
 
Und was da höchstens "compiliert" wird ist eigentlich RemObjects PascalScript

marcoX 7. Aug 2011 17:04

AW: Eigener Compiler mit Delphi - Tutorial?
 
Verstehe. Ich dachte, die hätten etwas weiter ausgeholt. Aber Gut, für den Zweck reicht das ja auch.

jaenicke 7. Aug 2011 17:19

AW: Eigener Compiler mit Delphi - Tutorial?
 
Compilerbau ist ein mehrsemestriges Thema an der Uni im Informatikstudium. Sowohl die Quelltextanalyse als auch die Codeerzeugung sind äußerst komplexe Themen. Und für letzteres benötigt man auch sehr gute Assemblerkenntnisse. Daher ist das mit einem Tutorial nicht getan.

Ein kleiner Interpreter oder ein Quelltextparser oder so ist erst einmal gar nicht so schwer, wenn man schon gut programmieren kann. Das war für mich auch keinerlei Problem.
Probleme habe ich dann an der Stelle bekommen, an der Fehlertoleranz ins Spiel kommt. Denn der Parser sollte nicht beim ersten Fehler abbrechen, sondern so weit wie möglich weitermachen und weitere Fehler finden. Außerdem sollte er dem Benutzer möglichst gute Hinweise geben was an der Stelle gemeint gewesen sein könnte oder was fehlt usw.

Du findest hier z.B. einen recht einfach zu verstehenden Parser für Delphi:
http://code.google.com/p/castaliadelphiparser/

Phoenix 7. Aug 2011 17:45

AW: Eigener Compiler mit Delphi - Tutorial?
 
Wie schon gesagt: Möglich ist das. Der Aufwand ist nur entsprechend derbe. Was ein guter Einstieg wäre, wäre z.B. das schon erwähnte PascalScript zu nehmen (bzw. dessen Parser) und hinten asm zu generieren. Sozusagen ein PascalScript zu native-Compiler. Damit ersparst Du Dir zumindest einen ordentlichen Teil der Arbeit und kannst schauen, ob das wirklich was für Dich ist.

Wenn Dich das Thema interessiert ist vielleicht das sogenannte "Drachenbuch" (Eigentlicher Titel: Compilerbau in zwei Teilen) was für Dich.

Florian Hämmerle 7. Aug 2011 18:23

AW: Eigener Compiler mit Delphi - Tutorial?
 
Wenn du keine .exe erstellen willst, kannst du dir auch beispielsweise ScriptEngine II von littleDave (schau mal bei den Projekten) anschauen. Er kompiliert Object Pascal (seinen Dialekt davon) in Bytecode, den seine Runtime dann ausführen kann. Die Scriptengine hat echt was drauf^^

Ansonsten: Drachenbuch dürfte dir das eine oder andere Jahr zu Denken und Ausprobieren geben :)

Viele Grüße,
Florian

marcoX 7. Aug 2011 18:36

AW: Eigener Compiler mit Delphi - Tutorial?
 
Zitat:

Zitat von Florian Hämmerle (Beitrag 1115537)
Ansonsten: Drachenbuch dürfte dir das eine oder andere Jahr zu Denken und Ausprobieren geben :)

Viele Grüße,
Florian

So etwas interessantes hätte ich mir fürs Informatik-Studium gewünscht, anstatt des Nonsens, der da so getrieben wird!

patti 7. Aug 2011 18:47

AW: Eigener Compiler mit Delphi - Tutorial?
 
Vielleicht ist auch das hier was für den Einstieg:
Let's Build a Compiler, by Jack Crenshaw
Ist zwar schon etwas "in die Jahre gekommen" (geschrieben von 1988 bis 1995), aber "kostenlos" und für den Einstieg in das Thema vielleicht trotzdem zu gebrauchen ;)

Grüße,
Patrick


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:10 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