Lua

Lua
Парадигмамултипарадигмен: скриптов, императивен (процедурен, прототипно базиран, обектно ориентиран), функционален, метаезик, рефлексивен
АвторРоберту Йерусалимски
Валдемар Селеш
Луиш Енрике де Фигейреду
Софтуерен лицензMIT
Файлово разширение.lua
Lua в Общомедия

Луа (от португалски: lua – „луна“) е лек, мултипарадигмен език за програмиране от високо ниво, предназначен предимно за вградена употреба в приложения.[1] Lua е междуплатформен, тъй като интерпретаторът на компилиран код е написан на ANSI C.[2] Lua има сравнително прост API на C, за вграждане в приложения.[3]

Lua първоначално е проектиран през 1993 г. като език за разширяване на софтуерните приложения, за да отговори на нарастващото търсене на персонализиране по това време. Езикът предоставя основните средства на повечето процедурни езици за програмиране, като са включени сложни или предметно ориентирани функции. Вместо това програмистите имат на разположение средства за разширяването на езика при необходимост. Тъй като Lua е предназначен да бъде общ език за вграждане на разширения, дизайнерите на Lua се фокусират върху подобряването на неговата скорост, преносимост, разширяемост и лекота на използване при разработката.

Езикът Lua е създаден през 1993 г. от Роберту Йерусалимски, Луиш Енрике де Фигейреду и Валдемар Селеш, членове на Технологичната група за компютърна графика (Tecgraf) в Папския католически университет в Рио де Жанейро, Бразилия.

В периода 1977 – 1992 в Бразилия се прилага затворена политика по отношение на външно-търговските връзки (на английски: trade barriers) и в частност търговията с компютри и софтуер. За да задоволят търсенето на специализиран софтуер в страната, Tecgraf разработват няколко собствени приложения направо от нулата.

Класическият пример, отпечатващ на екрана „Здравей, свят!“, може да бъде написан по следния начин:[4]

print("Hello, World!")

или като:

print 'Hello, World!'

При разработката на видеоигри Lua се използва широко като скриптов език от програмистите, главно поради възприеманата му лекота за вграждане, бързо изпълнение и къса крива на обучение.[5]

Известни игри, които използват Lua, са: Roblox,[6] Garry's Mod, Payday 2, Phantasy Star Online 2, Dota 2, Angry Birds Space,[7] Crysis[8] и много други. Някои игри, които не поддържат първоначално програмиране или скриптове на Lua, имат тази функционалност, добавена от модове, както ComputerCraft е добавен за Minecraft. В допълнение, Lua се използва и в софтуер за други типове игри, като Adobe Lightroom, Moho, iClone, Aerospike и определен системен софтуер във FreeBSD и NetBSD.

Lua, използвайки разширението Scribunto, е достъпна в софтуера на МедияУики. Използва се за извличането и обработката на информация от Уикиданни, както и за създаването на шаблони, които иначе биха били доста ресурсоемки или биха имали изключително сложен синтаксис.

  1. Ierusalimschy, Roberto и др. Lua—An Extensible Extension Language // Software: Practice and Experience 26 (6). June 1996. DOI:<635::AID-SPE26>3.0.CO;2-P 10.1002/(SICI)1097-024X(199606)26:6<635::AID-SPE26>3.0.CO;2-P. с. 635 – 652.
  2. About Lua // Lua.org. Посетен на 2011-08-11.
  3. Yuri Takhteyev. From Brazil to Wikipedia // Foreign Affairs. Посетен на 25 April 2013.
  4. Programming in Lua : 1
  5. Why is Lua considered a game language? // Архивиран от оригинала на 2013-08-20. Посетен на 2017-04-22.
  6. Why Luau? // Luau. Посетен на 2022-03-23. (на американски английски)
  7. TIL Angry Birds was coded in Lua – post – Imgur // Посетен на 23 March 2022.
  8. Introduction to Crysis server-side modding // Посетен на 23 March 2022.
  Тази страница частично или изцяло представлява превод на страницата Lua (programming language) в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс – Признание – Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година – от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите. ​

ВАЖНО: Този шаблон се отнася единствено до авторските права върху съдържанието на статията. Добавянето му не отменя изискването да се посочват конкретни източници на твърденията, които да бъдат благонадеждни.​