Compiler-Fehler Ich kann meinen Kompilierer nicht starten.

Ich lerne gerade programmieren und eines meiner ersten richtigen Programme ist ein Kompilierer.
Ich bin beim Lernen immer wieder auf den Begriff gestoßen. Nachdem ich mich genauer informiert habe, habe ich herausgefunden, dass ein Kompilierer Code aus Programmiersprachen in Computersprache (Binärcode) umwandelt.

Meiner Funktioniert also so:
Ich habe eine Tabelle, in der ich die Zuordnung von Java-Code zu Binärcode gespeichert habe.
Ich weiß nicht wie man Datein einliest, deshalb lasse ich den Programmierer seinen Code über
JOptionPane.showInputDialog eingeben. Nachdem er einen Befehl eingegeben hat, wird in der Tabelle der entsprechende Binärcode nachgeschaut und mit System.out.println ausgegeben. Den kann der Programmierer sich dann kopieren und ausführen.
Meine Tabelle ist noch nicht groß, bis jetzt kann man nur int Variablen mit dem Namen i von 0 bis 20 anlegen (int i = 12; zum Beispiel) und dann habe ich noch System.out.println("Test") mit dem entsprechenden Binärcode gespeichert.
Wenn ich dann aber die Nullen und einsen in eine Datei packe und versuche sie auszuführen, öffnet sich nur mein notepad, aber es wird nicht "Test" ausgegeben, wie man es eigentlich erwarten würde.

Woran könnte das liegen? Ist mein Binärcode vielleicht falsch?
Ich benutze diese Seite hier, um Text nach Binärcode umzuwandeln: http://www.unit-conversion.info/texttools/convert-text-to-binary/

Laut dieser Seite wird System.out.println("Test") übersetzt in 01010011 01111001 01110011 01110100 01100101 01101101 00101110 01101111 01110101 01110100 00101110 01110000 01110010 01101001 01101110 01110100 01101100 01101110 00101000 00100010 01010100 01100101 01110011 01110100 00100010 00101001

Andere Seiten zeigen den Gleichen Code an. Aber trotzdem passiert beim Ausführen nichts, außer dass Notepad mit den Einsen und Nullen drin geöffnet wird.
Hat jemand schon mal einen Kompilierer programmiert und kann mir Tipps geben, wie ich am Besten vorgehen soll?
 

InfectedBytes

Top Contributor
Das hat nichts und rein gar nichts mit ausführbaren Code zu tun. Das ist einfach nur der ASCII Code: https://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange

Außerdem kannst du nicht einfach eine Textdatei ausführen. Siehe ausführbare Datei: https://de.wikipedia.org/wiki/Ausführbare_Datei

Und Compiler funktionieren auch vollkommen anders als du glaubst: https://de.wikipedia.org/wiki/Compiler

Nicht böse gemeint, aber schau dir am besten noch einmal einfache Grundlagen Tutorials an, z.B. zu Java, Computern und Compiler an.

edit: Ich weiß, nur Links zu posten ist nicht ganz so toll, aber jedes einzelne der Thema ist nunmal einfach zu umfangreich um hier ordentlich behandelt zu werden.
 
Das hat nichts und rein gar nichts mit ausführbaren Code zu tun. Das ist einfach nur der ASCII Code: https://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange

Woher bekomme ich ausführbaren Binärcode? Gibts dazu auch Seiten, die das übersetzen?

Außerdem kannst du nicht einfach eine Textdatei ausführen. Siehe ausführbare Datei: https://de.wikipedia.org/wiki/Ausführbare_Datei

Kann ich dann den ausführbaren Code in eine ausführbare Datei machen und dann müsste es doch theoretisch funktionieren, oder?
 
X

Xyz1

Gast
Lol, hab ich doch schonmal hier geschrieben, Compilerbau kommt im vorletzten und letzten Semester im Studium dran. Bist du schon so-weit?
 
N

neoexpert

Gast
Du kannst den Binärcode auch selbst schreiben. Allerdings nicht in eine Textdatei, die Zeichen dort werden beim Speichern kodiert. Probiere es mit einem Hex-Editor. Damit kannst du beliebigen Binär-Code schreiben. Dann brauchst du auch kein Compiler. Compiler vereinfachen das Programmieren indem sie, den für Menschen lesbaren Code, in einen Machinencode (meist binär) übersetzen.
 
Du kannst den Binärcode auch selbst schreiben. Allerdings nicht in eine Textdatei, die Zeichen dort werden beim Speichern kodiert. Probiere es mit einem Hex-Editor. Damit kannst du beliebigen Binär-Code schreiben. Dann brauchst du auch kein Compiler. Compiler vereinfachen das Programmieren indem sie, den für Menschen lesbaren Code, in einen Machinencode (meist binär) übersetzen.
Genau, das habe ich gemeint. Ich möchte den Compiler nämlich selbst programmieren, deshalb suche ich nach einem Weg um Binärcode auszuführen. Kannst du einen guten Hex-Editor empfehlen?
 
N

neoexpert

Gast
Es hängt noch von der Platform ab auf der, der Code ausgeführt werden soll. Welche soll es sein? x86, ARM, Java VM?
 
N

neoexpert

Gast
Da wäre natürlich die Frage, wie du den Compiler selbst programmieren willst: Compiler ist auch ein Programm. Also kannst du so ein Compiler in einer Programmiersprache deiner Wahl programmieren oder wie in guten alten Zeiten: schreib den in Maschinencode. Dafür musst du die Ziel-Architektur studieren.
 
N

neoexpert

Gast
Wenn ich einen Compiler entwickeln würde würde ich zunächst eine Virtuelle Platform entwickeln die von der Ziel-Architektur simuliert wird. So wie bei Java. Java Programme laufen auf VM und diese VM läuft auf (fast) beliebiger Platform.
 
Da wäre natürlich die Frage, wie du den Compiler selbst programmieren willst: Compiler ist auch ein Programm. Also kannst du so ein Compiler in einer Programmiersprache deiner Wahl programmieren oder wie in guten alten Zeiten: schreib den in Maschinencode. Dafür musst du die Ziel-Architektur studieren.
Den Compiler selbst habe ich ja in Java geschrieben. Und der erzeugt jetzt im Moment noch falschen Binärcode. Jetzt sollen eingegebene Java Zeilen in Binärcode umgewandelt werden. Woher weiß ich jetzt in welchen Binärcode ich es genau übersetzen muss? Das Programm soll dann in der Java VM ausgeführt werden.
 

InfectedBytes

Top Contributor
Java Programme laufen auf VM und diese VM läuft auf (fast) beliebiger Platform.
Vorsicht bei der Formulierung. VMs laufen nicht auf jeder Platform, sondern für alle (gängigen) Platformen existiert eine VM, welche Java Bytecode ausführt. Und dieser Bytecode wird durch den Java Compiler erzeugt.

@DerSpezialist Dir scheint nicht klar zu sein was ausführbare Dateien sind und was Compiler machen. Ein Compiler übersetzt deine Eingabe nicht einfach eins zu eins in ASCII code. Stattdessen muss ein (Java) Compiler die Eingabe parsen (lexikalisch, syntaktisch, semantisch, etc.) und entsprechenden Bytecode erzeugen. Und diesen parsen ist eben um ein vielfaches komplexer als du zu glauben scheinst.

edit:
Hier gab es vor einiger Zeit mal einen ähnlichen Thread, lies dir den erstmal durch:
http://www.java-forum.org/thema/programmiersprache-entwickeln.174305/
 
N

neoexpert

Gast
JVM soll dabei so ähnlich wie ein Keller-Automat funktionieren. Da war so ein Mann mit einem schwierigem Schicksal namens Alan Turing. Er hatte die gesamte Theorie über Computer auf eine einfache so genannte Turing Maschine reduziert. Eine Turing Maschine kann im Prinzip beliebige von Menschen denkbare Probleme lösen (also Rechnen).
 
Zuletzt bearbeitet von einem Moderator:
N

neoexpert

Gast
Jetzt hat der Mann erstmal weitere 45 Jahre Infor(Mathe-)matik zu Studieren. Angefangen hat alles mit einfachem Compiler...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 IJVM, ich tue auf meinen Stack 100 und 120 rein, danach subtrahiere ich, macht die Maschine 100-120 oder 120-100? Allgemeine Java-Themen 8
Mozart53 JLabel nur meinen Text verschieben ohne Image Allgemeine Java-Themen 3
B Problem mit meinen Klassen Allgemeine Java-Themen 6
Thallius Wie verstecke ich meinen private Key am besten im Code? Allgemeine Java-Themen 10
M ireport (Jasper Report) geht nur auf meinen Rechner Allgemeine Java-Themen 3
Zrebna Wieso sollte man Null-Prüfungen nicht mit Optional-Objekten nutzen? Allgemeine Java-Themen 13
kodela Textfeld nicht rechteckig Allgemeine Java-Themen 10
G Doppelklick auf Javaprogramm klapt nicht Allgemeine Java-Themen 1
W Timer terminiert nicht Allgemeine Java-Themen 5
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
W Überflüssige Deklaration vermeiden...war da nicht mal was? Allgemeine Java-Themen 3
N lwjgl kann textureSampler nicht finden Allgemeine Java-Themen 4
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
T .Jar kann man nicht ausführen Allgemeine Java-Themen 18
P JDK nicht installiert in Net Object Fusion Allgemeine Java-Themen 7
D Image bewegt sich nicht nach Klicken auf Button Allgemeine Java-Themen 15
N Regex schlägt nicht an Allgemeine Java-Themen 10
Y Wieso krieg ich die Unit Tests nicht hin Allgemeine Java-Themen 55
D Erste Schritte Mp3 Datei kann nicht von der Festplatte geöffnet werden - mit ChatGPT erstellt Allgemeine Java-Themen 7
G Popup wird nicht sichtbar Allgemeine Java-Themen 9
8u3631984 Funktions Parameter mit Lombok "NonNull" annotieren wird in Jacococ Testcoverage nicht herausgefiltert Allgemeine Java-Themen 3
kodela String kann nicht zu Pfad konvertiert werden Allgemeine Java-Themen 16
M Apache Proxy Weiterleitung auf Tomcat funktioniert nicht wie gewünscht Allgemeine Java-Themen 1
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
OnDemand ApacheCommon FTP Client zuckt nicht Allgemeine Java-Themen 3
T JavaPoet - (noch) nicht existente Typen Allgemeine Java-Themen 2
E Es ist nicht möglich, eine Batch-Anweisung auszuführen. Allgemeine Java-Themen 9
C Was passt hier nicht bei der Calendar-Class Allgemeine Java-Themen 2
T Testing JUnit5: try ... catch arbeitet nicht sauber Allgemeine Java-Themen 6
W While Schleife funktioniert nicht ganz Allgemeine Java-Themen 4
OnDemand MemoryLeak nicht zu finden Allgemeine Java-Themen 26
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
H do-while Schleife funktioniert nicht wie ich es möchte Allgemeine Java-Themen 7
ERlK JDA Code funktioniert nicht? Allgemeine Java-Themen 4
OnDemand Ram Freigabe erfolgt nicht nach Prozessende Allgemeine Java-Themen 18
OnDemand XML desializing Attribute bringt nicht erwartetes Ergebnis Allgemeine Java-Themen 16
T ImageIcon wird nicht angezeigt Allgemeine Java-Themen 6
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
stormyark TikTakToe funktioniert nicht Allgemeine Java-Themen 10
N Warum wird die For Schleife nicht betreten Allgemeine Java-Themen 4
Tiago1234 Hauptklasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 38
T Remove bei ArrayList funktioniert nicht Allgemeine Java-Themen 2
M Map<String,String>funktioniert nicht richtig Allgemeine Java-Themen 4
I "Neues" Lizenzmodell Oracle - JRE nicht mehr zur Redistribution freigegeben? Allgemeine Java-Themen 16
J c Programm läuft nicht in compilierter Version des Java Projektes Allgemeine Java-Themen 7
A code wird nicht ausgeführt Allgemeine Java-Themen 3
Blender3D Alte Beiträge nicht mehr vorhanden Allgemeine Java-Themen 6
M Warum hat Java dieses und jenes nicht... Allgemeine Java-Themen 8
W Bilder werden in App mit Jar-Datei nicht angezeigt Allgemeine Java-Themen 15
Micha43 Applet *.jar läuft nicht auf dem Mac Allgemeine Java-Themen 8
M Warum bekommen ich den Result nicht ? Allgemeine Java-Themen 17
Kiki01 Häufigster Buchstabe lässt sich nicht ermitteln Allgemeine Java-Themen 30
OnDemand RegEx /compilebekomme nicht die erwarteten Werte Allgemeine Java-Themen 9
HerrBolte Seltsamer Fehler nur in der Windows- und nicht in der Java-Console O_O Allgemeine Java-Themen 16
P String.replace() funktioniert nicht? Allgemeine Java-Themen 3
N nicht einsehbarer Fehler im code, kann nicht mehr übersetzten Allgemeine Java-Themen 51
P Karate API Test läuft nicht durch . initializationError Allgemeine Java-Themen 21
N nicht static und auch nicht new Allgemeine Java-Themen 3
Z macOS java konnte nicht entfernt werden xpc verbindungsfehler Allgemeine Java-Themen 4
T Schaltfläche wird nicht gefunden Allgemeine Java-Themen 4
boschl2000 Springerproblem-Implementierung funktioniert nicht richtig Allgemeine Java-Themen 1
F Getter Methode aufrufen funktioniert nicht Allgemeine Java-Themen 1
N Gierigen Regex in nicht-gierigen umwandeln Allgemeine Java-Themen 4
N Regulärer Ausdruck funktioniert nicht Allgemeine Java-Themen 6
AleXusher Hauptklasse startlösung konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 1
G @PostConstruct Annotation nicht mehr gültig ? Allgemeine Java-Themen 7
L Objekte in Set nicht gefunden Allgemeine Java-Themen 13
T Projekt baut nicht mehr/lässt sich nicht mehr ausführen Allgemeine Java-Themen 6
izoards log4j2 will nicht.... Allgemeine Java-Themen 15
Tobero Meine Funktion für das beinhalten eines Punktes in einem Kreis funktioniert nicht Allgemeine Java-Themen 5
1Raini Java if-Abfrage funktioniert nicht! Allgemeine Java-Themen 3
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0
I serialVersionUID - explizit vergeben oder nicht? Allgemeine Java-Themen 6
MiMa Vorhandenes das nicht existiert?? Allgemeine Java-Themen 7
LimDul Hä? Lambda-Ausdruck geht, Methoden-Referenz nicht Allgemeine Java-Themen 8
O Jar lässt sich auf bestimmten Pc nicht starten Allgemeine Java-Themen 18
T Fremde Typen mockt man nicht? Allgemeine Java-Themen 3
Killunox MaxHeap Zuweisung unter Linux funktioniert nicht Allgemeine Java-Themen 1
LimDul Direktes return eines Array geht nicht Allgemeine Java-Themen 20
B neuroph hält beim XOR lernen nicht an Allgemeine Java-Themen 13
kodela JDialog zeigt Text nicht an Allgemeine Java-Themen 5
Dann07 Java-Programm findet DLLs nicht! Allgemeine Java-Themen 20
D Twitch API mit HttpURLConnection läuft nicht? Allgemeine Java-Themen 0
M Test geht auf Travis und mit Github Action schief aber nicht lokal Allgemeine Java-Themen 3
R Threads Clip loop loopt nicht Allgemeine Java-Themen 2
Dann07 MP3 Datei abspielen funktioniert nicht Allgemeine Java-Themen 6
W Server-Thread schreibt nicht alle Dateien Allgemeine Java-Themen 6
OnDemand JMS Messages nicht abgeholt Allgemeine Java-Themen 0
O Aus JAR-Datei erstellte EXE-Datei funktioniert nicht Allgemeine Java-Themen 10
A Mp3 Player funktioniert nicht Allgemeine Java-Themen 0
W String -> byte[] -> String - Sieht jemand was ich nicht sehe? Allgemeine Java-Themen 10
M Console geht nicht auf (Windows 10) Allgemeine Java-Themen 3
J Hilfe, Jar Datei kann nicht ausgeführt werden Allgemeine Java-Themen 2
W Enumeration ein Array/List als Eigenschaft mitgeben - warum geht das nicht? Allgemeine Java-Themen 0
W Javac nicht bei Installation installiert Allgemeine Java-Themen 9
S HTML den ich von einer URL hole nicht identisch mit dem HTML im Browser Allgemeine Java-Themen 1
S Java.exe exestiert, aber irgendwie auch nicht Allgemeine Java-Themen 11
D ArrayListe delete Methode klappt nicht Allgemeine Java-Themen 12
M Programm erkennt String aus .txt Datei nicht Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben