software.wikisort.org - Linguaggio

Search / Calendar

Lua è un linguaggio di programmazione dinamico, riflessivo, imperativo e procedurale, utilizzato come linguaggio di scripting di uso generico.

Disambiguazione – Se stai cercando altri significati, vedi LUA.
Lua
linguaggio di programmazione
AutoreRoberto Ierusalimschy
Luiz Henrique de Figueiredo
Waldemar Celes
Data di origine1993
Ultima versione5.4.4 (26 gennaio 2022)
Utilizzogenerico, scripting, programmazione videogiochi
Paradigmimulti-paradigma: scripting, imperativo (procedurale, orientato agli oggetti), funzionale
Tipizzazioneforte, dinamica
Estensioni comuni.lua
Influenzato daC++, CLU, Modula, Scheme, SNOBOL
Ha influenzatoIo, GameMonkey, Squirrel, Falcon, MiniD, Julia
Implementazione di riferimento
Sistema operativomultipiattaforma
Licenzalicenza MIT
Sito webwww.lua.org/
(EN)

«The programming language.»

(IT)

«Il linguaggio di programmazione.»


Storia


Lua è stato creato nel 1993 da Roberto Ierusalimschy, Luiz Henrique de Figueiredo e Waldemar Celes[1], membri del Tecgraf/PUC-RIO, il gruppo di Tecnologia em Computação Gráfica presso la Pontifícia Università Cattolica di Rio de Janeiro, in Brasile[2]. Versioni di Lua precedenti alla versione 5.0 furono rilasciate sotto licenza simile alla licenza zlib[3]. Dalla versione 5.0 Lua è stato rilasciato sotto licenza MIT[3].

In un articolo pubblicato in Dr. Dobb's Journal, i creatori di Lua affermavano che Lisp e Scheme con la loro tipica struttura dati, la lista, hanno avuto la maggiore influenza sulla decisione di adottare la tabella come struttura dati primaria in Lua[4].

Lua è stato usato in molte applicazioni, commerciali e non.[5]


Caratteristiche del linguaggio


Le caratteristiche principali di Lua sono le funzioni, viste come "oggetti" di primo livello e quindi assegnabili a variabili, e l'uso di tabelle come strutture dati generiche. Queste caratteristiche permettono al linguaggio di implementare caratteristiche viste in linguaggi orientati agli oggetti senza che lo stesso lo sia.


Esempi


Il classico programma "Hello world" può essere scritto come:

 print ("Hello, world!")

Il fattoriale è un esempio di funzione ricorsiva:

 function factorial(n)
   if n == 0 then
     return 1
   end
     
   return n * factorial(n - 1)
 end

Questo esempio mostra come sia possibile, in Lua, ridefinire le funzioni del linguaggio:

 do
   local oldprint = print  -- salva la funzione come era definita da Lua, non salvando il
                           -- valore restituito dalla funzione, ma la funzione stessa  
   print = function(s)     -- ridefinisce la funzione print
     if s == "foo" then 
       oldprint("bar")
     else 
       oldprint(s) 
     end
   end
 end

Qualunque futura chiamata alla funzione print farà ora riferimento alla nuova funzione, e la vecchia funzione sarà accessibile soltanto dalla nuova versione della stessa.

Questo esempio mostra una caratteristica di Lua: la possibilità di definire dinamicamente tabelle (la struttura dati usata dal linguaggio). In questo caso si tratta di una tabella che associa al valore fibs[n] l'ennesimo numero di Fibonacci.

 fibs = { 1, 1 }                                 -- valore iniziale per fibs[1] and fibs[2]
 setmetatable(fibs, {                            
   __index = function(fibs,n)                    -- chiama questa funzione se il valore fibs[n] non esiste
               fibs[n] = fibs[n-2] + fibs[n-1]   -- calcola e memorizza il valore
               return fibs[n]
             end
 })

Esempi di utilizzo



Citazioni



Note


  1. (EN) Roberto Ierusalimschy, Luiz Henrique de Figueiredo e Waldemar Celes, The Evolution of Lua (PDF), su lua.org, 2007, p. 1. URL consultato il 4 novembre 2015.
  2. (EN) About, su lua.org, 19 ottobre 2015. URL consultato il 4 novembre 2015.
  3. (EN) License, su lua.org, 12 maggio 2015. URL consultato il 4 novembre 2015.
  4. (EN) Roberto Ierusalimschy, Luiz Henrique de Figueiredo e Waldemar Celes, Lua: an Extensible Embedded Language, in Dr. Dobb's Journal, vol. 21, n. 12, 1º dicembre 1996, ISSN 1044-789X (WC · ACNP). URL consultato il 4 novembre 2015.
  5. (EN) Uses, su lua.org, 24 marzo 2015. URL consultato il 4 novembre 2015.

Altri progetti



Collegamenti esterni


Controllo di autoritàLCCN (EN) sh2004007514 · GND (DE) 7547043-3 · BNF (FR) cb166522948 (data) · J9U (EN, HE) 987007563918605171
Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

На других языках


[fr] Lua

Lua est un langage de script libre, réflexif et impératif.
- [it] Lua

[ru] Lua

Lua (лу́а, с порт. — «луна»[8]) — скриптовый язык программирования, разработанный в подразделении Tecgraf (Computer Graphics Technology Group) Католического университета Рио-де-Жанейро (Бразилия). Интерпретатор языка является свободно распространяемым, с открытыми исходными текстами на языке Си.



Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.org внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2025
WikiSort.org - проект по пересортировке и дополнению контента Википедии