Viie aasta arengutöö jÀrel vÀljalase , on see kiire ja kompaktne skriptimiskeel saanud laialdase populaaruse sisseehitatud lahendustes (nt konfiguratsiooni mÀÀramiseks vÔi laienduste loomiseks). Lua tÔlgendi kood on kirjutatud C keeles ja on MIT litsentsi all.
Lua ĂŒhendab lihtsa protseduurilise sĂŒntaksiga jĂ”ulised andmete kirjeldamise vĂ”imalused, kasutades assotsiatiivseid massiive ja laiendatavat keele semantikat. Luas on dĂŒnaamiline tĂŒpiseerimine, keelekonstruktsioonid muundatakse intelligentsesse baidikoodi, mis töötab registriga virtuaalkeskkonnas koos automaatse prĂŒgikoristamisega. TĂ”lge on vormistatud raamatukoguna, mis on hĂ”lpsasti integreeritav C ja C++ projektidesse.
:
- Sisse viidud on uus tööreĆŸiim, mis on seotud prĂŒgikogumisega â ««, mis tĂ€iendab varem saadaval olnud inkrementaalset prĂŒgikogumise reĆŸiimi. Uus reĆŸiim eeldab sagedamat lĂŒhikest lĂ€bimist, mis katab ainult hiljuti loodud objekte. TĂ€ielik lĂ€bimine kĂ”igist objektidest toimub ainult juhul, kui lĂŒhikese lĂ€bimise jĂ€rel ei ole saavutatud soovitud mĂ€lukasutuse nĂ€itajaid. Selline lĂ€henemine vĂ”imaldab saavutada kĂ”rgemat jĂ”udlust ja vĂ€hendada mĂ€lu kasutust olukordades, kus on palju lĂŒhiajalisi objekte.
- Lisatud on vĂ”imalus mÀÀratleda pĂŒsivaid muutujaid, mis on mÀÀratletud atribuudiga «const». Selliseid muutujaid saab mÀÀrata ainult korra ja pĂ€rast initsialiseerimist ei saa neid enam muuta.
- Lisatud on toetust muutujaile ««, mis mÀÀratakse âcloseâ atribuudi abil ja meenutavad pĂŒsivaid kohalikke muutujaid (atribuutiga const), erinedes neist sellega, et vÀÀrtus sulgub (kutsutakse vĂ€lja meetod â__closeâ) igasuguse ulatusest vĂ€ljumise korral, nĂ€iteks ploki normaalse lĂ”petamise, break/goto/return abil ĂŒlemineku vĂ”i veateate korral.
- TĂŒĂŒp ««, mis vĂ”imaldab Lua-muutujates salvestada mingeid C-andmeid (esindab mĂ€lus andmeplokki vĂ”i sisaldab C-nĂ€itajaid), vĂ”ib nĂŒĂŒd sisaldada mitut vÀÀrtust (omada mitut metatabelit).
- Uus teostus funktsiooni jaoks pseudojuhuslike arvude genereerimiseks - math.random.
- Lisatud on hoiatuste sĂŒsteem, mis mÀÀratakse vĂ€ljendi abil ja mis, erinevalt vigadest, ei mĂ”juta programmi edasist tĂ€itmist.
- Lisatud silumine teavet funktsioonide argumentide ja vÀÀrtuste kohta, mis tagastatakse 'return' operaatoris.
- Uus semantika tĂ€ringute iteratsiooniks tsĂŒklites ««. Iteratsioonide arvu arvutamine toimub tsĂŒkli alguses, mis vĂ”imaldab vĂ€ltida muutuja ĂŒlevoolu ja lĂ”putuks jÀÀmist. Kui algvÀÀrtus ĂŒletab piiri, nĂ€idatakse viga.
- ââ lisatud uus valikuline argument âinitâ, mis mÀÀrab alustuspositsiooni otsimiseks (vaikimisi 1. sĂŒmbolist).
- Lisatud uued funktsioonid ââ (nullib voolu, puhastab kogu kutsumise kuhja ja sulgeb kĂ”ik «to-be-closed» muutujad) ja ââ (sulgeb kooperatiivi ja kĂ”ik seotud «to-be-closed» muutujad).
- Stringide numbriteks muutmise funktsioonid on viidud «string» raamatukokku.
- MĂ€luaadressi eraldamise funktsiooni kutsumine vĂ”ib nĂŒĂŒd ebaĂ”nnestuda, kui mĂ€lubloki suurust vĂ€hendatakse.
- ââ lisatud toe uus vormindusspetsiifikaator â%pâ (osutaja, mille lua_topointer tagastab).
- UTF-8 teegis on tagatud toetus numbritega kuni 2^31.
Allikas: opennet.ru
