Lua is an extension programming language designed to support
general procedural programming with data description facilities.
It also offers good support for object-oriented programming,
functional programming, and data-driven programming. Lua is
intended to be used as a powerful, light-weight scripting
language for any program that needs one. Lua is implemented as a
library, written in clean C (that is, in the common subset of
ANSI C and C++). Being an extension language, Lua has no notion
of a “main” program: it only works embedded in a host client,
called the embedding program or simply the host. This host
program can invoke functions to execute a piece of Lua code, can
write and read Lua variables, and can register C functions to be
called by Lua code. Through the use of C functions, Lua can be
augmented to cope with a wide range of different domains, thus
creating customized programming languages sharing a syntactical
framework. The Lua distribution includes a sample host program
called lua, which uses t