Lua

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Notă despre dezambiguizare.svg Dezambiguizare - Dacă căutați alte semnificații, consultați LUA .
Lua
limbaj de programare
Lua-Logo.svg
Autor Roberto Ierusalimschy
Luiz Henrique de Figueiredo
Waldemar Celes
Data de origine 1993
Ultima versiune 5.4.3 (29 martie 2021)
Utilizare generic, scripting, programare de jocuri
Paradigme multi-paradigmă: scripting , imperativ ( procedural , orientat spre obiect ), funcțional
Tastare puternic, dinamic
Extensii comune .lua
Influențată de C ++ , CLU , Modula , Scheme , SNOBOL
A influențat Eu , GameMonkey , Squirrel , Falcon , MiniD , Julia
Implementare referință
Sistem de operare multiplataforma
Licență Licență MIT
Site-ul web www.lua.org/
( RO )

„Limbajul de programare”.

( IT )

„Limbajul de programare”.

Lua este un limbaj de programare dinamic, reflexiv , imperativ și procedural, folosit ca limbaj de scriptare pentru uz general.

Istorie

Lua a fost creată în 1993 de Roberto Ierusalimschy , Luiz Henrique de Figueiredo și Waldemar Celes [1] , membri ai Tecgraf / PUC-RIO , grupul de Tehnologie și Computație Gráfica de la Universitatea Catolică Pontifícia din Rio de Janeiro , Brazilia [2] . Versiunile Lua anterioare versiunii 5.0 au fost lansate sub o licență similară licenței zlib [3] . De la versiunea 5.0 Lua a fost lansat sub licența MIT [3] .

Într-un articol publicat în Jurnalul Dr. Dobb , creatorii Lua au declarat că Lisp și Scheme, cu structura lor tipică de date, lista, au avut cea mai mare influență asupra deciziei de a adopta tabelul ca structură primară de date în Lua [4] .

Lua a fost utilizat în multe aplicații comerciale și necomerciale. [5]

Caracteristicile limbajului

Principalele caracteristici ale Lua sunt funcțiile, văzute ca „obiecte” de primul nivel și, prin urmare, atribuibile variabilelor, și utilizarea tabelelor ca structuri de date generice. Aceste caracteristici permit limbajului să implementeze caracteristici văzute în limbi orientate obiect , fără ca aceeași ființă să fie.

Exemple

Programul clasic „ Hello world ” poate fi scris ca:

 tipărește "Bună ziua, lume!"

Factorial este un exemplu de funcție recursivă :

 funcțional factorial ( n )
   dacă n == 0 atunci
     retur 1
   Sfârșit
     
   returnează n * factorial ( n - 1 )
 Sfârșit

Acest exemplu arată cum este posibil, în Lua, să redefinim funcțiile limbii:

 do
   local oldprint = print - salvați funcția așa cum a fost definită de Lua, fără a salva fișierul
                           - valoarea returnată de funcție, dar funcția în sine
   print = function ( s ) - suprascrie functia de printare
     dacă s == "foo" atunci 
       vechi ( "bar" )
     altceva 
       oldprint (s) 
     Sfârșit
   Sfârșit
 Sfârșit

Orice apeluri viitoare către funcția de tipărire vor face acum referire la noua funcție, iar vechea funcție va fi accesibilă numai prin noua versiune a acesteia.

Acest exemplu arată o caracteristică a Lua: capacitatea de a defini dinamic tabele (structura de date utilizată de limbă). În acest caz, este un tabel care asociază al n-lea număr Fibonacci la valoarea fibs [n].

 fibs = { 1 , 1 } - valoarea inițială pentru fibs [1] și fibs [2]
 setmetatable (bărbiereală, {                            
   __index = funcție ( fibs , n ) - apelați această funcție dacă valoarea fibs [n] nu există
               fibs [ n ] = fibs [ n - 2 ] + fibs [ n - 1 ] - calculează și stochează valoarea
               return fibs [ n ]
             Sfârșit
 })

Exemple de utilizare

  • Lua este folosit foarte des în PSP pentru programarea Homebrew .
  • Firmware-ul imprimantelor Olivetti precum Any_way, Simple_way și My_way, numit HERCULE, a fost creat cu limbajul de programare dinamică Lua.
  • Lua este folosit pentru a crea scripturi și pluginuri pentru MMORPG Lineage II .
  • Lua este, de asemenea, utilizat pentru a crea addon-uri compatibile cu MMORPG-ul World of Warcraft .
  • Lua este, de asemenea, utilizat pentru a crea scripturi cu Metin2 MMORPG .
  • Lua este, de asemenea, utilizat pentru a crea moduri pentru Modul lui Garry .
  • De asemenea, Lua a creat numeroase scripturi și antrenori pentru jocul premiat Rockstar Games, GTA IV .
  • În jocul video pentru PCBaldur's Gate II: Shadows of Amn , inteligența artificială a personajelor este gestionată în Lua. De fapt, este posibil să personalizați complet aceste scripturi pentru a modifica comportamentul implicit al fiecărui personaj în funcție de diferitele circumstanțe ale jocului.
  • Două moduri ale jocului video Minecraft , numite ComputerCraft și OpenComputers, vă permit să creați programe în cadrul jocului în sine, scriindu-le în limba Lua.
  • Multe scripturi TeamSpeak sunt create cu Lua. Unul dintre acestea este aetas funscripts.lua.
  • Firmware- ul Open Source OpenTx care echipează diferite dispozitive de control radio pentru modelare are capacitatea de a rula programe create în limba Lua.
  • Multi Theft Auto, modul care permite jocul online în GTA: San Andreas , este parțial scris cu Lua.
  • Platforma NUT a Cedac Software vă permite să creați aplicații încorporate utilizând limba Lua.
  • Jocurile disponibile pe Roblox sunt scrise în întregime cu Lua.
  • Multe moduri pentru jocul video Minetest sunt făcute în Lua.
  • Love2D este un cadru pentru dezvoltarea jocurilor video 2D folosind limbajul Lua.
  • Placa de prototipare Esp8266 este programabilă pe Lua, prin firmware-ul conținut în platforma IoT NodeMCU .
  • Motorul de joc Game-Guru bazează programarea și comportamentele obiectelor și personajelor în limbajul Lua.

Citate

Notă

  1. ^ (EN) Roberto Ierusalimschy, Luiz Henrique de Figueiredo și Waldemar Celes, The Evolution of Lua (PDF) pe lua.org, 2007, p. 1. Accesat la 4 noiembrie 2015 .
  2. ^ (EN) About on lua.org, 19 octombrie 2015. Adus pe 4 noiembrie 2015.
  3. ^ A b (EN) License , lua.org pe 12 mai 2015. Adus pe 4 noiembrie 2015.
  4. ^ (EN) Roberto Ierusalimschy, Luiz Henrique de Figueiredo și Waldemar Celes, Lua: an Extensible Embedded Language , în Jurnalul Dr. Dobb, vol. 21, n. 12, 1 decembrie 1996, ISSN 1044-789X ( WC ACNP ) . Adus la 4 noiembrie 2015 .
  5. ^ (EN) Utilizări pe lua.org, 24 martie 2015. Adus pe 4 noiembrie 2015.

Elemente conexe

Alte proiecte

linkuri externe

Controlul autorității LCCN (EN) sh2004007514 · GND (DE) 7547043-3 · BNF (FR) cb166522948 (data)
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT