(→Standard Libraries) |
|||
Line 40: | Line 40: | ||
== Standard Libraries == | == Standard Libraries == | ||
{{main|Lua Standard Libraries}} | {{main|Lua Standard Libraries}} | ||
+ | |||
Lua comes with a small set of standard libraries which can be used to perform frequent tasks. The libraries are mainly an interface to the underlining [[C standard library|C API]]. | Lua comes with a small set of standard libraries which can be used to perform frequent tasks. The libraries are mainly an interface to the underlining [[C standard library|C API]]. | ||
== References == | == References == | ||
{{reflist}} | {{reflist}} |
Latest revision as of 22:30, 1 March 2014
Lua (pronounced LOO-ah[1]) is a light-weight, functional, garbage collected, dynamically-typed programming language designed to work as an extension or as an embedded scripting language. Lua is generally considered a very fast, very simple, and very small (program size) making it highly embeddable and portable. The official Lua implementation is portable and open-source, released under the MIT License. Lua only has one data structuring mechanism called tables.
History[edit]
Lua was created at PUC-Rio, the Pontifical Catholic University of Rio de Janeiro in Brazil in 1993 by Roberto Ierusalimschy, Luiz Henrique de Figueiredo, and Waldemar Celes[2]. In 1993, Lua 1.0 was created as the first working implementation that worked. The implementation used yacc and lex using a stack-based virtual machine[3]. Much of the control structures syntax is borrowed from Modula.
The first public release of Lua was announced on Fri, 8 Jul 1994 in various usenet newsgroups. Lua sought internal exposure using various publications such as in the Dec 1996 issue Dr. Dobb's Journal.
luac[edit]
luac is Lua compiler that can translate Lua source code into binary files that can be later loaded and executed. This makes it possible for a program to not need to compile the source at run-time. This ability also allows for faster program loading but not necessarily smaller lua programs.[4]
Versions[edit]
Version | Release Date | Description |
---|---|---|
1.0 | 1993 | First working implementation |
1.1 | 1994 | Reference manual created, documentation established |
2.1 | 1995 | An value can be used as an index. Broke backwards compatibility Improved constructor semantics. |
2.4 | 1996 | The luac external compiler was created which compiled source code into bytecode and string tables packed in a portable binary format. This removed the need of programs to compile the source during run-time. |
3.1 | 1998 | Introduced closures and anonymous functions into the language. |
3.2 | 1999 | Multithreading support through no shared memory and multiple independent states. |
4.0 | 2000 | Added for loop, new set of API |
4.1 | 2001 | Coroutines added, portable implementation, deterministic semantics |
5.0 | 2003 | Register-based virtual machine. Tables were reimplemented. |
5.1 | 2006 | Incremental garbage collector was added. Better module support. |
5.2 | 2011 | Ephemeron tables implementation. Bitlib library added. Tables Finalizers |
Standard Libraries[edit]
- Main article: Lua Standard Libraries
Lua comes with a small set of standard libraries which can be used to perform frequent tasks. The libraries are mainly an interface to the underlining C API.