Lua

Lua
Парадигмамульти-парадигмова: скриптова, імперативна, функціональна, об'єктно-орієнтована, прототипна
Дата появи1993[1]
ТворціРоберто Єрусалимський
РозробникРоберто Єрусалимський[2]
Останній реліз
Система типізаціїдинамічна, слаба, качина
Основні реалізаціїLua, LuaJIT, LLVM-Lua, LuaCLR, Nua, Lua Alchemy
ДіалектиMetalua
Під впливом відC++, CLU, Simple Object Languaged, DELd, Snobol, Модула, Modula-2d і Scheme
Вплинула наIo, GameMonkey, Squirrel, Falcon, MiniD
Мова реалізаціїC[3]
Операційна системакросплатформова програма[4]
ЛіцензіяMIT[5][6]
Звичайні розширення файлів.lua[7][8], .luna, .lunaire або .anair
Репозиторій вихідного кодуgithub.com/lua/lua
Вебсайтlua.org

Lua ([лу́а], порт. місяць) — швидка і компактна скриптова мова програмування, розроблена підрозділом Tecgraf Католицького університету Ріо-де-Жанейро (Computer Graphics Technology Group of Pontifical Catholic University of Rio de Janeiro in Brazil). Інтерпретатор мови є вільно поширюваним, з відкритим початковим кодом на мові C.

За можливостями, ідеологією і реалізацією, мова найближча до JavaScript, проте Lua відрізняється могутнішими й набагато гнучкішими конструкціями, спроєктованими з метою «не плодити сутності понад необхідне». Хоча Lua не містить поняття класу і об'єкта в явному вигляді, механізми об'єктноорієнтованого програмування (ООП) з підтримкою прототипів (включаючи множинне успадкування) легко реалізуються з використанням метатаблиць, які також дозволяють перевантаження операцій тощо. Реалізована модель ООП (як і в JavaScript) — прототипна.

Lua отримала велике поширення в ролі вбудованої в інші проєкти мови сценаріїв (наприклад, для визначення конфігурації або для написання розширень). Lua комбінує простий процедурний синтаксис з потужними можливостями опису даних через використання асоціативних масивів і розширюваної семантики мови. У Lua використовується динамічна типізація, мовні конструкції перетворюються на байт-код, який виконується поверх регістрової віртуальної машини з автоматичним збирачем сміття. Сам інтерпретатор оформлений у вигляді бібліотеки, легко інтегрованої в проєкти на мовах Сі та Сі++. Код інтерпретатора Lua написаний мовою Сі й розповсюджується під ліцензією MIT.

  1. Lua: about
  2. https://www.lua.org/authors.html
  3. The lua Open Source Project on Open Hub: Languages Page — 2006.
  4. https://www.lua.org/about.html
  5. https://www.lua.org/license.html
  6. The lua Open Source Project on Open Hub: Licenses Page — 2006.
  7. Lua 5.1 Reference Manual — 2019.
  8. A Look at the Design of Lua[New York]: Association for Computing Machinery, 2018. — ISSN 0001-0782; 1557-7317

Developed by StudentB