文档
Reference manual
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.4 is available online in English only.
The reference manual for Lua 5.3 is available online in English and Russian.
The reference manual for Lua 5.2 is available online in English, Portuguese, and Polish.
The reference manual for Lua 5.1 is available online in English, Portuguese, Spanish, German, and Polish. It is also available as a book in English.
Technical documentation
For more technical information, see the Frequently Asked Questions (FAQ) and some old seminar slides. For detailed technical information on specific topics, see our old series of Lua Technical Notes and the wiki at lua-users.org, specially the tutorial. You may also browse the source code.
Papers
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:
Lua – an extensible extension language by R. Ierusalimschy, L. H. de Figueiredo, W. Celes, 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 an overview of how Lua is designed, see
A look at the design of Lua by R. Ierusalimschy, L. H. de Figueiredo, W. Celes, Communications of the ACM 61 #11 (2018) 114–123. [doi · video] For a short exposition of the API design, see
Passing a language through the eye of a needle by R. Ierusalimschy, L. H. de Figueiredo, W. Celes, ACM Queue 9 #5 (May 2011) 20–29. [doi · acm] Communications of the ACM 54 #7 (July 2011) 38–43. [doi · acm] It is also available in Portuguese:
Passando uma linguagem pelo buraco de uma agulha por R. Ierusalimschy, L. H. de Figueiredo, W. Celes, ACM Queue 9 #5 (May 2011) 20–29. For details on the implementation of Lua, see
The implementation of Lua 5.0 by R. Ierusalimschy, L. H. de Figueiredo, W. Celes, Journal of Universal Computer Science 11 #7 (2005) 1159–1176. [doi · slides] For details on the role of first-class functions in Lua, see
First-class functions in an imperative world by R. Ierusalimschy, Journal of Universal Computer Science 23 #1 (2017) 112–126. [doi · slides] For a discussion of coroutines in Lua, see
Coroutines in Lua by A. L. de Moura, N. Rodriguez, R. Ierusalimschy, Journal of Universal Computer Science 10 #7 (2004) 910–925. [doi · slides] For a complete history of Lua till 2006, see
The evolution of Lua by R. Ierusalimschy, L. H. de Figueiredo, W. Celes, Proceedings of ACM HOPL III (2007) 2-1–2-26. [doi · slides] For a history of Lua till 2001, see
The evolution of an extension language: a history of Lua by R. Ierusalimschy, L. H. de Figueiredo, W. Celes, Proceedings of V Brazilian Symposium on Programming Languages (2001) B-14–B-28. [ps] The first paper describing Lua has some historical interest:
The design and implementation of a language for extending applications by L. H. de Figueiredo, R. Ierusalimschy, W. Celes, Proceedings of XXI Brazilian Seminar on Software and Hardware (1994) 273–283. [ps] For an early expository article, see
Lua: an extensible embedded language by L. H. de Figueiredo, R. Ierusalimschy, W. Celes, Dr. Dobb's Journal 21 #12 (Dec 1996) 26–33. [ddj] For introductory texts in Portuguese, see
Uma introdução à programação em Lua by R. Ierusalimschy, JAI 2009 (Jul 2009).
A linguagem Lua e suas aplicações em jogos by W. Celes, L. H. Figueiredo, R. Ierusalimschy WJogos 2004 (Oct 2004). [slides]
Books
Lua books are available at the main online stores and also 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.
Reference manual 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 8590379833
The reference manuals for later versions of Lua are available online. Programming in Lua A detailed and authoritative introduction to all aspects of Lua programming, by Lua's chief architect:
Programming in Lua by R. Ierusalimschy Lua.org, fourth edition, August 2016 ISBN 8590379868 (also available as an e-book)
The fourth edition is aimed at Lua 5.3 and marks a complete reorganization of the text. The first edition is available online. It was aimed at Lua 5.0 and is still largely relevant.
The third edition was aimed at Lua 5.2 and remains quite relevant. It is available in English, Portuguese, and Russian:
Programming in Lua by Roberto Ierusalimschy Lua.org, third edition, January 2013 ISBN 859037985X (also available as e-book)
Programando em Lua por Roberto Ierusalimschy LTC, January 2015 ISBN 9788521626992
Programmirovanie na iazyke Lua by Roberto Ierusalimschy DMK-press, 2014 ISBN 5940747671
The second edition remains relevant and is available in German, Korean, Chinese, and Japanese:
Programmieren mit Lua von Roberto Ierusalimschy Open Source Press, September 2006 ISBN 3937514228
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 9787121061875
Programming in Lua by Roberto Ierusalimschy ASCII Media Works, Aug 2009 ISBN 9784048677974
Lua Programming Gems 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 9788590379843 (also available as e-book)
Other books There are also books about Lua written by other authors:
Coding With Roblox Lua in 24 Hours: The Official Roblox Guide by Roblox Corporation. Sams Publishing, 2021, ISBN 9780136829423.
Coding Roblox Games Made Easy: The ultimate guide to creating games with Roblox Studio and Lua programming by Zander Brumbaugh. Packt Publishing, 2021, ISBN 9781800561991.
Initiation à la création de jeux vidéo en Lua avec Löve2D by Anthony Cardinale. Éditions D-BookeR, 2020, ISBN 9782822709675.
Lua Quick Reference (second edition) by Mitchell. Triple Quasar Books, 2020, ISBN 9780991237951.
Developing Games on the Raspberry Pi: App Programming with Lua and LÖVE by Seth Kenlon. Apress, 2019, ISBN 9781484241707.
Lua Programming using Roblox by SimTek Game Development. Independently published, 2019, ISBN 9781693427443.
Introdução à linguagem Lua by José Augusto N. G. Manzano. Novatec, 2018, ISBN 9788575226681.
Lua Quick Start Guide by Gabor Szauer, Packt Publishing, 2018, ISBN 9781789343229.
Creating Solid APIs with Lua by Tyler Neylon. O'Reilly Media, 2017, ISBN 9781491986301.
Le guide de Lua et ses applications - Manuel d'apprentissage (2e édition) by Pierre Chapuis, Etiene Dalcol, Cyril Doillon, Sylvain Fabre, Philippe Lhoste, Hisham Muhammad, and Patrick Rapin. Éditions D-BookeR, 2016, ISBN 9782822704076.
Le guide de Lua et ses applications - Manuel de référence (2e édition) by Pierre Chapuis, Cyril Doillon, Sylvain Fabre, Philippe Lhoste, and Patrick Rapin. Éditions D-BookeR, 2016, ISBN 9782822704083.
Lua Game Development Cookbook by Mario Kasuba. Packt Publishing, 2015, ISBN 1849515506.
ROBLOX Lua: Scripting for Beginners by Douglas Snipp. CreateSpace, 2015, ISBN 1508728313.
Seven More Languages in Seven Weeks: Languages That Are Shaping the Future by Bruce Tate, Ian Dees, Frederic Daoud, Jack Moffitt. Pragmatic Bookshelf, 2014, ISBN 1941222153.
Learning Game AI Programming with Lua by David Young. Packt Publishing, 2014, ISBN 1783281332.
Lua Programming by Mark Otaris and others, Wikibooks, 2014.
Introduction to Programming with Lua and the Corona Game Lab by Robert Cook. Cook's Books, 2014. ASIN B00IQGAC8A.
Create Mobile Games with Corona: Build with Lua on iOS and Android by Silvia Domenech. Pragmatic Bookshelf, 2013, ISBN 1937785572.
CryENGINE Game Programming with C++, C#, and Lua by Filip Lundgren and Ruan Pearce. Packt Publishing, 2013, ISBN 1849695903.
LÖVE for Lua Game Programming by Darmie Akinlaja. Packt Publishing, 2013, ISBN 1782161600.
ComputerCraft: Lua Programming in Minecraft by Matthew Monk and Simon Monk. CreateSpace, 2013, ISBN 1481927655.
Learn Lua for iOS Game Development by Jayant Varma. Apress, 2012, ISBN 1430246626.
Le guide de Lua et ses applications by Cyril Doillon, Sylvain Fabre, Philippe Lhoste, and Patrick Rapin. Éditions D-BookeR, 2012, ISBN 9782822700054.
Lua - Programação de Computadores by José Augusto N. G. Manzano. self-published, 2012, ISBN 9788591311576.
Lua: Einsatz von Lua in Embedded Systems by Claus Kühnel and Daniel Zwirner. Skript Verlag Kuehnel, 2012, ISBN 3907857151.
Basic ROBLOX Lua Programming by Brandon John LaRouche. CreateSpace, 2012, ISBN 1475026048.
Numerical Methods for Nonlinear Engineering Models by John R. Hauser. Springer, 2009, ISBN 9781402099199.
Lua: Einsatz von Lua zur Messwerterfassung by Claus Kühnel and Daniel Zwirner. Skript Verlag Kuehnel, 2009, ISBN 3907857127.
Beginning Lua with World of Warcraft Add-ons by Paul Emmerich. Apress, 2009, ISBN 1430223715.
First Lua Programming, the most popular application development lightweight script! by Miki Shimizu. Softbank Creative, 2008, ISBN 4777514137.
Scripting Language for Game Development and Efficient C/C++ to Implement Embedded Lua by Makoto Hamanaka. Softbank Creative, 2008, ISBN 4797348550.
World of Warcraft Programming by James Whitehead II, Bryan McLemore, and Matthew Orlando. Wiley, 2008, ISBN 0470229810.
Introduction to Lua programming by Yutaka Ueno. Softbank Creative, 2007, ISBN 4797342722.
Beginning Lua Programming by Kurt Jung and Aaron Brown. Wrox, 2007, ISBN 0470069171.
Programming Game AI by Example by Mat Buckland. Jones & Bartlett Learning, 2005, ISBN 9781556220784.
Game Development with Lua by Paul Schuytema and Mark Manyen. Charles River Media, 2005, ISBN 1584504048.
Game Programming with Python, Lua, and Ruby by Tom Gutschmidt. Course Technology PTR, 2003, ISBN 1592000770.