Frage

Was Anwendung von virtuellen Maschinen gibt es aus, die in höheren Programmiersprachen geschrieben? C / C ++ sieht aus wie die Sprachen der Wahl (aus offensichtlichen Gründen).

Was habe ich auf Google gefunden mindestens zwei in Java geschrieben (beide meta-circular): JikesRVM und Maxine.

Alles andere, dass Sie gefunden haben?

War es hilfreich?

Lösung

  • Viele Scheme-Implementierungen sind in Schema geschrieben und obwohl viele von denen, Compiler oder Interpreter sind, einige von denen sind VMs,
  • einige CommonLisp Implementierungen werden in CommonLisp geschrieben und obwohl viele von denen sind Compiler oder Interpreter, einige von denen sind VMs,
  • PyPy VM in RPython geschrieben ist, die eine Teilmenge von Python mit „Syntax und Semantik von Python ist, Geschwindigkeit von C, Einschränkungen von Java und Compiler-Fehlermeldungen als durchdringbare als MUMPS“,
  • Squeak Smalltalk VM in Slang (eine Untergruppe von Squeak Smalltalk) geschrieben und
  • Klein Metacircular VM vollständig in Eigen geschrieben wird.

Von diesen sind die interessantesten Klein und Maxine (deren Design auf Klein tatsächlich basiert). Metacircular Lisp und Scheme-Implementierungen in der Regel die Existenz von einigen grundlegenden primitiven spezielle Formen annehmen, die dann in Assembler, C oder eine begrenzte Teilmenge der Sprache in einem Low-Level-Stil umgesetzt werden müssen. Squeak und PyPy verwenden, um eine begrenzte Teilmenge der Sprache. Jikes Anwendungen "Magie" Methoden und Low-Level-Stil.

Die Idee von Klein und Maxine ist, dass alles geschrieben wird in High-Level, objektorientierte, ausdrucksvoll, idiomatischer Stil. In der aktuellen Version von Klein gibt es nur zwei kleine Orte, an denen der Stil durch eine Einschränkung behindert wird: bei der Umsetzung der Nachricht senden, können Sie keine Nachrichten senden und bei der Umsetzung von Objekt Klonen Sie alle Objekte nicht klonen können. Doch die aktuellen Compiler kann wirklich inline oder sogar vollständig optimieren entfernt Objekt Klonen und die Nachricht zu senden, so dass diese zwei Orte in normalen OO Selbst Stil neu geschrieben werden könnten -. Es ist nur, dass niemand es noch nicht getan hat,

All das war nur metacircular VMs. Es gibt auch andere VMs in High-Level-Sprachen geschrieben:

  • HotRuby ist eine Ruby VM (eigentlich ein YARV VM) in JavaScript geschrieben,
  • Red Sun ist eine Ruby VM (eigentlich eine YARV VM) in Actionscript geschrieben,
  • Rava ist eine JVM-ähnliche VM in Ruby von Koichi "ko1" Sasada geschrieben, der Autor von YARV und
  • Ruva ist eine JVM-wie VM in Ruby geschrieben

Andere Tipps

Einige weitere VM-Implementierungen sind in TCL (Tool Command Language) und lua (manchmal auch als Java genannt) und einige sind in einem Assembler geschrieben. Weitere Varianten sind in einer Computer-Hardware-System Programmiersprache des Herstellers geschrieben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top