Documentation
The official definition of the Lua language is its reference manual, which describes the syntax and the semantics of Lua, the standard libraries, and the C API.
The reference manual for Lua 5.2 is currently available in English only.
The reference manual for Lua 5.1 is available online in English and has been translated into Portuguese, Spanish, Russian, Hungarian, and German. It is also available as a book in English.
Lua books are available at the main online stores, such as the Lua Bookstore at Amazon, or as e-books at Feisty Duck. When you buy a copy of a book published by Lua.org, you help to support the Lua project.
The official definition of the Lua language:
Lua 5.1 Reference Manual
by R. Ierusalimschy, L. H. de Figueiredo, W. Celes
Lua.org, August 2006
ISBN 85-903798-3-3
A detailed and authoritative introduction to all aspects of Lua programming, by Lua's chief architect:
The second edition is aimed at Lua 5.1 and remains quite relevant for Lua 5.2.Programming in Lua (second edition)
by Roberto Ierusalimschy
Lua.org, March 2006
ISBN 85-903798-2-5 (also available as an e-book)
The first edition was aimed at Lua 5.0 and is available online; it is still largely relevant.
Programming in Lua is also available in German, Korean, Chinese, and Japanese:
Programmieren mit Lua
von Roberto Ierusalimschy
Open Source Press, September 2006
ISBN 3-937514-22-8
Programming in Lua
by Roberto Ierusalimschy
Insight, June 2007
ISBN 9788991268302
Programming in Lua
by Roberto Ierusalimschy
Publishing House of Electronic Industry, May 2008
ISBN 978-7-121-06187-5
Programming in Lua
by Roberto Ierusalimschy
ASCII Media Works, Aug 2009
ISBN 978-4048677974
A collection of articles recording some of the existing wisdom and practice on how to program well in Lua:
Lua Programming Gems
edited by L. H. de Figueiredo, W. Celes, R. Ierusalimschy
Lua.org, December 2008
ISBN 978-85-903798-4-3 (also available as an e-book)
There are also books about Lua written by other authors:
For more technical information, see the Frequently Asked Questions (FAQ) and some old seminar slides. For detailed technical information on specific topics, see our series of Lua Technical Notes and the wiki at lua-users.org, specially the tutorial. You may also browse the source code.
There are many papers and theses related to Lua. Here are the main ones written by the Lua team. See also the Lablua publications.
The main academic paper about Lua discusses the philosophy behind its design:
R. Ierusalimschy, L. H. de Figueiredo, W. Celes,
Lua - an extensible extension language,
Software: Practice & Experience 26 #6 (1996) 635–652. [doi]This paper was awarded the first prize (technological category) in the II Compaq Award for Research and Development in Computer Science in 1997. This award was a joint venture of Compaq Computer in Brazil, the Brazilian Ministry of Science and Technology, and the Brazilian Academy of Sciences.
For a recent short exposition of the API design, see
R. Ierusalimschy, L. H. de Figueiredo, W. Celes,
Passing a language through the eye of a needle,
ACM Queue 9 #5 (May 2011) 20–29. [doi]
For details on the implementation of Lua, see
R. Ierusalimschy, L. H. de Figueiredo, W. Celes,
The implementation of Lua 5.0,
Journal of Universal Computer Science 11 #7 (2005) 1159–1176. [jucs · slides]
For a complete history of Lua till 2006, see
R. Ierusalimschy, L. H. de Figueiredo, W. Celes,
The evolution of Lua,
Proceedings of ACM HOPL III (2007) 2-1–2-26. [doi · slides]
For a history of Lua till 2001, see
R. Ierusalimschy, L. H. de Figueiredo, W. Celes,
The evolution of an extension language: a history of Lua,
Proceedings of V Brazilian Symposium on Programming Languages (2001) B-14–B-28. [ps]
The first paper describing Lua has some historical interest:
L. H. de Figueiredo, R. Ierusalimschy, W. Celes,
The design and implementation of a language for extending applications,
Proceedings of XXI Brazilian Seminar on Software and Hardware (1994) 273–283. [ps]
For an early expository article, see
L. H. de Figueiredo, R. Ierusalimschy, W. Celes,
Lua: an extensible embedded language,
Dr. Dobb's Journal 21 #12 (Dec 1996) 26–33. [DDJ]
For a recent introductory text (in Portuguese), see
R. Ierusalimschy,
Uma Introdução à Programação em Lua,
JAI 2009 (Jul 2009).