Ich habe untersucht, wie Programmiersprachen arbeiten, und einige von ihnen haben eine so genannte virtuelle Maschinen. Ich verstehe, dass dies eine Form der Emulation der Programmiersprache in einer anderen Programmiersprache ist, und dass es so funktioniert, wie eine kompilierte Sprache mit einem Stapel ausgeführt würde. Habe ich das richtig verstanden?Wie funktioniert eine virtuelle Maschine?
Mit dem Vorbehalt, dass ich tat, was mich verwirrt ist, dass viele nicht-kompilierte Sprachen Variablen mit "liberalen" Systemen erlauben. In Python zum Beispiel kann ich schreiben:
x = "Hello world!"
x = 2**1000
Strings und große ganze Zahlen völlig unabhängig sind und unterschiedliche Mengen an Speicherplatz im Speicher belegen, so wie kann dieser Code auch in einer Stack-basierten Umgebung dargestellt werden? Was genau passiert hier? Ist x auf einen neuen Platz auf dem Stack und die alten String-Daten nicht referenziert? Verwenden diese Sprachen keinen Stapel? Wenn nicht, wie repräsentieren sie intern Variablen?
Große erste Frage! – samoz
In Verbindung stehende Frage: http://stackoverflow.com/questions/688803/how-does-aregister-based-virtual-machine-work – lothar