Lua a fost proiectat de Roberto Ierusalimschy, Luis Enrique de Figueiredo și Waldemar Celes Filho. Limbajul este conceput pentru a fi ușor încorporat în alte aplicații. Este o multi-paradigmă, ușoară, portabilă (UNIX, Windows, iOS, Android, console de jocuri) și este frecvent utilizată ca limbaj de scriptare.

Ar putea exista cu adevărat un alt limbaj de programare? "Lua este un limbaj nou, dar nu complet nou. De fapt, limba Lua (care înseamnă lună în portugheză) există încă din 1993. În cazul în care vă întrebați de ce este nevoie de acest lucru multe limbaje de programare, Matt Sherman oferă răspunsul în această postare.) "

Lua este de departe cea mai bună și mai populară alegere a limbajului de scriptare când vine vorba de jocuri. Limbajul este mai ușor decât altele, cum ar fi C ++. Este introdus dinamic pentru a colecta recuzită pentru gunoi și este extrem de rapid, ceea ce îl face foarte atractiv pentru dezvoltatorii de jocuri. Iată câteva jocuri care folosesc Lua într-un fel sau altul: Far Cry, SimCity (pentru a genera texte de ajutor), OZN-uri și World of Warcraft. În afară de jocuri, alte aplicații sunt dezvoltate integral sau parțial în Lua sau Lua încorporat pentru suport script: VLC, MySQL Workbench, Nginx, Geany, Great Window Manager, CryEngine și Conky.

prezentare

Conky afișează informații despre sistemul desktop. Scripturi conky scrise cu Lua.

Bazele limbajului

Urmând tradiția, vom începe cu celebrul program Hello World. Descărcați Lua dacă nu ați făcut-o deja. Apoi executați Lua REPL cu comanda Lua (sau lua5.x).

Aceasta afișează mesajul „Hello World” așa cum era de așteptat. Exact așa arată programul Python 3.x Hello-World Program-De data aceasta, este Lua. Un script Lua cu extensia .lua. Traducătorul poate executa numele fișierului în conformitate cu scriptul acestui flux, după cum urmează: lua5.3 first.lua

Lua este interpretat, dar precompilează codul într-o formă intermediară înainte de a-l utiliza. Forma precompilată este generată folosind comanda luac.

Tipuri

Lua are opt tipuri principale: Boolean, Number, Zero, Twine, Function, UserData, Table și Thread. Ca limbaj de tip dinamic, numele variabilelor nu necesită o calificare de tip. Multe specii sunt specii comune în alte limbi. Tipul zero reprezintă o lipsă de valoare (la fel ca zero în alte limbi). Tabelele sunt un instrument foarte puternic, doar structura datelor Lua. UserData este un nou tip creat de o bibliotecă C sau un program de aplicație. Rețineți că șirurile din Lua sunt înconjurate de ghilimele duble sau simple.

În Lua, tabelele sunt obiecte care reprezintă tablouri asociative, pachete sau alte structuri de date, cum ar fi tablouri. Conceptul de matrice are puțină diferență față de matricele din multe alte limbi. Matrice de indici pot fi mai multe sau orice altă valoare (șir etc.) Nil, totuși, nu este acceptată. Diferența mare este că tabelele nu au dimensiuni fixe și nu este stocat un singur tip de date.
Pentru a afla tipul unei variabile, utilizați funcția tip.

Bucle și funcții

În primul rând, să stabilim acest lucru: fiecare variabilă din Lua este globală, cu excepția cazului în care este calificată cu local, forțând variabila să devină locală în bucăți.

Sintaxa structurilor de control este foarte apropiată de engleza pură. Primul este, dacă este ceva, o afirmație.

Rețineți terminatorul final. Trebuie.

Un alt corp de control este în mod repetat în timp ce. Funcționează cu o parte din cod până când este îndeplinită o condiție. Similar cu Faceți o linie, în timp ce în alte limbi, verificarea se efectuează după ce corpul a efectuat.

Nici măcar nu pare puțin ciudat. Este scris ca

Atâta timp cât linia îndeplinește corpul atâta timp cât starea este valabilă.

De ce Lua?

  • " Acasă
  • » Revizuire
    • »Ce este eLua?
    • »Ce nu este eLua?
    • » De ce Lua?

    »Recenzie» De ce Lua?

    Extrem de bine creat, Lua este exemplul perfect al unui limbaj minimal, dar complet funcțional.

    ca „limbaj de scriptare” (și în consecință utilizat în cea mai mare parte în industria jocurilor), este, de asemenea, pe deplin capabil să ruleze programe și servicii web independente (de exemplu, Adobe Lightroom, World of Warcraft,).

    Cerințele sale limitate de resurse îl fac potrivit pentru multe familii de microcontrolere.

    Portabilitatea inerentă ridicată a codului original Lua (care este ANSI C și rulează pe aproape orice platformă cunoscută), combinată cu arhitectura software extrem de portabilă eLua, a făcut posibilă transferarea cu ușurință a proiectului către o mare varietate de arhitecturi.

    Biblioteci/module de acces periferic exportate din eLua sunt, de asemenea, portabile prin design, deci se poate rula programul Lua (cu sau cu foarte puține modificări) pe fiecare eLua menținut.

    Acest lucru aduce un nivel de portabilitate fără precedent în lumea aplicațiilor încorporate. eLua moștenește designul minimalist și funcțional al Lua, locuind în conformitate cu binecunoscutul SĂRUT, Păstrați-l mic și simplu filozofie.

    Imaginați-vă că programați microcontrolere cu caracteristici care se găsesc numai în cadre mari și costisitoare de dezvoltare pentru desktop:

    • Limbaj Lua 5.1 complet, nu doar un subset, aceeași versiune Lua pentru desktop
    • Introducere dinamică
    • Multitasking comun
    • Extrem de rapid și eficient
    • Modele multiple de gestionare a memoriei (automate, manuale, de urgență)
    • Gestionare puternică a șirurilor și model de potrivire
    • Opțiuni numerice multiple (float, număr, fix)
    • Recursivitate nesfârșită (apeluri de coadă corecte)
    • Funcții de primă clasă (calcul lambda)
    • Apel la procedură la distanță (pentru procesare distribuită)
    • Niciun sistem de operare „mai jos”
    • Conceput pentru a fi extins și ușor de conectat la alte LIBS

    Pro Foarte ușor de integrat cu C și C ++

    Una dintre cele mai bune caracteristici ale Lua este API-ul C foarte bine conceput. Acest lucru este foarte util dacă aveți o bibliotecă C existentă care trebuie integrată cu Lua sau obțineți rapid un script Lua pe partea C a jocului.

    În cele din urmă, Lua se joacă atât de bine cu C încât, dacă trebuie să optimizați viteza, îl puteți rescrie în C mult mai ușor decât în ​​alte limbi.

    Pro Documentație excelentă

    documentație oficială Lua este foarte utilă și aprofundată. Există, de asemenea, un număr mare de resurse online sau cărți cu informații foarte utile atât pentru începători, cât și pentru utilizatori avansați.

    Pro portabil

    Lua poate fi construit pe orice platformă cu un compilator ANSI C.

    În afară de asta, Lua este extrem de mic. De exemplu, fișierul descărcat pentru Lua 5.2.1 este doar 245K comprimat și 960K dezarhivat (inclusiv documente).

    Când este construit pe Linux, compilatorul Lua construit cu biblioteci standard este de 182K, iar biblioteca Lua durează 243K.

    Dimensiunea redusă și capacitatea de a construi cu compilatorul de machiaj Lua un limbaj extrem de portabil, care poate funcționa cu multe sisteme și computere diferite.

    Pro Fast

    Performanța Lua este comparată foarte bine în alte limbi, dacă este necesar pentru a vă îmbunătăți și mai mult performanța:

    1. Aplicați părți critice în C.
    2. Utilizați un compilator LuaJIT. Compilatorul LuaJIT este o scădere în locul compilatorului stoc și oferă îmbunătățiri semnificative ale performanței. Din pagina Prezentare generală:

    viteze LuaJIT poate rivaliza cu codul scris în C.

    Pro Simple

    Este ușor de învățat.

    Pro pentru încorporare

    Multe motoare de joc diferite (de exemplu, seria Elder Scrolls, Tome) folosesc Lua pentru scripturi, iar timpul său de rulare este conceput pentru utilizare încorporată.

    Sintaxă Pro Clean și simplă, potrivită pentru începători

    Sintaxa lui Lua este modelată de Modula, într-un limbaj cunoscut ca o introducere fantastică în programare.

    Sintaxa Lua are, de asemenea, următoarele caracteristici principale:

    • O virgulă ca declarație de separare este opțională (utilizată mai ales pentru a rezolva cazuri ambigue, cum ar fi c = F; (g) .x (a)).
    • Zahăr sintactic pentru apeluri funcționale (f'string "este" șir ", este [[șir]] și f) și apeluri de metodă (OBJ: t ()).

    Comunitate Pro Utilă

    Datorită popularității sale în creștere, Lua este o comunitate destul de mare și utilă în jurul său.

    Con Unele concepte nu pot fi aplicate altor limbaje de programare „mainstream”

    Lua are un model de patrimoniu bazat pe prototei. Deși acest lucru este folosit și de Javascript, acesta nu este folosit de multe alte limbi populare, astfel încât unele dintre conceptele pe care le-am învățat în timp ce învățam Lua nu vor fi foarte aplicabile în alte limbi.

    Un alt lucru care face Lua diferit de alte limbaje de programare este faptul că matricile încep de la 1 în loc de 0. Deși este util pentru începători, poate complica logica și o poate face foarte confuză atunci când se schimbă limbajul.

    Con Este ușor să faceți greșeli atunci când declarați variabile

    Când scrieți o funcție, dacă programatorul a uitat să declare o variabilă, variabila va fi declarată global. Codul va părea să funcționeze bine la început, dar dacă o altă funcție folosește o variabilă cu același nume, dar nu reușește să o declare, va crea erori subtile, incredibil de greu de găsit.

    Bateriile con nu sunt incluse

    Lua este atât de mic, în principal pentru că multe dintre componente nu sunt incluse în pachetul principal. Mulți oameni au nevoie de funcționalitatea oferită de sistemul de gestionare a modulelor LuaRocks și bibliotecile ca o lanternă.