Lua є типовим процедурних мовою програмування. Він надає широкі можливості для об'єктно-орієнтованої та функціональної розробки. Lua створювався як потужний і простий мову, володіє всіма необхідними виразними засобами. Бібліотека функцій мови Lua написаний на мові С (точніше на підмножини ANSI C та C + +).
Будучи розширюємо мовою, Lua не має поняття "Main" програми: він працює в середовищі виконання, скорочено званої хост. Хост-програма дозволяє запускати частини коду, що написані на Lua, модифікувати змінні Lua і реєструвати С-функції для використання безпосередньо в коді Lua. Завдяки можливості розширення з допомогою С-функцій, Lua може застосовуватися для вирішення широкого кола завдань. Таким чином, ми маємо можливість створювати спеціалізовані бібліотеки, використання яких нічим не відрізняється від використання стандартних засобів мови. В поставку включена проста хост-програма lua, яка використовує бібліотеку Lua і представляє з себе повну і автономну реалізацію інтерпретатора мови.