Despite being a fast and powerful programming language, Lua is very easy to use and learn. Programmers can easily embed this language into their applications.
The basic purpose of Lua’s development was the creation of an embeddable lightweight scripting language that can be used in a variety of programming activities, such as web applications, image processing, and games.
History of Lua
A team of 3 members, namely Roberto Ierusalimschy, Waldemar Celes, and Luiz Henrique de Figueiredo, Computer Graphics Technology Group (Tecgraf) created Lua in year 1993 at the Pontifical Catholic University of Rio de Janeiro.
The two core foundation stones that led towards the development of Lua were the data configuration and description languages, namely data-entry language (DEL), and Simple Object Language (SOL). Between the years 1992 and 1993 teams at Tecgraf independently developed these two languages for two different projects.
Both of these projects were developed at Petrobras Company and were graphical designing tools for engineering applications. However, SOL and DEL lacked flow control structures, and Petrobras realised that there was need to add a full programming feature to these languages.
The design of Lua 1.0 was developed in a manner that enabled its object constructors, which were a little bit different from the present time light weight and flexible object constructors. The control structures’ syntax for Lua was taken from Modula to a great extent (as it consisted of the repeat/until, if, while loops).
Part from that, the syntax was also influenced by a number of other languages, these included: CLU, C++, SNOBOL and AWK. The developers of Lua had stated, in one of the articles that was published in Dr. Dobb’s Journal, that the decision to use tables as the primary data structure for Lua has been influenced by LISP and Scheme. This is because these languages had lists as their data structure mechanism, which is single and global in nature.
Scheme has had increasing influence on the semantics of Lua with the passage of time. This influence can be evidently seen with the inclusion of full lexical scoping and anonymous functions in the language.
The release of versions of Lua up till version 5.0 was made under a license that was similar to the BSD license. Afterwards, MIT license was used to make releases. This was applicable from the release of version 5.0.