For bruk av Lua i Wikipedia se Wikipedia:Lua.

**Lua** er et lettvekts skriptspråk med assosiative tabeller og utvidbar semantikk. Lua er kryssplattform siden språket er skrevet i ANSI C. Språket brukes blant annet som skriptspråk i mange spill, f.eks. World of Warcraft og Roblox[].

Navnet kommer fra ordet «lua», som betyr måne på portugisisk.

Historie
--------

Lua ble utviklet i 1993 av Roberto Ierusalimschy, Luiz Henrique de Figueiredo, og Waldemar Celes, medlemmer av Computer Graphics Technology Group ved Pontifícia Universidade Católica do Rio de Janeiro i Rio de Janeiro. Gruppen utviklet programmer for Petrobas, blant annet for å lage litologiprofiler. Programmene krevde mye konfigurasjon fra brukerne, og på et tidspunkt fant de ut at det beste ville være å bygge inn et fullstendig programmeringsspråk. Siden brukerne var geologer og ingeniører fremfor profesjonelle programmerere, var det viktig å unngå kryptisk syntaks og semantikk. Tcl var det eneste reelle alternativet, men ble forkastet grunnet «uvennlig syntaks», dårlig støtte for å beskrive datastrukturer, og manglende støtte for andre plattformer enn Unix. LISP og Scheme ble forkastet også grunnet uvennlig syntaks. Python var fremdeles i barndommen. Dermed ble Lua født.

I 1996 publiserte gruppen en artikkel om Lua i et amerikansk tidsskrift. Artikkelen ble blant annet lest av utviklere ved LucasArts, som bestemte seg for å integrere Lua i spillene sine for å gi brukerne mulighet til å skrive makroer og tillegg. I 1998 anbefalte LucasArts Lua på verdens største spillutviklingsmesse, Games Developer’s Conference, og etterhvert begynte også andre spillutviklere å ta språket i bruk.

Særtrekk
--------

Lua er dynamisk typet, og kjører programmer gjennom å tolke bytekode i en registerbasert virtuell maskin. Språket har automatisk minnehåndtering med inkrementell søppeltømming, og er spesielt egnet til konfigurering og skripting. Det er raskt sammenlignet med andre tolkede skriptspråk, tar lite plass, og er enkelt å komme i gang med for å skrive enkle skript.

Kildekoden til versjon 5.2.2 består av omtrent 20 000 linjer C-kode, som tilsvarer ca. 180 kB i Linux. At språket tar lite plass er gunstig for innbygging i ulike applikasjoner.

Lua er egentlig ikke et objektorientert språk, men det tilbyr mekanismer for å implementere klasser og arv direkte i språket. Den eneste innebygde datastrukturen er *table*, som i grunnen er en hashtabell. Denne kan benyttes om felt, liste, mengde og tuppel.

Roblox
------

[*klargjør*]Språket er veldig populært når det gjelder med Roblox, men bortsett fra at Roblox bruker en modifisert versjon, som heter Roblox Lua, eller RBX.lua som det faktisk heter, og det er språket som alle Roblox-spill, som Jailbreak og Adopt Me bruker.

Referanser
----------

1. ↑   «Lua: about», besøkt 7. juni 2018[Hentet fra Wikidata]
2. 1 2 3  «About Lua». Lua.org. Besøkt 5. januar 2014.
3. 1 2  Yuri Takhteyev (21. april 2013). «From Brazil to Wikipedia». *Foreign Affairs*. Besøkt 25. april 2013.
4. ↑  Ierusalimschy, R.; Figueiredo, L. H.; Celes, W. (2007). *Proc. of ACM HOPL III*. s. 2–1–2–26. ISBN 978-1-59593-766-7. doi:10.1145/1238844.1238846.

Eksterne lenker
---------------

* (pt) Offisielt nettsted Rediger på Wikidata

* (en) Lua (programming language) – kategori av bilder, video eller lyd på Commons Rediger på Wikidata

| * v
* d
* r
Programmeringsspråk |
| --- |
| Tidslinje |
| A# **·** ActionScript **·** Ada **·** Alef **·** ALGOL **·** ALGOL 58 **·** ALGOL 60 **·** ALGOL 68 **·** ALTRAN **·** APL **·** AppleScript **·** Argus **·** Assembler **·** Autokode **·** awk **·** B **·** BASIC **·** BCPL **·** BETA **·** BitC **·** BLISS **·** Bourne Shell **·** C **·** C++ **·** C-- **·** CHILL **·** C# **·** C shell **·** Caml **·** Ch **·** Cilk **·** Cilk++ **·** Cilk Plus **·** Clarion **·** Clipper **·** CLISP **·** Clojure **·** CLU **·** COBOL **·** COMAL **·** Common Lisp **·** Concurrent C **·** Concurrent Euclid **·** Concurrent Pascal **·** C shell **·** D **·** Delphi **·** Dylan **·** ECMAScript **·** Eiffel **·** Emacs Lisp **·** Erlang **·** Euclid **·** F\* **·** F# **·** Forth **·** Fortran **·** GNU Common Lisp **·** GNU Pascal **·** Go **·** Haskell **·** HyperTalk **·** Incr Tcl **·** INTERCAL **·** Interlisp **·** Java **·** JavaScript **·** JRuby **·** LaTeX **·** Legoscript **·** LilyPond **·** Limbo **·** Lisp **·** LPC **·** Lua **·** Lynx **·** Mary **·** MATLAB **·** Mesa **·** ML **·** MML **·** Modula **·** Modula-2 **·** Modula-2+ **·** MUMPS **·** Objective-C **·** Objective-C++ **·** OCaml **·** OpenVera **·** O'Haskell **·** Pascal **·** Perl **·** PHP **·** Pike **·** PL/I **·** Plankalkül **·** PLEX **·** Prolog **·** Protel **·** Pure Data **·** Python **·** R **·** Ratfor **·** REXX **·** RTL/2 **·** Ruby **·** Rust **·** SAS **·** Scala **·** Scheme **·** Scratch **·** Simula **·** SML **·** Smalltalk **·** SNOBOL **·** Tcsh **·** Tcl **·** TECO **·** TOM **·** Turbo Basic **·** Turbo Pascal **·** Verilog **·** Visual Prolog **·** Turing **·** TypeScript **·** Vala **·** VHDL **·** Visual Basic |
| 
* Liste over programmeringsspråk
* Kategori **Kategori**

 |

|  |  |
| --- | --- |
| Oppslagsverk/autoritetsdata | Store Danske Encyklopædi **·** GND **·** LCCN **·** BNF **·** BNF (data)
 |