Lua 5.4 programavimo kalbos išleidimas

Po penkerių metų plėtros prieinama paleisti Lua 5.4, greita ir kompaktiška scenarijų programavimo kalba, plačiai naudojama kaip įterptoji kalba (pavyzdžiui, konfigūracijai apibrėžti arba plėtiniams rašyti). Lua vertėjo kodas parašytas C ir išplatino pagal MIT licenciją.

„Lua“ sujungia paprastą procedūrinę sintaksę su galingomis duomenų aprašymo galimybėmis, naudodama asociatyvinius masyvus ir išplečiamą kalbos semantiką. Lua naudoja dinaminį spausdinimą, konvertuodama kalbos konstrukcijas į baitinį kodą, kuris veikia registro pagrindu veikiančioje virtualioje mašinoje su automatiniu šiukšlių surinkimu. Pats vertėjas sukurtas kaip biblioteka, kurią galima lengvai integruoti į projektus C ir C++ kalbomis.

pagrindinis naujoves:

  • Įdiegtas naujas šiukšlių surinkėjo darbo režimas - “kartų“, kuris papildė anksčiau galimą laipsniško šiukšlių surinkimo režimą. Naujasis režimas apima sutrumpintą tikrinimą dažniau, apimantį tik neseniai sukurtus objektus. Pilnas visų objektų perėjimas atliekamas tik tuo atveju, jei po trumpo perėjimo nepavyko pasiekti norimo atminties suvartojimo. Šis metodas leidžia pasiekti didesnį našumą ir sumažinti atminties sąnaudas, kai saugoma daug trumpai gyvuojančių objektų.
  • Pridėta galimybė apibrėžti pastovius kintamuosius, apibrėžtus atributu „const“. Tokie kintamieji gali būti priskirti tik vieną kartą ir, inicijuoti, jų pakeisti negalima.
  • Pridėtas kintamųjų palaikymas "bus uždaryta“, kurie priskiriami naudojant atributą „close“ ir primena pastovius vietinius kintamuosius (su atributu const), skiriasi nuo jų tuo, kad reikšmė uždaroma (vadinamas metodas „__close“), kai tik išeina iš srities, pavyzdžiui, po įprasto bloko užbaigimo, perėjimas naudojant break/goto/return arba išėjimas, kai įvyksta klaida.
  • Įveskite "vartotojo duomenys“, kuri suteikia galimybę saugoti bet kokius C duomenis Lua kintamuosiuose (atspindi duomenų bloką atmintyje arba turi C žymeklį), dabar gali turėti kelias reikšmes (turėti kelias meta lenteles).
  • Pateikiamas naujas pseudoatsitiktinių skaičių generavimo funkcijos įgyvendinimas - math.random.
  • Pridėta įspėjimų, kurie nustatomi naudojant išraišką, sistema įspėti ir, skirtingai nei klaidos, neturi įtakos tolesniam programos vykdymui.
  • Pridėta derinimo informacija apie funkcijų argumentus ir grąžinimo reikšmes.
  • Buvo pasiūlyta nauja semantika sveikiesiems skaičiams skaičiuoti kilpomis "forumas“. Pakartojimų skaičius apskaičiuojamas prieš prasidedant ciklui, todėl išvengiama kintamo perpildymo ir kilpos. Jei pradinė vertė yra didesnė už ribinę vertę, rodoma klaida.
  • veikia 'string.gmatch“ pridėjo naują pasirenkamą argumentą „init“, kuris nustato, kurioje padėtyje pradėti paiešką (pagal numatytuosius nustatymus nuo 1 simbolio).
  • Pridėta naujų funkcijųlua_resetthread' (iš naujo nustato giją, išvalo visą skambučių krūvą ir uždaro visus "uždaryti" kintamuosius) ir "korotina.uždaryti“ (uždaro programą ir visus susijusius „uždaryti“ kintamuosius).
  • Funkcijos, skirtos eilučių konvertavimui į skaičius, buvo perkeltos į "eilutės" biblioteką.
  • Sumažinus atminties bloko dydį, dabar gali nepavykti iškviesti atminties paskirstymo funkcijos.
  • veikia 'string.formatasPridėtas naujo formato specifikatoriaus „%p“ palaikymas (rodiklis grąžintas lua_topointer).
  • Utf8 biblioteka teikia palaikymą simbolių kodai su skaičiais iki 2^31.

Šaltinis: opennet.ru

Добавить комментарий