Gjuha e programimit Lua 5.5 tani është e disponueshme

Pas pas pesë vitesh zhvillimi, është disponueshme lëshimi i Lua 5.5, një gjuhë skenari e shpejtë dhe kompakte, e cila ka marrë përhapje të madhe si gjuhë e integruar për përcaktimin e konfiguracioneve dhe për shkruarjen e zgjerimeve. Kodi i interpretuesit Lua është shkruar në gjuhën C dhe shpërndahet nën licencën MIT.

Lua kombinon një sintaksë të thjeshtë procedurale me mundësi për përshkrimin e të dhënave përmes përdorimit të arrave asociative dhe semantikës së zgjerueshme të gjuhës. Në Lua përdoret tipizimi dinamik, dhe strukturat gjuhësore konvertohen në kod bajtësor që ekzekutohet mbi një makinë virutale me regjistra, me një mbledhës automatik të mbeturinave. Interpretuesi është formuar si një bibliotekë, që mund të integrohet në projekte në gjuhët C dhe C++.

Novitetet kryesore:

  • Për pjesën më të madhe të operacioneve të mbledhjes së mbeturinave, përdoret një mod i inkrementalizuar, ku cikli i mbledhjes së mbeturinave ndahet në hapa të veçantë, që ndërpriten me ekzekutimin e programit, duke lejuar eliminimin e ndalesave të gjata të ekzekutimit të aplikacioneve me një numër të madh objektesh në memorie.
  • Është propozuar një implementim kompakt i arrave që kërkon 60% më pak memorie për arrat me të dhëna njëlloj (kursimi arrihet duke ruajtur të dhënat mbi tipin jo për çdo element, por për një grup elementesh).
  • Është shtuar mundësia e shpalljes së qartë të variablave globalë në çdo bllok kodi përmes fjalës kyçe "global". Kur citohet në bllokun e kodit shprehjes me fjalën kyçe "global", të gjitha variablat duhet të shpallen patjetër qartë. Nëse shpallja "global" mungon, atëherë implicit vendoset shprehja "global *" e cila ruan sjelljen e vjetër dhe të gjithë variablat interpretohen si globalë. Gjithashtu, është shtuar shprehja "global *" e cila bën të mundur që të gjitha variablat globale të pandryshuara të jenë të qasshme në modin vetëm për lexim. X = 1 — Ok, X është variabël globale, sjellja e vjetër si standart. bëj global Y — shpallja e variablit Y si global, të gjitha variablat e tjera në bllok duhet të shpallen qartë Y = 1 — Ok, variabli Y është përcaktuar më parë X = 1 — Gabim, variabli X nuk është përcaktuar fund X = 2 — Ok, jashtë bllokut, sjellja e vjetër vazhdon
  • Variablën e kontrollit të specifikuara në ciklet «for» tani janë të disponueshme vetëm për lexim dhe nuk mund të ndryshohen brenda trupit të ciklit. Për shembull, variabla i, e shpallur në ciklin «for i = 1, 5 do», nuk mund të ndryshohet brenda trupit të ciklit.
  • Kur printohen numra me pikë float përmes funksionit print, tani jepen një numër i mjaftueshëm shifrash për një konvertim të saktë të kthimit nga string në përfaqësimin origjinal.
  • Numri i lejuar i niveleve të nguljes së konstruktoreve të tabelës është rritur.
  • Funksioni table.create(nseq, nrec) është shtuar për të krijuar një tabelë të zbrazët dhe për të alokuar paraprakisht hapësirë për numrin e caktuar të elementeve.
  • Në funksionin utf8.offset, tani kthehet jo vetëm zhvendosja në byte deri në fillim të simbolit, por edhe pozita e fundiit të simbolit.
  • Shtimi i mbështetjes për krijimin e stringjeve të jashtme që ruhen në memorie, e cila nuk menaxhohet nga mbledhësi i plehrave Lua.
  • Funksioni luaL_openselectedlibs është shtuar për të ngarkuar bibliotekën e zbrazët, si dhe funksioni luaL_makeseed, që formon një farë për funksionin lua_newstate.
  • Në lua.c, është siguruar ngarkimi dinamik i bibliotekës ‘readline’ kur është e pranishme (nëse biblioteka është në sistem, ajo ngarkohet dhe funksionet për redaktimin e stringjeve bëhen të disponueshme).
  • Janë përfshirë optimizime për kursimin e memories gjatë ngarkimit të kodit bajt të kompiliuar paraprakisht - Lua tani mund të rishpërndajë memorien në disa struktura të brendshme pa krijuar kopje gjatë ngarkimit të kodit bajt të përsëritur.
  • Rishpërndarja e të gjitha stringjeve është siguruar gjatë operacioneve ‘dump’ dhe ‘undump’.
  • Në bufet ndihmëse është siguruar rishpërndarja e bufereve (pa kopje në një buf të ri) gjatë krijimit të stringut përfundimtar.

Burimi: opennet.ru

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster