ABSTRACT
We report on the birth and evolution of Lua and discuss how it moved from a simple configuration language to a versatile, widely used language that supports extensible semantics, anonymous functions, full lexical scoping, proper tail calls, and coroutines.
Supplemental Material
Available for Download
The evolution of Lua slides
- The computer language shootout benchmarks. http://shootout.alioth.debian.org/.Google Scholar
- Lua projects. http://www.lua.org/uses.html.Google Scholar
- The MIT license. http://www.opensource.org/licenses/mit-license.html.Google Scholar
- Timeline of programming languages. http://en.wikipedia.org/wiki/Timeline_of_programming_languages.Google Scholar
- Which language do you use for scripting in your game engine? http://www.gamedev.net/gdpolls/viewpoll.asp?ID=163, Sept. 2003.Google Scholar
- Which is your favorite embeddable scripting language? http://www.gamedev.net/gdpolls/viewpoll.asp? ID=788, June 2006.Google Scholar
- K. Beck. Extreme Programming Explained: Embrace Change. Addison-Wesley, 2000. Google ScholarDigital Library
- G. Bell, R. Carey, and C. Marrin. The Virtual Reality Modeling Language Specification---Version 2.0. http://www.vrml.org/VRML2.0/FINAL/, Aug. 1996. (ISO/IEC CD 14772). Google ScholarDigital Library
- J. Bentley. Programming pearls: associative arrays. Communications of the ACM, 28(6):570--576, 1985. Google ScholarDigital Library
- J. Bentley. Programming pearls: little languages. Communications of the ACM, 29(8):711--721, 1986. Google ScholarDigital Library
- C. Bruggeman, O. Waddell, and R. K. Dybvig. Representing control in the presence of one-shot continuations. In SIGPLAN Conference on Programming Language Design and Implementation, pages 99--107, 1996. Google ScholarDigital Library
- W. Celes, L. H. de Figueiredo, and M. Gattass. EDG: uma ferramenta para criação de interfaces gráficas interativas. In Proceedings of SIBGRAPI '95 (Brazilian Symposium on Computer Graphics and Image Processing), pages 241--248, 1995.Google Scholar
- B. Davis, A. Beatty, K. Casey, D. Gregg, and J. Waldron. The case for virtual register machines. In Proceedings of the 2003 Workshop on Interpreters, Virtual Machines and Emulators, pages 41--49. ACM Press, 2003. Google ScholarDigital Library
- L. H. de Figueiredo, W. Celes, and R. Ierusalimschy. Programming advanced control mechanisms with Lua coroutines. In Game Programming Gems 6, pages 357--369. Charles River Media, 2006.Google Scholar
- L. H. de Figueiredo, R. Ierusalimschy, and W. Celes. The design and implementation of a language for extending applications. In Proceedings of XXI SEMISH (Brazilian Seminar on Software and Hardware), pages 273--284, 1994.Google Scholar
- L. H. de Figueiredo, R. Ierusalimschy, and W. Celes. Lua: an extensible embedded language. Dr. Dobb's Journal, 21(12):26--33, Dec. 1996.Google Scholar
- L. H. de Figueiredo, C. S. Souza, M. Gattass, and L. C. G. Coelho. Geração de interfaces para captura de dados sobre desenhos. In Proceedings of SIBGRAPI '92 (Brazilian Symposium on Computer Graphics and Image Processing), pages 169--175, 1992.Google Scholar
- A. de Moura, N. Rodriguez, and R. Ierusalimschy. Coroutines in Lua. Journal of Universal Computer Science, 10(7):910--925, 2004.Google Scholar
- A. L. de Moura and R. Ierusalimschy. Revisiting coroutines. MCC 15/04, PUC-Rio, 2004. Google ScholarDigital Library
- R. K. Dybvig. Three Implementation Models for Scheme. PhD thesis, Department of Computer Science, University of North Carolina at Chapel Hill, 1987. Technical Report #87--011. Google ScholarDigital Library
- M. Feeley and G. Lapalme. Closure generation based on viewing LAMBDA as EPSILON plus COMPILE. Journal of Computer Languages, 17(4):251--267, 1992.Google ScholarDigital Library
- T. G. Gorham and R. Ierusalimschy. Um sistema de depuração reflexivo para uma linguagem de extensão. In Anais do I Simpósio Brasileiro de Linguagens de Programação, pages 103--114, 1996.Google Scholar
- T. Gutschmidt. Game Programming with Python, Lua, and Ruby. Premier Press, 2003. Google ScholarDigital Library
- M. Harmon. Building Lua into games. In Game Programming Gems 5, pages 115--128. Charles River Media, 2005.Google Scholar
- J. Heiss. Lua Scripting für Spieleprogrammierer. Hit the Ground with Lua. Stefan Zerbst, Dec. 2005.Google Scholar
- A. Hester, R. Borges, and R. Ierusalimschy. Building flexible and extensible web applications with Lua. Journal of Universal Computer Science, 4(9):748--762, 1998.Google Scholar
- R. Ierusalimschy. Programming in Lua. Lua.org, 2003.Google Scholar
- R. Ierusalimschy. Programming in Lua. Lua.org, 2nd edition, 2006. Google ScholarDigital Library
- R. Ierusalimschy, W. Celes, L. H. de Figueiredo, and R. de Souza. Lua: uma linguagem para customização de aplicações. In VII Simpósio Brasileiro de Engenharia de Software --- Caderno de Ferramentas, page 55, 1993.Google Scholar
- R. Ierusalimschy, L. H. de Figueiredo, and W. Celes. Lua: an extensible extension language. Software: Practice & Experience, 26(6):635--652, 1996. Google ScholarDigital Library
- R. Ierusalimschy, L. H. de Figueiredo, and W. Celes. The implementation of Lua 5.0. Journal of Universal Computer Science, 11(7):1159--1176, 2005.Google Scholar
- R. Ierusalimschy, L. H. de Figueiredo, and W. Celes. Lua 5.1 Reference Manual. Lua.org, 2006. Google ScholarDigital Library
- K. Jung and A. Brown. Beginning Lua Programming. Wrox, 2007. Google ScholarDigital Library
- L. Lamport. LATEX: A Document Preparation System. Addison-Wesley, 1986. Google ScholarDigital Library
- M. J. Lima and R. Ierusalimschy. Continuações em Lua. In VI Simpósio Brasileiro de Linguagens de Programação, pages 218--232, June 2002.Google Scholar
- D. McDermott. An efficient environment allocation scheme in an interpreter for a lexically-scoped LISP. In ACM conference on LISP and functional programming, pages 154--162, 1980. Google ScholarDigital Library
- I. Millington. Artificial Intelligence for Games. Morgan Kaufmann, 2006. Google ScholarDigital Library
- B. Mogilefsky. Lua in Grim Fandango. http://www.grimfandango.net/?page=articles&pagenumber=2, May 1999.Google Scholar
- Open Software Foundation. OSF/Motif Programmer's Guide. Prentice-Hall, Inc., 1991. Google ScholarDigital Library
- J. Ousterhout. Tcl: an embeddable command language. In Proc. of the Winter 1990 USENIX Technical Conference. USENIX Association, 1990.Google Scholar
- D. Sanchez-Crespo. Core Techniques and Algorithms in Game Programming. New Riders Games, 2003. Google ScholarDigital Library
- P. Schuytema and M. Manyen. Game Development with Lua. Delmar Thomson Learning, 2005. Google ScholarDigital Library
- A. van Deursen, P. Klint, and J. Visser. Domain-specific languages: an annotated bibliography. SIGPLAN Notices, 35(6):26--36, 2000. Google ScholarDigital Library
- A. Varanese. Game Scripting Mastery. Premier Press, 2002. Google ScholarDigital Library
Index Terms
- The evolution of Lua
Recommendations
A Surprisingly Simple Lua Compiler
SBLP '21: Proceedings of the 25th Brazilian Symposium on Programming LanguagesDynamically-typed programming languages are often implemented using interpreters, which offer several advantages in terms of portability and flexibility of the implementation. However, as a language matures and its programs get bigger, programmers may ...
Efficient compilation of Lua for the CLR
SAC '08: Proceedings of the 2008 ACM symposium on Applied computingMicrosoft's Common Language Runtime offers a target environment for compiler writers that provides a managed execution environment and type system, garbage collection, access to OS services, multithreading, and a Just-In-Time compiler. But the CLR uses ...
Comments