Интерпретируемый язык, предназначенный не для использования в качестве отдельного языка программирования (такая возможность есть, но это непопулярно), а для встраивания интерпретатора в программы, написанные на C/C++. Используется как скриптовый язык во множестве программ - от web-сервера Nginx до конструктора игр Roblox.
Lua (лу́а, с порт. — «луна»[9]) — скриптовый язык программирования, разработанный в подразделении Tecgraf (Computer Graphics Technology Group) Католического университета Рио-де-Жанейро[англ.] (Бразилия). Интерпретатор языка является свободно распространяемым, с открытым исходным кодом на языке программирования Си.
По идеологии и реализации язык Lua ближе всего к JavaScript, в частности, он также реализует прототипную модель ООП, но отличается паскалеподобным синтаксисом и более мощными и гибкими конструкциями. Характерной особенностью Lua является реализация большого числа программных сущностей минимумом синтаксических средств. Так, все составные пользовательские типы данных (массивы, структуры, множества, очереди, списки) реализуются через механизм таблиц, а механизмы объектно-ориентированного программирования, включая множественное наследование — с использованием метатаблиц, которые также отвечают за перегрузку операций и ряд других возможностей.
Lua предназначен для пользователей, не являющихся профессиональными программистами, вследствие чего большое внимание уделено простоте дизайна и лёгкости обучения. Язык широко используется для создания тиражируемого программного обеспечения (например, на нём написан графический интерфейс пакета Adobe Lightroom). Также получил известность как язык программирования уровней и расширений во многих играх[10], в том числе Garry’s Mod, Roblox, Minetest.