Lua 5.5 -ohjelmointikieli on saatavilla

Viiden vuoden kehitystyön jälkeen Lua 5.5 on nyt saatavilla. Lua on nopea ja kompakti skriptikieli, jota käytetään laajalti sulautettujen ohjelmien ohjelmointikielenä konfigurointiin ja laajennusten kehittämiseen. Lua-tulkki on kirjoitettu C-kielellä ja lisensoitu MIT-lisenssillä.

Lua yhdistää yksinkertaisen proseduraalisen syntaksin datan kuvailuominaisuuksiin assosiatiivisten taulukoiden ja laajennettavan kielisemaniikan avulla. Lua käyttää dynaamista tyypitystä, ja kielen rakenteet muunnetaan tavukoodiksi, joka toimii rekisteripohjaisessa virtuaalikoneessa automaattisella roskienkeruulla. Tulkki on toteutettu kirjastona, joka voidaan integroida C- ja C++-projekteihin.

Tärkeimmät innovaatiot:

  • Useimmat roskankeruuoperaatiot käyttävät inkrementaalista tilaa, joka jakaa roskankeruusyklin erillisiin vaiheisiin, joiden välissä on ohjelman suoritus, mikä poistaa pitkät tauot sovellusten suorituksessa, joissa on paljon muistissa olevia objekteja.
  • Ehdotetaan kompaktia taulukoiden toteutusta, joka vaatii 60 % vähemmän muistia saman tyyppistä dataa sisältäville taulukoille (säästöt saavutetaan, koska tyyppitietoja ei tallenneta jokaiselle elementille, vaan elementtiryhmälle).
  • Mahdollisuus määrittää globaaleja muuttujia eksplisiittisesti missä tahansa koodilohkossa käyttämällä avainsanaa "global" on lisätty. Kun koodilohkossa määritetään lausekkeita avainsanalla "global", kaikki muuttujat on määritettävä eksplisiittisesti. Jos "global"-määrittely puuttuu, asetetaan implisiittisesti lauseke "global *", mikä säilyttää vanhan toiminnan ja käsittelee kaikkia muuttujia globaaleina. Myös lauseke "global" on lisätty. *", jossa kaikki implisiittisesti määritellyt globaalit muuttujat tulevat vain luku -tilaan. X = 1 — Ok, X on globaali muuttuja, vanha oletustoiminto. do global Y — määrittää muuttujan Y globaaliksi, kaikki muut lohkon muuttujat on määriteltävä eksplisiittisesti. Y = 1 — Ok, muuttuja Y on aiemmin määritelty. X = 1 — Virhe, muuttujaa X ei ole määritelty. end X = 2 — Ok, globaalin lohkon ulkopuolella pätee vanha toiminta.
  • "for"-silmukoissa määritetyt ohjausmuuttujat ovat nyt vain luettavissa, eikä niitä voi muokata silmukan rungon sisällä. Esimerkiksi "for i = 1, 5 do" -silmukassa määritettyä muuttujaa i ei voi muokata silmukan rungon sisällä.
  • Kun tulostetaan liukulukuja tulostusfunktiolla, tulostuu nyt riittävä määrä numeroita, jotta ne voidaan muuntaa oikein takaisin merkkijonosta alkuperäiseen esitysmuotoonsa.
  • Taulukkokonstruktorien sallittujen sisäkkäisten tasojen määrää on lisätty.
  • Lisätty table.create(nseq, nrec)-funktio tyhjän taulukon lisäämiseksi ja muistin esivaraamiseksi määritetylle määrälle elementtejä.
  • utf8.offset-funktio palauttaa paitsi tavusiirtymän merkin alkuun nähden, myös merkin lopun sijainnin.
  • Lisätty tuki ulkoisten merkkijonojen luomiselle muistissa, jota Lua-roskienkerääjä ei hallitse.
  • Lisätty luaL_openselectedlibs-funktio valitun kirjaston lataamiseen sekä luaL_makeseed-funktio, joka luo siemenarvon lua_newstate-funktiolle.
  • lua.c-tiedostossa 'readline'-kirjaston dynaaminen lataus varmistetaan, jos se on saatavilla (jos kirjasto on järjestelmässä, se ladataan ja rivinmuokkaustoiminnot tulevat saataville).
  • Muistin säästämisen optimointi otettu käyttöön esikäänännettyä tavukoodia ladattaessa - Lua voi nyt käyttää muistia uudelleen joissakin sisäisissä rakenteissa luomatta kaksoiskappaleita kaksoistavukoodia ladattaessa.
  • Varmistettiin, että kaikkia rivejä käytetään uudelleen vedos- ja purkutoiminnoissa.
  • Apupuskureissa puskurin uudelleenkäyttö (ilman kopiointia uuteen puskuriin) varmistetaan lopullista merkkijonoa luotaessa.

Lähde: opennet.ru

Osta luotettava isännöinti sivustoille, joissa on DDoS-suojaus, VPS VDS -palvelimet 🔥 Osta luotettavaa verkkosivustojen hostingia DDoS-suojauksella, VPS VDS -palvelimilla | ProHoster