skip to main content
10.1145/1238844.1238846acmconferencesArticle/Chapter ViewAbstractPublication PageshoplConference Proceedingsconference-collections
Article

The evolution of Lua

Published:09 June 2007Publication History

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.

Skip Supplemental Material Section

Supplemental Material

m2-ierusalimschy-h.mov

mov

201.2 MB

References

  1. The computer language shootout benchmarks. http://shootout.alioth.debian.org/.Google ScholarGoogle Scholar
  2. Lua projects. http://www.lua.org/uses.html.Google ScholarGoogle Scholar
  3. The MIT license. http://www.opensource.org/licenses/mit-license.html.Google ScholarGoogle Scholar
  4. Timeline of programming languages. http://en.wikipedia.org/wiki/Timeline_of_programming_languages.Google ScholarGoogle Scholar
  5. Which language do you use for scripting in your game engine? http://www.gamedev.net/gdpolls/viewpoll.asp?ID=163, Sept. 2003.Google ScholarGoogle Scholar
  6. Which is your favorite embeddable scripting language? http://www.gamedev.net/gdpolls/viewpoll.asp? ID=788, June 2006.Google ScholarGoogle Scholar
  7. K. Beck. Extreme Programming Explained: Embrace Change. Addison-Wesley, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. J. Bentley. Programming pearls: associative arrays. Communications of the ACM, 28(6):570--576, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. J. Bentley. Programming pearls: little languages. Communications of the ACM, 29(8):711--721, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle Scholar
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle Scholar
  15. 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 ScholarGoogle Scholar
  16. 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 ScholarGoogle Scholar
  17. 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 ScholarGoogle Scholar
  18. A. de Moura, N. Rodriguez, and R. Ierusalimschy. Coroutines in Lua. Journal of Universal Computer Science, 10(7):910--925, 2004.Google ScholarGoogle Scholar
  19. A. L. de Moura and R. Ierusalimschy. Revisiting coroutines. MCC 15/04, PUC-Rio, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle Scholar
  23. T. Gutschmidt. Game Programming with Python, Lua, and Ruby. Premier Press, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. M. Harmon. Building Lua into games. In Game Programming Gems 5, pages 115--128. Charles River Media, 2005.Google ScholarGoogle Scholar
  25. J. Heiss. Lua Scripting für Spieleprogrammierer. Hit the Ground with Lua. Stefan Zerbst, Dec. 2005.Google ScholarGoogle Scholar
  26. 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 ScholarGoogle Scholar
  27. R. Ierusalimschy. Programming in Lua. Lua.org, 2003.Google ScholarGoogle Scholar
  28. R. Ierusalimschy. Programming in Lua. Lua.org, 2nd edition, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 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 ScholarGoogle Scholar
  30. R. Ierusalimschy, L. H. de Figueiredo, and W. Celes. Lua: an extensible extension language. Software: Practice & Experience, 26(6):635--652, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 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 ScholarGoogle Scholar
  32. R. Ierusalimschy, L. H. de Figueiredo, and W. Celes. Lua 5.1 Reference Manual. Lua.org, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. K. Jung and A. Brown. Beginning Lua Programming. Wrox, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. L. Lamport. LATEX: A Document Preparation System. Addison-Wesley, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. 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 ScholarGoogle Scholar
  36. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  37. I. Millington. Artificial Intelligence for Games. Morgan Kaufmann, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. B. Mogilefsky. Lua in Grim Fandango. http://www.grimfandango.net/?page=articles&pagenumber=2, May 1999.Google ScholarGoogle Scholar
  39. Open Software Foundation. OSF/Motif Programmer's Guide. Prentice-Hall, Inc., 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. J. Ousterhout. Tcl: an embeddable command language. In Proc. of the Winter 1990 USENIX Technical Conference. USENIX Association, 1990.Google ScholarGoogle Scholar
  41. D. Sanchez-Crespo. Core Techniques and Algorithms in Game Programming. New Riders Games, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. P. Schuytema and M. Manyen. Game Development with Lua. Delmar Thomson Learning, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. A. van Deursen, P. Klint, and J. Visser. Domain-specific languages: an annotated bibliography. SIGPLAN Notices, 35(6):26--36, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. A. Varanese. Game Scripting Mastery. Premier Press, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. The evolution of Lua

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        HOPL III: Proceedings of the third ACM SIGPLAN conference on History of programming languages
        June 2007
        483 pages
        ISBN:9781595937667
        DOI:10.1145/1238844

        Copyright © 2007 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 9 June 2007

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

        Acceptance Rates

        HOPL III Paper Acceptance Rate12of12submissions,100%Overall Acceptance Rate12of12submissions,100%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader