Какие виртуальные машины приложений написаны на языках высокого уровня?

StackOverflow https://stackoverflow.com/questions/2703870

  •  01-10-2019
  •  | 
  •  

Вопрос

Какие виртуальные машины приложений там, которые написаны на языках более высокого уровня? C / C ++ выглядит как языки выбора (по очевидным причинам).

То, что я нашел в Google, по крайней мере два написано в Java (как мета-круговой): Jikesrvm и Maxine.

Что-нибудь еще, что вы нашли?

Это было полезно?

Решение

  • Многие реализации схемы написаны на схеме, и хотя многие из них являются компиляторами или переводчиками, некоторые из них являются VMS,
  • Некоторые реализации Commentlisp записываются в CommanyLisp, и хотя многие из них являются компиляторами или переводчиками, некоторые из них являются VMS,
  • то Выпивка VM написан в RPYPHON, который является подмножеством Python с «синтаксисом и семантикой Python, скорость C, ограничениям сообщений об ошибках Java и компилятора, как проникали в качестве паротизации»,
  • то Squeak smalltalk vm. написано в сленге (подмножество Squeak SmallTalk) и
  • то Кляйн метапитальный VM. написано полностью в себе.

Из тех, что наиболее интересными являются Кляйн и Максин (чей дизайн на самом деле основан на Кляне). Метацирусные реализации LISP и схема обычно предполагают существование некоторых основных примитивных специальных форм, которые затем должны быть реализованы в ассемблере, C или ограниченном подмножестве языка в стиле низкого уровня. Squeak и Pypy используют ограниченное подмножество языка. Jikes использует «магические» методы и низкоуровневый стиль.

Идея Кляна и Максин в том, что все написан на высоком уровне, объектно-ориентированном, выразительном, идиоматическом стиле. В текущей версии Кляна есть только два крошечных места, где стиль поражен некотором ограничением: в реализации отправки сообщений вы не можете отправлять какие-либо сообщения и в реализации Cloning объекта, вы не можете клонировать любые объекты. Тем не менее, текущий компилятор могу На самом деле встроен или даже полностью оптимизируйте кланирование объекта и отправку сообщений, поэтому эти два места могут быть переписаны в обычном стиле OO - просто никто еще не сделал.

Все это было только метапитальные виртуальные машины. Есть также другие VMS, написанные на языках высокого уровня:

  • HotRuby Является ли Ruby VM (на самом деле, ярв ВМ), написанный в JavaScript,
  • Красное солнце это рубиновая вилка (на самом деле, ярв ВМ), написанные в ActionScript,
  • Рава Является ли с JVM-подобным виртуалом, написанным в Ruby Coichi «KO1» Sasada, автор Ярва и
  • Ruva Является ли VM, похожим на JVM, написанный в Руби

Другие советы

Некоторые дополнительные реализации VM находятся в TCL (язык команд инструмента) и LUA (иногда называемые java), а некоторые написаны на ассемблере. Другие варианты написаны на языке программирования системного программирования компьютерного оборудования производителя.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top