Спецификация байт-кода Lua [закрыта]

Может ли кто-нибудь сказать мне, где найти спецификацию байт-кода Lua? Я ищу уже 15 минут и не могу ничего найти.


person Wilfred Springer    schedule 26.09.2009    source источник


Ответы (4)


Возможно, Инструкции по работе с виртуальными машинами на Lua 5.1 без излишеств содержат то, что вы ищете?

Существует также таблица набора инструкций Lua 5.0 (рис. 5) в:

Иерусалимский Р.; Фигейредо, LH; Селес, В. (2005), "Реализация Lua 5.0", J. универсального комп. Науч. 11 (7): 1159–1176.

Вы можете найти полный текст с помощью поиска в Google Scholar, и я думаю, что он также есть на lua.org. Эта ссылка используется на странице Lua в Википедии, которая всегда является хорошим местом для поиска таких вещей. :-)

person thsutton    schedule 26.09.2009
comment
LuaForge был закрыт. Итак, ваша ссылка мертва. Вы помните, о каком проекте речь шла? Возможно, его перенесли на гитхаб... - person Judge Maygarden; 21.02.2012
comment
Ссылка теперь указывает на поиск этой статьи в Google Scholar. Он возвращает хиты на нескольких разных доменах (включая прямую ссылку на файл на luaforge). - person thsutton; 22.02.2012
comment
Здесь также есть ссылка на байт-код Lua 5.3: github.com/dibyendumajumdar /ravi/blob/master/readthedocs/ - person catwell; 05.08.2017

Официальное определение находится в lopcodes.h.

person lhf    schedule 26.09.2009
comment
Забавно, как кто-то, цитирующий вашу книгу, получает чек, когда вы предоставляете ссылку. Ну и +1 от меня. - person Bahbar; 31.12.2010
comment
@Bahbar, ты сделал мой день этим комментарием :P - person Kornel Kisielewicz; 19.01.2011

Единственными спецификациями для Lua являются язык, стандартные библиотеки и C API. Создатели Lua намеренно оставили виртуальную машину неуказанной по нескольким основным причинам:

  • Lua можно полностью реализовать с любой базовой архитектурой (VM, интерпретатор, компилятор и т. д.)
  • Официальному дистрибутиву Lua не нужно беспокоиться о совместимости виртуальных машин между версиями.

Это означает, например, что обычно не следует использовать виртуальную машину Lua в качестве цели для компилятора. Если вы хотите узнать, как работает виртуальная машина официального дистрибутива Lua, в качестве примера для собственного любопытства, см. другие ответы.

person Cogwheel    schedule 06.10.2009
comment
Это. Так же, как полный официальный исходный код Lua. - person jv110; 21.06.2017
comment
@ jv110 Ты неправильно понял. Исходный код Lua является просто эталонной реализацией Lua, а не Lua. Единственная спецификация для Lua — это сам язык и C API. Любой может реализовать эту спецификацию, используя любую базовую механику: виртуальную машину, интерпретатор, FPGA/ASIC (физический чип). Создатели Lua намеренно оставили его неуказанным, чтобы сделать язык максимально гибким. - person Cogwheel; 03.08.2017
comment
Вы упускаете суть. Он явно спрашивал об официальном байт-коде, который намного является наиболее распространенной реализацией. Неважно, используют его другие реализации или нет. - person jv110; 04.08.2017
comment
Серьезно, перестаньте раздувать свое эго и избегать вопросов, это бесполезно. - person jv110; 04.08.2017
comment
Вот как вы понимаете смысл вопроса. Как сказано, это совершенно правильный ответ, если вы интерпретируете его по-другому. Это объясняет, почему у него возникли проблемы с поиском спецификации. Нет ни одного. - person Cogwheel; 05.08.2017
comment
Он спросил, где он может его найти, а не почему он не может его найти. Это не отвечает на вопрос и никак ему не помогает. - person jv110; 05.08.2017
comment
Другие ответы уже были здесь, и я сослался на них в конце своего. Я не видел причин говорить то же самое, что и все остальные, и просто хотел добавить дополнительную информацию к разговору. Извини, что обижаю тебя. - person Cogwheel; 10.08.2017

Вы можете прочитать Реализация Lua 5.0 онлайн.

person torus    schedule 01.10.2009
comment
Очень интересно читать, так как я всегда хотел знать, как все это работает в некоторых деталях, связанных с кодом. - person Nick Bedford; 01.10.2009