Paradigm | Multi-paradigm: scripting, imperative (procedural, prototype-based, object-oriented), functional, meta, reflective |
---|---|
Designed by | Roberto Ierusalimschy Waldemar Celes Luiz Henrique de Figueiredo |
First appeared | 1993 |
Stable release | 5.4.7[1]
/ 25 June 2024 |
Typing discipline | Dynamic, strong, duck |
Implementation language | ANSI C |
OS | Cross-platform |
License | MIT |
Filename extensions | .lua |
Website | www |
Major implementations | |
Lua, LuaJIT, LuaVela, MoonSharp, Luvit, LuaRT, Luau | |
Dialects | |
Metalua, Idle, GSL Shell | |
Influenced by | |
C++, CLU, Modula, Scheme, SNOBOL | |
Influenced | |
GameMonkey, Io, JavaScript[citation needed], Julia, MiniD, Red, Ring,[2] Ruby,[citation needed] Squirrel, MoonScript, C--, Luau |
Lua (/ˈluːə/ LOO-ə; from Portuguese: lua [ˈlu(w)ɐ] meaning moon) is a lightweight, high-level, multi-paradigm programming language designed mainly for embedded use in applications.[3] Lua is cross-platform software, since the interpreter of compiled bytecode is written in ANSI C,[4] and Lua has a relatively simple C application programming interface (API) to embed it into applications.[5]
Lua originated in 1993 as a language for extending software applications to meet the increasing demand for customization at the time. It provided the basic facilities of most procedural programming languages, but more complicated or domain-specific features were not included; rather, it included mechanisms for extending the language, allowing programmers to implement such features. As Lua was intended to be a general embeddable extension language, the designers of Lua focused on improving its speed, portability, extensibility and ease-of-use in development.