Go: Lua VM от Microsoft

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

Относительно недавно Microsoft подготовила новый движок для исполнения сценариев на языке Lua. Ключевой особенностью представленного Lua VM является реализация на языке Go. В движке поддерживается синтаксис Lua 5.3, но пока отмечаются отдельные несовместимости (например, отсутствует поддержка сопрограмм) и требуется дополнительная стабилизация API. Код проекта открыт под лицензией MIT, которая также используется проектом Lua для распространения кода основного интерпретатора, написанного на языке Си.

В отличие от уже существующих реализаций Lua VM на языке Go (DCLua, GoLua, Golang Lua, go-lua-vm и glua) была применена иная архитектура виртуальной машины, нацеленная на упрощение отладки, расширение средств обработки ошибок, интеграцию встроенного отладчика и поддержку полного сопоставления вызовов на языках Lua и Go. В качестве причин создания новой реализации Lua VM упоминается желание добиться более строгого соответствия спецификациям Lua 5.3 и предоставить удобный API для интеграции с приложениями языке Go.

 

17.11.2018









 
архив

подписка