Может ли кто-нибудь сказать мне, где найти спецификацию байт-кода Lua? Я ищу уже 15 минут и не могу ничего найти.
Спецификация байт-кода Lua [закрыта]
Ответы (4)
Возможно, Инструкции по работе с виртуальными машинами на Lua 5.1 без излишеств содержат то, что вы ищете?
Существует также таблица набора инструкций Lua 5.0 (рис. 5) в:
Иерусалимский Р.; Фигейредо, LH; Селес, В. (2005), "Реализация Lua 5.0", J. универсального комп. Науч. 11 (7): 1159–1176.
Вы можете найти полный текст с помощью поиска в Google Scholar, и я думаю, что он также есть на lua.org. Эта ссылка используется на странице Lua в Википедии, которая всегда является хорошим местом для поиска таких вещей. :-)
Официальное определение находится в lopcodes.h.
Единственными спецификациями для Lua являются язык, стандартные библиотеки и C API. Создатели Lua намеренно оставили виртуальную машину неуказанной по нескольким основным причинам:
- Lua можно полностью реализовать с любой базовой архитектурой (VM, интерпретатор, компилятор и т. д.)
- Официальному дистрибутиву Lua не нужно беспокоиться о совместимости виртуальных машин между версиями.
Это означает, например, что обычно не следует использовать виртуальную машину Lua в качестве цели для компилятора. Если вы хотите узнать, как работает виртуальная машина официального дистрибутива Lua, в качестве примера для собственного любопытства, см. другие ответы.
Вы можете прочитать Реализация Lua 5.0 онлайн.