Designed primarily for embedded use in applications, Lua is also used in game creation, as a scripting language, and as a beginning language for training new programmers.
Lua was released in 1993 by members of the Computer Graphics Technology Group at the Pontifical Catholic University of Rio de Janeiro. Its original purpose was as a language for extending software applications for customization.
From 1977 to 1992, trade barriers imposed on Brazil greatly limited the software that could be purchased from abroad, so it became necessary for Brazilian programmers to implement the basic software tools that were needed from scratch.
Lua was an extension of the data-description/configuration languages, Simple Object Language (SOL) and Data-Entry Language (DEL), which had been independently developed by the Computer Graphics Technology Group in 1991 and 1992. Lacking flow control structures in SOL and DEL, it became necessary to add full programming power to them. The result was Lua.
Lua was designed to incorporate the data-description syntax of SOL, borrowing the control structures from Modula, with influence from CLU, C++, Modula, Scheme, and SNOBOL.
Early versions of Lua were released under a license similar to the BSD license, but it has been licensed under the MIT license since version 5.0.
Lua is a multi-paradigm language. Its programs are not interpreted directly from the textual Lua file but are compiled into bytecode, which is then run on a Lua virtual machine. This process is invisible to the user and is performed during runtime, although it can be done offline in order to increase performance.
The language is intended to be embedded into other applications. An API for C is provided for that purpose. Extension modules can be written, using the Lua API, to extend the functionality of the interpreter by providing native facilities to Lua scripts. A collection of modules known as rocks are available through LuaRocks, a package management system. Pre-written Lua bindings are available for most popular programming languages, and other scripting languages.
For video game development, Lua is used as a scripting language, an advantage being the ease in which it can be embedded, its fast execution, and relatively short learning curve. It has become a popular scripting language for game programming.
Lua is also available as a scripting language in the MediaWiki software that powers Wikipedia and other wikis.
The focus of this category is on the Lua programming language, which may include any of its implementations, extensions, or tools, as well as user groups, tutorials, or other resources.
 
 
Recommended Resources
The eLua Project offers the full implementation of the Lua programming language to the embedded world, including the full features of the Lua desktop version, and extending its functions with specific features for efficient and portable embedded development. An overview of the product is featured, including its availability under the MIT license, current status, and an acknowledgment of its authors and contributors. Documentation and a download page are featured.
http://www.eluaproject.net/
First appearing in 1993, Lua is a lightweight, multi-paradigm, cross-platform, programming language designed largely for embedded use in applications. The interpreter of its compiled code is written in ANSI C. Lua is free software distributed in source code, and all versions are available for download. Lua’s source, binaries, previews, documentation, logos, tools, test suites, extras, license, and versions are discussed, e-books and a live demo are available.
http://www.lua.org/
Maintained by users of the Lua programming language, the site includes the group’s charter, acknowledgements of past and current sponsors and contributors, an archive of the official Lua mailing list, and a collaborative, community-maintained wiki that offers a collection of Lua information and resources, a directory of third-party libraries, distributions, utilities, and patches, snippets of sample Lua code, an unofficial Lua FAQ, and historical information, and a guest book.
http://lua-users.org/
Compatible with recent Lua versions and LuaJIT, LuaRocks is a packet manager for the Lua programming manager, providing a standard format for the distribution of Lua modules in a self-contained format known as a rock, a tool designed to manage the installation of rocks, and a server for their distribution. Recent modules and the most downloaded modules are highlighted, and they may also be viewed by module labels. Using the same license as Lua, it can be freely downloaded.
https://luarocks.org/
MoonSharp is a Lua interpreter written entirely in C# for the .NET, Mono, and Unity platforms. Its features, project status, roadmap, and licensure under a 3-clause BSD license are outlined. Tutorials on several aspects of the interpreter are put forth, along with Lua and API references, standard library progress, issues, tasks, and bug reports, as well as additions versus Lua. Downloads are available in several formats, and a user forum is available for discussion and support.
http://www.moonsharp.org/
Roblox is a massively multiplayer online and game creation platform that allows players to create their own games using its proprietary game engine, Roblox Studio, utilizing the Lua programming language to manipulate the game environment. The game platform can be accessed through a PC, Mac, iOS or Android mobile device, Amazon devices, and Xbox One, allowing multiplay that includes players on varying devices. Corporate information is available.
https://www.roblox.com/
Freely available under the LuaJ license, LuaJ is a Lua interpreter that offers a Java-centric implementation of the Lua virtual machine built to leverage standard Java features, a lightweight, high-performance execution of the language, access to a complete set of libraries and tools, dependability, and multi-platform, and able to run on JME, JSE, and JEE environments. Featured are an introduction, concepts, libraries, examples, and release notes.
http://www.roseborough.com/luaj.html
Consisting of two IDE-type editors that can edit, debug, and run Lua programs, and executable for running standalone wxLua scripts, a Lua module that can be loaded when using the standard Lua executable, and a library that extends C++ programs with a fast, small, fully embeddable scripting language, wxLua is a Lua scripting wrapper around the wxWidgets cross-platform C++ GUI library. Documentation, screenshots, license information, and downloads are available.
http://wxlua.sourceforge.net/
ZeroBrane is a lightweight Lua integrated development environment (IDE) for the Lua programming language, offering code completion, syntax highlighting, live coding, a code analyzer, and debugging support. The installation package includes some of the more popular Lua libraries and, as an open-source IDE, it may be downloaded for free, although a contribution is encouraged. Its features are highlighted, and documentation is available.
https://studio.zerobrane.com/