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.
The Lua distribution includes a sample host program called , which uses the Lua library to offer a complete, standalone Lua interpreter, for interactive or batch use.
Lua is free software, and is provided as usual with no guarantees, as stated in its license.
The implementation described in this manual is available at Lua's official web site, .
Like any other reference manual, this document is dry in places.
For a discussion of the decisions behind the design of Lua, see the technical papers available at Lua's web site.
For a detailed introduction to programming in Lua, see Roberto's book, represents real (double-precision floating-point) numbers.Operations on numbers follow the same rules of the underlying C implementation, which, in turn, usually follows the IEEE 754 standard.(It is easy to build Lua interpreters that use other internal representations for numbers, such as single-precision floats or long integers; see file is provided to allow arbitrary C data to be stored in Lua variables.A userdata value is a pointer to a block of raw memory.There are two kinds of userdata: full userdata, where the block of memory is managed by Lua, and light userdata, where the block of memory is managed by the host.Userdata has no predefined operations in Lua, except assignment and identity test.