Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Lua
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== History == Lua was created in 1993 by [[Roberto Ierusalimschy]], Luiz Henrique de Figueiredo and Waldemar Celes, members of the Computer Graphics Technology Group ([[Tecgraf]]) at the [[Pontifical Catholic University of Rio de Janeiro]], in [[Brazil]]. From 1977 until 1992, Brazil had a policy of strong [[trade barrier]]s (called a market reserve) for [[computer hardware]] and [[software]], believing that Brazil could and should produce its own hardware and software. In that climate, Tecgraf's clients could not afford, either politically or financially, to buy customized software from abroad; under the market reserve, clients would have to go through a complex bureaucratic process to prove their needs couldn't be met by Brazilian companies. Those reasons led Tecgraf to implement the basic tools it needed from scratch.<ref name=hopl2007>{{cite book |last1=Ierusalimschy |first1=R. |author1-link=Roberto Ierusalimschy |last2=Figueiredo |first2=L. H. |last3=Celes |first3=W. |year=2007 |title=Proceedings of the third ACM SIGPLAN conference on History of programming languages |contribution=The evolution of Lua |contribution-url=https://www.lua.org/doc/hopl.pdf |doi=10.1145/1238844.1238846 |url=https://www.acm.org/sigs/sigplan/hopl |pages=2β1β2β26 |isbn=978-1-59593-766-7 |s2cid=475143}}</ref><!-- More sources about the Brazilian market reserve are needed, as it helps further prove how it affected the development of the Lua language.--> Lua's predecessors were the data-description and configuration languages Simple Object Language (SOL) and Data-Entry Language (DEL).<ref name="luahist2001">{{cite web|url=https://www.lua.org/history.html|title=The evolution of an extension language: a history of Lua|year=2001|access-date=2008-12-18}} <!-- {{cite journal |last1=Ierusalimschy |first1=R. |author1-link=Roberto Ierusalimschy |last2=Figueiredo |first2=L. H. |last3=Celes |first3=W. |year=2001 |contribution=The evolution of an extension language: a history of Lua |contribution-url=https://www.lua.org/history.html |title=Proceedings of V Brazilian Symposium on Programming Languages |pages=Bβ14βBβ28}} --></ref> They had been independently developed at Tecgraf in 1992β1993 to add some flexibility into two different projects (both were interactive graphical programs for engineering applications at [[Petrobras]] company). There was a lack of any flow-control structures in SOL and DEL, and Petrobras felt a growing need to add full programming power to them. In ''The Evolution of Lua'', the language's authors wrote:<ref name=hopl2007/> {{Blockquote|In 1993, the only real contender was [[Tcl]], which had been explicitly designed to be embedded into applications. However, Tcl had unfamiliar syntax, did not offer good support for data description, and ran only on Unix platforms. We did not consider [[Lisp (programming language)|LISP]] or [[Scheme (programming language)|Scheme]] because of their unfriendly syntax. [[Python (programming language)|Python]] was still in its infancy. In the free, do-it-yourself atmosphere that then reigned in Tecgraf, it was quite natural that we should try to develop our own scripting language ... Because many potential users of the language were not professional programmers, the language should avoid cryptic syntax and semantics. The implementation of the new language should be highly portable, because Tecgraf's clients had a very diverse collection of computer platforms. Finally, since we expected that other Tecgraf products would also need to embed a scripting language, the new language should follow the example of SOL and be provided as a library with a C API.}} Lua 1.0 was designed in such a way that its object constructors, being then slightly different from the current light and flexible style, incorporated the data-description syntax of SOL (hence the name Lua: ''Sol'' meaning "Sun" in Portuguese, and ''Lua'' meaning "Moon"). Lua [[Syntax (programming languages)|syntax]] for control structures was mostly borrowed from [[Modula]] (<code>if</code>, <code>while</code>, <code>repeat</code>/<code>until</code>), but also had taken influence from [[CLU (programming language)|CLU]] (multiple assignments and multiple returns from function calls, as a simpler alternative to [[Call by reference|reference parameters]] or explicit [[pointer (computer programming)|pointers]]), [[C++]] ("neat idea of allowing a [[local variable]] to be declared only where we need it"<ref name=hopl2007/>), [[SNOBOL]] and [[AWK]] ([[associative array]]s). In an article published in ''[[Dr. Dobb's Journal]]'', Lua's creators also state that LISP and Scheme with their single, ubiquitous data-structure mechanism (the [[List (abstract data type)|list]]) were a major influence on their decision to develop the table as the primary data structure of Lua.<ref name=ddj96>{{cite news |last1=Figueiredo |first1=L. H. |last2=Ierusalimschy |first2=R. |last3=Celes |first3=W. |date=December 1996 |title=Lua: an Extensible Embedded Language. A few metamechanisms replace a host of features |magazine=Dr. Dobb's Journal |volume=21 |issue=12 |pages=26β33 |url=https://www.lua.org/ddj.html}}</ref> Lua [[semantics]] have been increasingly influenced by Scheme over time,<ref name=hopl2007/> especially with the introduction of [[anonymous function]]s and full [[Scope (computer science)#Lexical scope vs. dynamic scope|lexical scoping]]. Several features were added in new Lua versions. Versions of Lua prior to version 5.0 were released under a license similar to the [[BSD licenses|BSD license]]. From version 5.0 onwards, Lua has been licensed under the [[MIT License]]. Both are [[permissive free software licences]] and are almost identical.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)