1 – Введение

Lua — это мощный, эффективный, лёгкий встраиваемый язык сценариев. Он поддерживает процедурное программирование, объектно-ориентированное программирование, функциональное программирование, программирование, управляемое данными, и описание данных.

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

Lua реализован как библиотека, написанная на чистом C, общем подмножестве стандартного C и C++. Дистрибутив Lua включает хост-программу под названием lua, которая использует библиотеку Lua, предоставляя полный автономный интерпретатор Lua для интерактивного или пакетного использования. Lua предназначен для использования как в качестве мощного, лёгкого, встраиваемого языка сценариев для любой программы, которой он нужен, так и в качестве мощного, но лёгкого и эффективного автономного языка.

Будучи языком расширения, Lua не имеет понятия «главной» программы: он работает встроенным в хост-клиент, называемый встраивающей программой или просто хостом. (Часто этим хостом является автономная программа lua.) Хост-программа может вызывать функции для выполнения фрагмента кода Lua, может читать и записывать переменные Lua и может регистрировать функции C, вызываемые из кода Lua. Благодаря использованию функций C Lua может быть расширен для работы с широким кругом различных предметных областей, создавая таким образом специализированные языки программирования, разделяющие общий синтаксический каркас.

Lua — свободное программное обеспечение, и, как обычно, предоставляется без каких-либо гарантий, как указано в его лицензии. Реализация, описанная в этом руководстве, доступна на официальном веб-сайте Lua, www.lua.org.

Как и любое другое справочное руководство, этот документ местами сух. Обсуждение решений, лежащих в основе дизайна Lua, см. в технических статьях, доступных на веб-сайте Lua. Подробное введение в программирование на Lua см. в книге Роберто Programming in Lua.