Lua (мова праграмавання)

**Lua** (*лю́а*; з  [ˈlu.(w)ɐ], што азначае *месяц*) — легкаважная, высокаўзроўневая, шматпарадыгменная мова праграмавання, распрацаваная галоўным чынам для ўбудаванага выкарыстання ў прыкладных праграмах. Lua з’яўляецца кросплатформавай мовай, паколькі інтэрпрэтатар скампіляванага байт-кода напісаны на ANSI C, і Lua мае адносна просты API для C, што спрашчае яе ўбудаванне ў прыкладных праграмах.

Lua паўстала ў 1993 годзе як мова для пашырэння прыкладнога ПЗ для задавальнення попыту на наладжванне, які ўзрастаў у той час. Яна забяспечвала асноўныя магчымасці большасці працэдурных моў праграмавання, але больш складаныя або прадметна-спецыфічныя магчымасці не былі ўключаны; хутчэй, яна ўключала механізмы для пашырэння мовы, што дазваляе праграмістам рэалізоўваць такія функцыі. Паколькі Lua задумвалася як агульная ўбудаваная мова пашырэнняў, праекціроўшчыкі Lua сканцэнтраваліся на паляпшэнні яе хуткасці, партатыўнасці, пашыральнасці і прастаты выкарыстання пры напісанні праграм.

## Гісторыя 
Lua быў створаны ў 1993 годзе Раберта Ерусалімскім (*Roberto Ierusalimschy*), Луісам Энрыке дэ Фігейрэда (Luiz Henrique de Figueiredo) і Вальдэмарам Селесам (Waldemar Celes), членамі Групы тэхналогій камп’ютэрнай графікі (*Tecgraf*) у Папскім каталіцкім універсітэце Рыа-дэ-Жанэйра ў Бразіліі.

З 1977 па 1992 год у Бразіліі дзейнічала палітыка жорсткіх гандлёвых бар’ераў (так званых рынкавых рэзерваў) для камп’ютэрнага абсталявання і праграмнага забеспячэння. У такой атмасферы кліенты Tecgraf не маглі сабе дазволіць ні палітычна, ні фінансава купляць індывідуальнае праграмнае забеспячэнне з-за мяжы. Гэтыя прычыны падштурхнулі Tecgraf да распрацоўкі неабходных асноўных інструментаў з нуля.. Яны былі незалежна адна ад адной распрацаваны ў Tecgraf у 1992—1993 гадах, каб дадаць некаторую гнуткасць у два розныя праекты (абодва былі інтэрактыўнымі графічнымі праграмамі для інжынерных прыкладных праграм у кампаніі Petrobras). У SOL і DEL не хапала якіх-небудзь структур кіравання патокам, і Petrobras адчувала ўсё большую патрэбу ў тым, каб дадаць да іх поўную магутнасць праграмавання.

У *«Эвалюцыі Lua*» (*The Evolution of Lua*) аўтары мовы пісалі:), SNOBOL і AWK (асацыятыўныя масівы). У артыкуле, апублікаваным у *часопісе Dr. Dobb’s Journal*, стваральнікі Lua таксама сцвярджаюць, што LISP і Scheme з іх адзіным усюдыісным механізмам структуры даных (спіс) аказалі вялікі ўплыў на іх рашэнне распрацаваць табліцу ў якасці асноўнай структуры даных Lua.

З цягам часу семантыка Lua падвяргалася ўсё большаму ўплыву Scheme
```lua
print("Hello, World!")
```
або як:
```lua
print 'Hello, World!'
```
Каментарый у Lua пачынаецца з падвойнага злучка і працягваецца да канца радка, падобна да Ada, Eiffel, Haskell, SQL і VHDL. Шматрадковы тэкст і каментарыі ўпрыгожваюцца падвойнымі квадратнымі дужкамі.

Функцыя фактарыяла рэалізавана як функцыя ў наступным прыкладзе:
```lua
function factorial(n)
  local x = 1
  for i = 2, n do
    x = x * i
  end
  return x
end
```

## Крыніцы 
## Літаратура 
*  (Першае выданне даступна анлайн.)
* 
* 
*  
* 
*   Раздзелы 6 і 7 прысвечаны Lua, у той час як астатнія прысвечаны шырокаму агляду ПЗ у Бразіліі.
* 
* 
* 
* 
* 
*   Інтэрв’ю з Раберта Ерусалімскі (*Roberto Ierusalimschy*).
*  Як магчымасць убудавання паўплывала на дызайн Lua.
* 
* Lua papers and theses

## Спасылкі 
* 
* Lua Users , Community
* Lua Forum 
* LuaDist
* Lua Rocks — Package manager
* Projects in Lua

Катэгорыя:Праграмнае забеспячэнне з ліцэнзіяй MIT
Катэгорыя:Скрыптовыя мовы
Катэгорыя:Мовы праграмавання
Катэгорыя:Аб’ектна-арыентаваныя мовы праграмавання
Катэгорыя:Свабоднае праграмнае забеспячэнне, напісанае на C
Катэгорыя:Свабодныя бібліятэкі праграм
Катэгорыя:Свабодныя кампілятары і інтэрпрэтатары
Катэгорыя:Мовы з дынамічнай тыпізацыяй
Катэгорыя:Кросплатформавае праграмнае забеспячэнне
Катэгорыя:Свабоднае кросплатформавае праграмнае забеспячэнне
Катэгорыя:Мовы праграмавання высокага ўзроўню