Pas pas pesë vjet zhvillimi lëshimi , një gjuhë e shkrimit të shpejtë dhe kompakte, e cila ka fituar popullaritet të madh si një gjuhë e inkorporuar (për shembull, për përcaktimin e konfigurimeve ose për shkrimin e zgjerimeve). Kodi i interpretuesit Lua është shkruar në gjuhën C dhe në përputhje me licencën MIT.
Lua kombinon një sintaksë procedurale të thjeshtë me mundësi të fuqishme për përshkrimin e të dhënave përmes përdorimit të grupeve asociative dhe semantikës së zgjerueshme të gjuhës. Në Lua aplikohet tipizimi dinamik, konstrukcionet gjuhësore shndërrohen në kod bajt, që ekzekutohet mbi një makinë virtuale me regjistrat dhe mbledhës automatik të mbeturinave. Vetë interpretuesi është formuar si një bibliotekë, e cila mund të integrohet lehtësisht në projekte në gjuhët C dhe C++.
:
- ĂshtĂ« realiizuar njĂ« mĂ«nyrĂ« e re punimi pĂ«r mbledhĂ«sin e mbeturinave â "«, e cila e plotĂ«sonte modin e mĂ«parshĂ«m inkremental tĂ« mbledhjes sĂ« mbeturinave. Moda e re nĂ«nkupton ekzekutimin mĂ« tĂ« shpeshtĂ« tĂ« njĂ« rrethimi tĂ« shkurtuar, qĂ« mbulon vetĂ«m objektet e krijuara sĂ« fundmi. NjĂ« rrethim i plotĂ« i tĂ« gjitha objekteve kryhet vetĂ«m nĂ«se pas rrethimit tĂ« shkurtuar nuk arrihen treguesit e dĂ«shiruar tĂ« konsumit tĂ« memories. NjĂ« qasje e tillĂ« lejon arritjen e njĂ« performancĂ« mĂ« tĂ« lartĂ« dhe uljen e konsumit tĂ« memories nĂ« situata ku ruhen njĂ« numĂ«r i madh objektesh me jetĂ« tĂ« shkurtĂ«r.
- Shtuar mundësia e përcaktimit të variablave të qëndrueshëm, të përcaktuar me atribute «const». Të tillë variabla mund të caktohen vetëm një herë dhe pas inicializimit nuk mund të ndryshohen më.
- Shtuar mbështetje për variablat ««, të cilat caktohen me atributin «close» dhe duken si variabla të përhershëm lokalë (me atributin const), duke u dalluar nga ata në faktin se vlera e tyre mbyllet (metoda «__close» thirret) në çdo dalje nga domaini, për shembull, pas përfundimit normal të bllokut, kalimit me anë të break/goto/return ose daljes në rast të një gabimi.
- Tipi ««, që ofron mundësinë për të ruajtur në variablat Lua çdo të dhënë C (përfaqëson një bllok të dhënash në memorie ose përmban një tregues C), tani mund të përmbajë disa vlera (të ketë disa metatabla).
- ĂshtĂ« prezantuar njĂ« realizim i ri i funksionit pĂ«r gjenerimin e numrave pseudo-random â math.random.
- është shtuar një sistem paralajmërimi, të cilat pë définir janë të caktuara nëpërmjet shprehjes dhe, ndryshe nga gabimet, nuk ndikojnë në ekzekutimin e mëtejshëm të programit.
- Informacioni për debugging është shtuar mbi argumentet e funksioneve dhe vlerat e kthyer në operatorin «return».
- Një semantikë e re është propozuar për kalimin e numrave të tërë në ciklet ««. Numri i iteracioneve llogaritet para fillimit të ciklit, gjë që lejon shmangien e mbingarkesës së variablit dhe rikthimit në cikël. Nëse vlera fillestare është më e madhe se kufiri, shfaqet një gabim.
- NĂ« funksionin ââ Ă«shtĂ« shtuar njĂ« argument i ri joobligator âinitâ, qĂ« pĂ«rcakton nga cila pozita tĂ« fillohet kĂ«rkimi (nĂ« parazgjedhje nga 1 karakter).
- Funksionet e reja ââ (rivendos pĂ«rcjellĂ«sin, pastron tĂ« gjithĂ« stekĂ«t e thirrjeve dhe mbyll tĂ« gjitha variablat «to-be-closed») dhe ââ (mbyllet programin dhe tĂ« gjitha variablat e lidhur «to-be-closed»).
- Funksionet e konvertimit të vargjeve në numra janë transferuar në bibliotekën «string».
- Thirrja e funksionit për alokimin e memories tani mund të dështojë në rast të zvogëlimit të madhësisë së bllokut të memories.
- NĂ« funksionin ââ Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r specifikuesin e ri tĂ« formatit â%pâ (pikat e kthimit nga lua_topointer).
- Në bibliotekën utf8 është siguruar mbështetje me numra deri në 2^31.
Burimi: opennet.ru
