Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Lua - Teknopedia
Lua - Teknopedia
Disambiguazione – Se stai cercando altri significati, vedi Lua (disambigua).
Lua
linguaggio di programmazione
AutoreRoberto Ierusalimschy
Luiz Henrique de Figueiredo
Waldemar Celes
Data di origine1993
Ultima versione5.4.8 (4 giugno 2025)
Utilizzogenerico, scripting, programmazione videogiochi
Paradigmiprogrammazione multi-paradigma, programmazione orientata agli oggetti, programmazione funzionale, programmazione procedurale, prototype-based programming e programmazione imperativa
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 weblua.org
Modifica dati su Wikidata · Manuale
(inglese)
«The programming language.»
(italiano)
«Il linguaggio di programmazione.»

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

Storia

[modifica | modifica wikitesto]

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 pubblicate sotto licenza simile alla licenza zlib[3]. Dalla versione 5.0 Lua è stato pubblicato 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

[modifica | modifica wikitesto]

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 di programmazione orientata agli oggetti senza che lo stesso lo sia.

Esempi

[modifica | modifica wikitesto]

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
})

Impiego[senza fonte]

[modifica | modifica wikitesto]
  • Lua è usato molto spesso in ambito PSP per la programmazione di Homebrew.
  • La piattaforma NUT di Cedac Software consente di realizzare embedded Applications tramite il linguaggio Lua.
  • I giochi disponibili su Roblox sono scritti interamente con Lua.
  • Alcuni framework per lo sviluppo di videogiochi 2D utilizzano il linguaggio Lua: tra questi Defold, Love2D e Solar2D.
  • La scheda di prototipazione Esp8266 è programmabile in Lua, tramite il firmware contenuto nella piattaforma IoT NodeMCU.
  • I motori grafici GameGuru e GameGuru Max basano la programmazione e i comportamenti di oggetti e personaggi in linguaggio Lua.
  • il motori grafici Visionaire Studio per la programmazione di videogiochi punta e clicca si basa sul linguaggio Lua.

Citazioni

[modifica | modifica wikitesto]
  • Nel videogioco Fuga da Monkey Island, lo Scumm Bar diventerà un raffinato sushi bar ed il nome verrà cambiato in Lua Bar, a sottolineare l'adozione del nuovo linguaggio di scripting in GrimE, il Lua.

Note

[modifica | modifica wikitesto]
  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. ^ a b (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

[modifica | modifica wikitesto]

Altri progetti

  • Wikibooks
  • Wikimedia Commons
  • Collabora a Wikibooks Wikibooks contiene testi o manuali sul Lua
  • Collabora a Wikimedia Commons Wikimedia Commons contiene immagini o altri file sul Lua

Collegamenti esterni

[modifica | modifica wikitesto]
  • (EN, PT) Sito ufficiale, su lua.org. Modifica su Wikidata
  • Repository sorgenti di Lua, su github.com. Modifica su Wikidata
  • (EN) Lua, su Free Software Directory. Modifica su Wikidata
  • (EN) Lua, su lua-users.org.
V · D · M
Principali linguaggi di programmazione (tutti)
ABAP · Ada · ALGOL · APL · Assembly · Awk · BASIC · C · C++ · C# · COBOL · Delphi · Eiffel · Fortran · F# · Haskell · IDL · Java · JavaScript · J# · Lisp · LOGO · Lua · ML · Objective-C · OCaml · Pascal · Perl · PHP · PL/I · PLaSM · Prolog · Python · Ruby · Rust · SAS · Scheme · sh · Simula · Smalltalk · SQL · Swift · Visual Basic
V · D · M
Software libero e open source
GeneraleCopyleft · Eventi · Software libero · Definizione · Gratis versus libre · Open source
Famiglie di sistemi operativiAros Research Operating System · BSD · Darwin · eCos · FreeDOS · GNU · Haiku · Inferno · Linux · Mach · Minix · OpenSolaris · Plan 9 · ReactOS · Redox · Symbian OS
Sviluppo software open sourceEclipse · Free Pascal · GCC · Gambas · Java · LLVM · Lua · NetBeans · Octave · Open64 · Perl · PHP · Python · ROSE · Ruby · Tcl
Storia del software liberoGNU · Haiku · Linux · Mozilla (Application Suite · Firefox · Thunderbird)
OrganizzazioniApache Software Foundation · Blender Foundation · Eclipse Foundation · freedesktop.org · Free Software Foundation (Europe · India · Latin America) · FSMI · GNOME Foundation · Google Code · KDE · Linux Foundation · Mozilla Foundation · Open Source Geospatial Foundation · Open Source Initiative · Software Freedom Conservancy · SourceForge · Symbian Foundation · The Document Foundation · Ubuntu Foundation · Xiph.Org Foundation · XMPP Standards Foundation · X.Org Foundation · Software Freedom Law Center
Licenze libereApache · Artistica · BSD · GNU GPL · GNU LGPL · ISC · MIT · MPL · Ms-PL/RL · zlib · Licenze approvate da FSF
Standard di licenzeOpen Source Definition · The Free Software Definition · Debian Free Software Guidelines
SfideBlob binario · Canonical's contributor agreement · Digital rights management · Rebranding dei programmi Mozilla · Software proprietario · Causa SCO-IBM · Restrizioni hardware · Trusted computing · Licenza virale · Guerra dei browser · Halloween Documents
Altri argomentiTermini alternativi · Comunità software libero · Distribuzione Linux · Forking · Movimento software libero · Microsoft Open Specification Promise · Revolution OS
Controllo di autoritàLCCN (EN) sh2004007514 · GND (DE) 7547043-3 · BNF (FR) cb166522948 (data) · J9U (EN, HE) 987007563918605171
  Portale Informatica: accedi alle voci di Teknopedia che trattano di informatica
Estratto da "https://it.wikipedia.org/w/index.php?title=Lua&oldid=142786075"

  • Indonesia
  • English
  • Français
  • 日本語
  • Deutsch
  • Italiano
  • Español
  • Русский
  • فارسی
  • Polski
  • 中文
  • Nederlands
  • Português
  • العربية
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022