Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Compiler? (https://www.delphipraxis.net/38206-compiler.html)

glkgereon 16. Jan 2005 10:10


Compiler?
 
hi

ich hab mir mal überlegt, ich will versuchen selbst nen compiler zu schreiben...

ich denke das parsen ist erstmal kein problem (bei nem kleinen sprachumfang *ggg*)

aber wie kann ich ne exe erstellen?

gibt es bestimmte binäre befehle?
oder wie muss man das machen?

MasterC 16. Jan 2005 10:13

Re: Compiler?
 
Du musst Assembler Code erzeugen und ihn mit einem Linker (z.b. NASM) linken.

glkgereon 16. Jan 2005 10:18

Re: Compiler?
 
hmm...wie arbeitet denn NASM?
was macht das?

jbg 16. Jan 2005 10:25

Re: Compiler?
 
Zitat:

Zitat von glkgereon
ich denke das parsen ist erstmal kein problem (bei nem kleinen sprachumfang *ggg*)

Dann warte mal bis du zur IF-Anweisung kommst. :wink:


Zitat:

mit einem Linker (z.b. NASM) linken.
NASM = Linker :?:
NASM ist ein Assembler und kein Linker. Einen Linker braucht man, wenn man mehrere .obj oder .lib (+importlibs) zu einer binären Datei zusammenbinden (=linken) will.

jbg 16. Jan 2005 10:26

Re: Compiler?
 
Zitat:

Zitat von glkgereon
hmm...wie arbeitet denn NASM?
was macht das?

Du willst einen Compiler schreiben und weißt nicht, was ein Assembler macht? Dann sehe ich aber schwarz für dein Projekt.

glkgereon 16. Jan 2005 10:28

Re: Compiler?
 
das genau is mein prob ;)

bis dahin, das ich weiss welche befehle wann kommen schaff ich, aber sobald ich das "wissen" dann umwandeln will, hab ich ein prob...

Sebastian Nintemann 16. Jan 2005 10:33

Re: Compiler?
 
Dann bau dir lieber eine eigene Scriptsprache die du interpretierst. Da hast du mehr von (sprich das Projekt wird nicht nach einer Woche vergeblicher Arbeit in die Ecke geschmissen).
Das ist schonmal Arbeit genug. Und wenn du eine wirklich gute Scriptsprache erfunden und umgesetzt hast kannst du ja immernoch einen Compiler dafür schreiben.
Ich halte es für unrealistisch sich selbst einen Compiler zu schreiben wenn man nicht gerade der ASM Freak ist ;)

Viele Grüße,
Sebastian

Dust Signs 16. Jan 2005 10:41

Re: Compiler?
 
Ich hab mal eine Skriptsprache geschrieben, die Variablen, ifs und so Zeugs konnte. Wenn du willst kann ichs OpenSource machen und hier online stellen.

Dust Signs

Die Muhkuh 16. Jan 2005 10:57

Re: Compiler?
 
Zitat:

Zitat von Dust Signs
Ich hab mal eine Skriptsprache geschrieben, die Variablen, ifs und so Zeugs konnte. Wenn du willst kann ichs OpenSource machen und hier online stellen.

Dust Signs

Ohja, wäre nett. Würde mich auch mal intressieren.

Luckie 16. Jan 2005 11:09

Re: Compiler?
 
Guck dich erstmal bei Amazon nach einen Buch über Compilerbau und les es durch, damit du überhaupt erstmal weißt um was es eigentlich geht.

glkgereon 16. Jan 2005 11:14

Re: Compiler?
 
ich hab ein buch übern compilerbau...

*such*
*such*
*such*

Compilerbau
Eine Praxisorientierte Einführung
Peter Baeumle und Heinz Alenfelder

Dust Signs 16. Jan 2005 11:20

Re: Compiler?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Im Anhang die Files. Wichtiger Hinweis: das Projekt ist eher alt und daher hab ichs auch aufgegeben. Sprich: wenig Kommentare, wenig Erläuterungen. "Beispielprog." liegt bei. Code muss wahrscheinlich etwas angepasst werden (sind noch ein paar alte Verweise drin).

Dust Signs

Daniel 16. Jan 2005 11:20

Re: Compiler?
 
Wir haben letztes Semester für die Uni einen minimalen Interpreter in Java geschrieben. Das Ding war nicht schnell, diente jedoch recht gut dazu, die grundlegenden Prinzipien zu begreifen.

Elemente wie Grammatiken, Scanner und Parser sollten Dir vertraut sein, damit Du überhaupt mal das Quellprogramm verarbeiten und dessen Bestandteile in eine für den Rechner verständliche Form bringen kannst. Danach musst Du Dir überlegen, wie es weitergehen soll. Wir haben es damals über die UPN gemacht und hätten aus dieser dann Assember-Code erzeugt, wäre die Zeit nicht zu knapp gewesen. So haben wir die UPN lediglich interpretiert und hatten einen kleinen Interpreter.

Der Umfang der Sprache war eigentlich schon recht nett (im Rahmen dessen, was man innerhalb eines Semerst für eines von mehreren Fächern realisieren kann): Variablendeklaration, verschiedene grundlegende Datentypen (Int, Float, Bool und String), Typenprüfung, IF-THEN, IF-THEN-ELSE, WHILE, die Grundrechenarten, Vergleiche sowie eine Print-Anweisung für Konsolen-Ausgabe.

War eine spannende Angelegenheit, jedoch ohne Vorwissen praktisch nicht zu realiseren.

glkgereon 16. Jan 2005 11:22

Re: Compiler?
 
ich seh schon, ich werd mich wohl erstmal / nochmal in das buch reinknien (müssen)...

Luckie 16. Jan 2005 11:25

Re: Compiler?
 
Klingt vernünftig. :thumb:

Ultimator 16. Jan 2005 11:59

Re: Compiler?
 
Auf robsite.de gibts n gutes, 16-teiliges Tutorial über den Compilerbau.

Am Ende des Tuts hat man dann (nach Angaben des Autors) einen eigenen Compiler geschrieben, bin aber erst bei Teil 3 (ellenlang, die einzelnen Kapitel *g*)
Zu allem Überfluss wird er auch noch in TP geschrieben :-D

Zwar isses in Englisch, aber trotzdem gut lesbar ^^

Nils_13 2. Apr 2005 15:48

Re: Compiler?
 
Hi,

Ist eine Progrmmiersprache, es steht in kurzen Worten alles da was du wissen musst [les dir den ersten Beitrag durch und du weißt allgemein ein bisschen drüber bescheid]

Zitat:

Im Prinzip besteht der Compiler aus drei Elementen, wobei nur eines dieser Elemente von mir geschrieben wird: Einer Art Converter, einem Assembler (NASM) und einem Linker (ALINK). Wenn man nun einen VOpal Code compilieren will wird dieser von meinem "Compiler" in Assembler Code umgewandelt und dann von den anderen Programmen in das gewünschte Format (EXE, COM, DLL, ...) umgewandelt. Ich könnte natürlich zumindest den Assembler in meinen Compiler integrieren, jedoch will ich später einmal einen Converter haben, der auch noch andere Plattformen ansprechen kann. So wäre es dann möglich mit einem VOpal Code nicht nur Win oder Linx anzusprechen, sondern auch exotische CPUs oder Microcontroller.
Ich hoffe ich konnte im allgemeinen ein bisschen helfen.

[edit=Christian Seehase]Doppelpost gelöscht. Mfg, Christian Seehase[/edit]

malo 2. Apr 2005 18:43

Re: Compiler?
 
Achja, wahlweise kannst du dir ja mal die Sourcen vom FreePascal-Compiler oder vom #dev ansehen, wie da die exen erstellt werden :zwinker:

nailor 2. Apr 2005 18:55

Re: Compiler?
 
wenn du mit #dev SharpDevelop meinst, so muss ich sagen, dass sie meiner Meinung nach den Microsoft C# Compiler (csc.exe) nutzen. Allerdings sollte der Code zum Mono-C#-Kompiler offenliegen.


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