1.1k Aufrufe
Gefragt in Anwendungen(Java,C++...) von
Hallo Leute

Also die Motivation zu dieser Frage war eigentlich das Ziel, einen "Compiler" zu programmieren. Nein bitte lest weiter^^ Ich weiß, dass es ein ganzes Semester Informatikstudium ist, und ja ich wieß, es wird wahrscheinlich eine seeeeehr lange Zeit brauchen wird, falls es denn klappt, also möchte ich meine Fragen hier in eine etwas andere lenken:
-Ich suche Einführungen (Bücher, Tutorials im Netz, etc.) um mich überhaupt in die Materie einzuarbeiten. Also wie so ein Binärprogramm überhaupt in einem betriebssystem strukturiert ist, etc. Eine ausführliche Erklärung zum PE-Format z.B u.a.
-Dann natürlich dirket Sachen zum Compilerbau, aber nicht zurSprachanalyse (Flex/Bison) sondern eher zu dem Teil, wo tatsächlich übersetzt wird. Wie wird das mit dem Arbeitsspeicher geregelt? Was macht das Betriebsystem und was der Compiler? Wieso "zancken" die sich nicht um die Verwaltung des Speichers?
Mein primäres Ziel ist es erstmal ein Prgoramm zu schreiben, dass eine Binärdatei erzeugt, welche Hallo Welt ausgibt^^

Vielen Dank im Voraus

3 Antworten

0 Punkte
Beantwortet von simontheprogger Mitglied (719 Punkte)
Hallo Mr. Compiler,

Ich finde es toll, dass du dich so sehr für die Materie interessierst. Einen Compiler zu programmieren ist nicht gerade einfach, aber man kann viel bei dem Versuch viel lernen ;)
Leider hast du uns nicht verraten, welches Betriebssystem du verwendest, denn da gibt es schon die ersten Unterschiede; für den Aufbau eines Linux-ELF-Programms habe ich
dieses PDF gefunden, was dir eventuell helfen kann.

Wenn du mehr über den Aufbau und die Funktionsweise deines Rechners erfahren willst, würde ich dir empfehlen, dich in die Thematik der Assembler-Sprache einzulesen. Mit dieser Sprache schreibst du eigentlich fast Binärprogramme in einer lesbaren Sprache, die dann Schritt für Schritt mit dem Prozessor ausgeführt werden.

Das gute daran ist, dass es zu Assembler-Programmierung viele Tutorials gibt, z.B. hier.

Um einen echten Compiler zu bauen, müsstest du dich tief mit der Materie deines Prozessors beschäftigen und jeden OP-Code einzeln eintragen.

Ich hoffe, die Antwort hilft dir,

Gruß und schöne Ostern,
Simon
0 Punkte
Beantwortet von
Hallo
Erstmal vielen Dank für die schnelle Antwort und die Links!

Eigentlich hatte ich vor, unter Windows (Vista) zu arbeiten. Aber ich schätze Linux wäre dafür besser geeignet^^ Irgendwie lässt sich bestimmt meine alte Linuxpartition reanimieren, daran soll's nicht scheitern.

Also damit ich das richtig verstehe, die Aufgabe des Compilers ist es, aus der Programmiersprache Maschinenbefehler so anzuordnen, dass sie das tun, was der Programmier wollte, oder?

Grüße
0 Punkte
Beantwortet von
Hallo, lasse mal nach "compiler" suchen, du wirst finden schon wirklich gute Beschreibungen und oft gibt es Beispiele dabei.
Bei deiner Recherche wirst du weitere Begriffe wie "Übersetzer", wie auch "Compiler-Arten" antreffen.

Gruß
...