The Lua programming language is designed to serve as an embedded scripting language for larger, compiled applications. Where LISP languages use lists as the universal data structure, Lua uses tables. All other data structures can be built from tables and meta-tables. Unlike the Python or Java virtual machines, which use stack-based instructions, Lua uses register-based instructions. Lua supports first-class functions, lexical closures, tail call optimization, and coroutines. The base language is designed to be easy to adapt to specific purposes. The reference interpreter is only 180 kilobytes.
March 5, 2015