Simpler Compiler
Übersicht

Garfield12Betreff: Simpler Compiler |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo Zusammen,
ich hab da mal ne Frage: Was muss ich können, um einen Compiler zu programmieren, welcher einen simplen Code Bsp: print "hello" in eine exe verwandeln kann? Es ist nur eine Frage soll jetzt niht die neue Programmiersprache 78.9 werden. Hab halt nur interesse, weil das so ziemlich das schwerste Thema der Inforatik ist. Ich wäre froh wenn ihr mir antworten würdet. Garfield.next-gen programming language ![]() |
||
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das kommt drauf an. Wenn du als Basis für denn Maschinencode FASM nimmst reicht es wenn du einen Code in ASM umwandeln kannst um Ihn an FASM weiterzugeben.
Wenn du ohne ASM compiler auskommen willst musst du Knietief in die Scheiße rein, das beinhaltet auch Prozessor Architektur und Speicherlogic. ^^ |
||
Garfield12 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nee mit ASM würd fürn Anfang schon reichen, wenn man das Ausbauen will, kann man das ja noch vertiefen.
Also gibst da tuts oder so? Garfield |
||
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das Buch hier ist ganz gut:
Grundlagen und Techniken des Compilerbaus Oder diese englische Einführung in den Compilerbau: http://compilers.iecc.com/crenshaw/ Hier im Forum gab es auch mal ein interessantes Projekt: https://www.blitzforum.de/foru...hp?t=25797 |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
Nexhmije |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kennst du dich mit dem binären Zahlensystem aus? Wenn nicht, fang erst damit an. Dann solltest du dich allgemein mit Prozessoren auseinandersetzen; du musst verstehen wie ein Prozessor einen Befehl ausführt. Dann musst du dir überlegen, wie deine abstrakte Programmiersprache auf diese Prozessor-Befehle "zerteilt" werden können.
Desweiteren musst du dann Speicheraddressierung beherrschen und wissen wie dein Programm nachher mit dem Betriebssystem kommuniziert (zur Ein- und Ausgabe von Daten). Nachtrag: Wenn du richtig in die Materie einsteigen willst, dann fang mal an zu versuchen die ersten paar Seiten von Donald Knuths Büchern zu verstehen ![]() |
||
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nexhmije hat Folgendes geschrieben: Dann solltest du dich allgemein mit Prozessoren auseinandersetzen; du musst verstehen wie ein Prozessor einen Befehl ausführt. Dann musst du dir überlegen, wie deine abstrakte Programmiersprache auf diese Prozessor-Befehle "zerteilt" werden können.
Die Funktionsweise von Prozessoren zu kennen ist natürlich sinnvoll und bei der Codgenerierung auch notwendig, aber bei einem Compiler erstmal völlig uninteressant. Die Entwicklung einer Programmiersprache funktioniert nämlich genau anders herum. |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
peacemaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Einen Kompiler zu schreiben ist verdammt viel Arbeit, das kann ich dir sagen.
Vor allem wenn er so Spässe wie print (1*funktion()/2+15*(15/3)) oder so können sollte. Am besten macht man sowas mit der Rekursives Topdown-Methode. Google mal, ist nicht mal so kompliziert. |
||
~Tehadon~
www.tehadon.de http://www.blitzforum.de/worklogs/14/ |
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
naja, du redest gerade vom parser, peacemaker, hmm? den kannste in nen paar hundert zeilen schreiben. überhaupt braucht ein compiler nur wenige tausend, würde ich sagen. (man kann danach noch optimieren, bis man doof wird ^^) es bietet sich übrigens an, die erste version deines compilers in einer anderen sprache zu schreiben, bis du irgendwann immer die nächste version in der sprache selbst schreiben kannst, für die du den compiler baust.
@garfield: der witz is: wenn du das nötige kannst, um einen compiler zu bauen, dann weißt du die antwort auf deine frage bzw weißt, wo du sie finden kannst. wenn du es nicht kannst, dann hilft dir auch die antwort nicht. |
||
MrKeks.net |
![]() |
ThunderBetreff: Re: Simpler Compiler |
![]() Antworten mit Zitat ![]() |
---|---|---|
@EXE Convertieren
Garfield12 hat Folgendes geschrieben: print "hello" in eine exe verwandeln kann? Ich glaube, wenn es wirklich nur simpel sein soll, dass das in EXE convertieren leichter sein sollte als der Compiler selbst. Ich hab mir überlegt: Code: [AUSKLAPPEN] 1. Compiler Funktion in die Compiler.bb schreiben
2. Lese-Funktion in die Compiler.bb schreiben(dazu später mehr) 3. Compiler.bb in EXE convertieren (so jetzt die lesefunktion) 4. Die Compiler.exe ließt sich selbst Zeile für Zeile aus bis sie zu einer Zeile kommt in der zB. "<Hier beginnt der Code>" steht. Dann ließt sie den Rest aus und übergibt den Rest an die Compiler-Funktion die das dann compiliert 5. Nur noch ein Programm was die Compiler.exe irgendwo hin kopiert und dann Quelltext hineinschreibt schreiben dürfte so funktionieren (wie gesagt, wenn es simpel sein soll). |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
tedy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist dann aber kein Compiler...
IMgrunde genommen ist es eine Scriptsprache die einfach asugeführt wird |
||
![]() |
ThunderBetreff: Re: Simpler Compiler |
![]() Antworten mit Zitat ![]() |
---|---|---|
Garfield12 hat Folgendes geschrieben: in eine exe verwandeln kann? eh nicht. Ich hab mich jetzt nur auf das simple EXE-verwandeln bezogen. mfg |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group