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.