Lua the Programming Language
Lua is a powerful light-weight programming language designed for extending applications. Lua is also frequently used as a general-purpose, stand-alone language. Lua is free software.
Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, interpreted from bytecodes, and has automatic memory management with garbage collection, making it ideal for configuration, scripting, and rapid prototyping.
A fundamental concept in the design of Lua is to provide meta-mechanisms for implementing features, instead of providing a host of features directly in the language. For example, although Lua is not a pure object-oriented language, it does provide meta-mechanisms for implementing classes and inheritance. Lua's meta-mechanisms bring an economy of concepts and keep the language small, while allowing the semantics to be extended in unconventional ways. Extensible semantics is a distinguishing feature of Lua.
Lua is a language engine that you can embed into your application. This means that, besides syntax and semantics, Lua has an
API that allows the application to exchange data with Lua programs and also to extend Lua with C functions. In this sense, Lua can be regarded as a language framework for building domain-specific languages.
Lua is implemented as a small library of C functions, written in ANSI C, and compiles unmodified in all known platforms. The implementation goals are simplicity, efficiency, portability, and low embedding cost. The result is a fast language engine with small footprint, making it ideal in embedded systems too.
Lua is designed and implemented by a team at Tecgraf, the Computer Graphics Technology Group of PUC-Rio (the Pontifical Catholic University of Rio de Janeiro in Brazil). Tecgraf is a laboratory of the Department of Computer Science.
http://www.lua.org/ |
lua wiki |
Reference manual for Lua 5.0 |
history
articles / papers / references
- "Lua: an Extensible Embedded Language" A few metamechanisms replace a host of features http://www.lua.org/ddj.html
- DDJ article Reprint from Dr. Dobb's Journal 21 #12 (Dec 1996) 26-33. Copyright © 1996 Miller Freeman, Inc.
- "Lua-an extensible extension language" http://www.lua.org/spe.html
- SPE paper Reprint from Software: Practice & Experience 26 #6 (1996) 635-652. Copyright © 1996 John Wiley & Sons, Ltd.
game-specific
- Lua:LuaVersusPython
- GBALua GBALua is a development environment that enables users to develop applications for GBA using Lua or a mixture of both Lua and C/C++. This environment is mainly intended for two types of users groups. First group is the beginner programmers that have none or limited C/C++/Asm knowledge but still would like the try creating some simple gba stuff. The other group is those that would like to use it as an simple and quick prototyping environment on the GBA.
- sample nebula lua code: main class
tools / libraries
debuggers / ide's
--
WillNorris - 23 May 2003
Standard libs
Lua XML Parser
Lua tools
wxLua
LuaOrb?
- This site presents LuaOrb?, a binding between the interpreted language Lua and CORBA. As usual, this binding defines mappings between Lua and IDL
types. However, unlike other bindings,
LuaOrb? relies on the reflexive facilities of CORBA and the dynamic nature of Lua.
Random Info
- Currently, Lua has a strong presence whenever programmers need a light, efficient, and portable language. It is being used by some tens of thousands programmers around the world, both in research and in industrial projects. Lua has been successfully used in games (e.g. Grim Fandango, Escape from Monkey Island, MK2, Baldur's Gate), in robots (e.g. Crazy Ivan, that won the Danish RoboCup? in 2000 and 2001), and several other applications (e.g. a hot-swappable Ethernet switch (CPC4400), a genetic sequence visualization system (GUPPY), "The most Linux on one floppy disk" (tomsrtbt)). An extended list of applications using Lua can be found at http://www.lua.org/uses.html
--
JohnHinton? - 27 Oct 2003
--
WillNorris - 11 Nov 2003