Hallo Besucher, der Thread wurde 10k mal aufgerufen und enthält 66 Antworten

letzter Beitrag von ZeroZero am

PRG aus Basic zum Schreiben öffnen

  • Das Problem dürfte eher deine zu verengte eigene Definition des Begriffs "Virtuelle Maschine" sein.
    Es handelt sich bei der von mir genannten Zugriffsmethode auf den Bildschirm mitnichten um einen "Umweg". Ohne die Nutzung von PEEK() ist genau dieser Weg kanonisch. Es gibt eine weit verbreitete Gruppe von Betriebssystemen, welche die Sichtweise "alles ist eine Datei" in der Fahne führen. :D

    Es gibt auch eine Menge Leute, die glauben, die Erde wäre eine Scheibe. Wie gesagt, ich werde Dir Deinen Weg zur Seligwerdung nicht absprechen, muss ihn aber nicht teilen, oder?

  • Würdest du auch so weit gehen und alle Interpreter als eine virtuelle Umgebung sehen?

    Ich brauche da nicht so weit zu gehen, ich bin da schon.


    Den notwendigen Abstraktionsgrad muß man dann schon mitbringen, klar. Aber um etwas nur dann als VM zu qualifizieren, wenn es den Bytecode eines Java-Programms ausführt oder den Maschinencode eines Intel-Prozessors als Hypervisor ausführt (und das scheint mir der Anspruch zu sein, den ZeroZero an eine VM stellt) ist mir eindeutig zu eng gefaßt.


    Zitat von ZeroZero

    Es gibt auch eine Menge Leute, die glauben, die Erde wäre eine Scheibe. Wie gesagt, ich werde Dir Deinen Weg zur Seligwerdung nicht absprechen, muss ihn aber nicht teilen, oder?

    Es gibt hier absolut keinen Grund, beleidigend zu werden. Schon die Formulierung "Schöner Aufsatz" in deinem vorigen Beitrag hätte ich problemlos als herablassend auffassen können. Das war's jetzt für dich.


    *PLONK*

  • Eine VM ist immer vollständig abgeschottet von der realen Maschine, die sie bereitstellt. Die Verwendung der realen Maschine geschieht ausschließlich über Schnittstellen, die in der VM definiert sind. Mag gut sein, dass das auch mal jemand anders definiert hat, das ist dann allerdings eine Minderheitsmeinung. Ohne diese vollständige Abschottung könnte man jeden beliebigen Interpreter (wie wäre es mit CMD.EXE zum Beispiel?) als VM bezeichnen, das ergibt keinerlei Sinn.


    Üblich ist außerdem, dass eine VM eine Maschine nach dem Vorbild realer Maschinen implementiert, also ein System mit Speicher für Zustand, und Instruktionen, um diesen zu ändern oder abhängig davon zu verzweigen. Das kann man allerdings ruhig etwas weiter fassen, wenn man mag. Zentrales Merkmal einer VM bleibt die Abschottung, damit die virtuelle Maschine "von innen" auch wirklich aussieht wie eine echte.


    Ist zum Beispiel bei CPUs, die intern Mikrocode benutzen, der nach außen sichtbare Befehlssatz auch sowas wie eine VM?

    Diese Betrachtung fände ich allerdings absolut zulässig :)