Der Einfachheit halber stellen Sie sich dieses Szenario vor, wir haben einen 2-Bit-Computer, der ein Paar 2-Bit-Register namens r1 und r2 hat und nur mit unmittelbarer Adressierung funktioniert.Wie interpretiert ein Interpreter den Code?
Sagen wir die Bitfolge bedeutet hinzufügen zu unserer CPU. Auch bedeutet Verschieben von Daten zu r1 und bedeutet, Daten auf r2 verschieben.
So gibt es eine Assemblersprache für diesen Computer und ein Assembler, wo ein Codebeispiel
mov r1,1
mov r2,2
add r1,r2
einfach wie
geschrieben werden würde, wenn ich diesen Code zu Muttersprache zusammenstellen und die Datei wird wie etwas sein:0101 1010 0001
die 12 Bits oben ist der native Code für:
Put decimal 1 to R1, Put decimal 2 to R2, Add the data and store in R1.
So funktioniert ein kompilierter Code im Prinzip, oder?
Sagen wir, jemand implementiert eine JVM für diese Architektur. In Java werde ich Code schreiben wie:
int x = 1 + 2;
Wie genau wird JVM diesen Code interpretieren? Ich meine, irgendwann muss das gleiche Bitmuster an die CPU weitergegeben werden, oder? Alle CPUs haben eine Anzahl von Anweisungen, die sie verstehen und ausführen können, und sie sind schließlich nur ein paar Bits. Sagen wir die kompilierten Java-Byte-Code etwa wie folgt aussieht:
1111 1100 1001
oder was auch immer .. Bedeutet es, dass die Interpretation dieses Codes 0101 1010 0001 ändert sich bei der Ausführung? Wenn dies der Fall ist, ist es bereits im systemeigenen Code, also warum wird gesagt, dass JIT nur nach einer Anzahl von Malen einsetzt? Wenn es nicht genau in 0101 1010 0001 konvertiert wird, was macht es dann? Wie macht es die CPU den Zusatz zu tun?
Vielleicht gibt es einige Fehler in meinen Annahmen.
Ich weiß Interpretieren ist langsam, kompilierter Code ist schneller, aber nicht portabel, und eine virtuelle Maschine "interpretiert" einen Code, aber wie? Ich bin auf der Suche nach "wie genau/technisch interpretiert wird". Alle Zeiger (wie Bücher oder Webseiten) sind willkommen, anstatt Antworten.
Ist Ihre Prämie eine bestehende Antwort zu belohnen? Wenn nicht welche zusätzlichen Informationen erwarten Sie? – assylias