Какие виртуальные машины приложений написаны на языках высокого уровня?
-
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), а некоторые написаны на ассемблере. Другие варианты написаны на языке программирования системного программирования компьютерного оборудования производителя.