Jump to content

НекоВМ

НекоВМ
Оригинальный автор(ы) Николя Каннасс
Разработчик(и)
Первоначальный выпуск 2005 г .; 19 лет назад ( 2005 )
Стабильная версия
2.3.0 / 24 октября 2019 г .; 4 года назад ( 24.10.2019 )
Репозиторий
Написано в С
Операционная система Windows , macOS , Linux
Платформа ИА-32 , x86-64
Лицензия С
Веб-сайт нековм .org /док /ВМ

NekoVM — это виртуальная машина , разработанная Николя Каннассом в рамках исследований и разработок двух независимых разработчиков видеоигр в Бордо , Франция : сначала в Motion Twin , а затем в Shiro Games . Родной язык NekoVM — это -код высокоуровневого байт динамически типизированного языка программирования под названием Neko. Это сочетание позволяет использовать Neko непосредственно в качестве встроенного языка сценариев или использовать NekoVM путем компиляции другого языка (например, Haxe ) в байт-код NekoVM.

Концепция

[ редактировать ]

У Neko есть компилятор и виртуальная машина (ВМ) со сборкой мусора . Компилятор преобразует исходный файл .neko в файл .n с байт-кодом, который можно выполнить с помощью виртуальной машины. Поскольку Neko является динамически типизированным и не имеет фиксированных классов, разработчику нужно только найти правильное сопоставление времени выполнения (в отличие от сопоставления типов данных ), чтобы код выполнялся правильно. Как сказано в FAQ по Neko : «...на NekoVM легче написать новый или существующий язык, чем на CLR / JVM , поскольку вам не приходится иметь дело с системой типов высокого уровня. Кроме того, это означает, что языки могут легче взаимодействовать, поскольку им нужно использовать только одни и те же структуры данных, а не всегда одни и те же типы». [1]

Neko требует компиляции перед выполнением, как и другие языки сценариев, такие как Apache Groovy . Поскольку Neko не нужно интерпретировать во время выполнения, он выполняется быстрее. Язык Haxe , помимо прочего, может компилироваться в код Neko.

Виртуальная машина

[ редактировать ]

Neko Виртуальная машина используется для выполнения файла байт-кода Neko. У виртуальной машины также есть возможность преобразовать файл байт-кода в исполняемый файл (выходные данные изменяются в зависимости от целевой операционной системы).

Ничего
Логотип НекоВМ
Парадигма Мультипарадигмальность : объектно-ориентированная , структурированная , основанная на прототипах , скриптовая.
Разработано Николя Каннасс
Разработчик
Впервые появился 2005 г .; 19 лет назад ( 2005 )
Стабильная версия
2.3.0 / 24 октября 2019 г .; 4 года назад ( 24.10.2019 )
Дисциплина набора текста Динамический
Язык реализации OCaml
Платформа НекоВМ
ТЫ Windows , macOS , Linux
Лицензия С
Расширения имен файлов .неко .н
Веб-сайт нековм .org /спецификации /синтаксис

Привет, мир

[ редактировать ]
$print("Hello World!");

Преобразования типов

[ редактировать ]
$int("67.87"); // Converts string "67.87" to integer 67
$float(12345); // Converts integer 12345 to float 12345.0000
$string($array(1,2,3)); // Converts array [1,2,3] to string "[1,2,3]"
o = $new(null); // new empty object
o2 = $new(o); // makes a copy of o
o2 = $new(33); // if parameter is not an object, throw an exception
o.field = value; //sets field to value
o.field; // returns "field" value of object o
foo = function() {
	$print(this.x);
}
o = $new(null);
o.x = 3;
o.bar = function() {
	foo();
};
o.bar(); // prints 3

Область действия функции

[ редактировать ]
var x = 3;
f = function() {
	$print(x);
}
x = 4;
f(); // print 3

Прототипы

[ редактировать ]
var proto = $new(null);
proto.foo = function() {
  $print(this.msg)
}

var o = $new(null);
o.msg = "hello";
$objsetproto(o,proto);
o.foo(); // print "hello"

$objsetproto(o,null); // remove proto
o.foo(); // exception

Веб-функциональность

[ редактировать ]

Neko включает Apache серверные модули mod_neko для языка Neko и mod_tora для размещения сервера приложений NekoVM tora . Таким образом, он может обрабатывать пользовательский ввод с помощью запросов GET и POST:

get_params = $loader.loadprim("mod_neko@get_params",0);
$print("PARAMS = "+get_params());

См. также

[ редактировать ]
  1. ^ «Чем Neko отличается от CLR .Net или JVM Java?» . ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ . НекоВМ . Проверено 28 марта 2021 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 95137fe6cca46d91ee304db6dc8479de__1682233200
URL1:https://arc.ask3.ru/arc/aa/95/de/95137fe6cca46d91ee304db6dc8479de.html
Заголовок, (Title) документа по адресу, URL1:
NekoVM - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)