Lua 5.5 ծրագրավորման լեզուն հասանելի է

Հյուրերիանք թերթելուց հետո, Lua 5.5-ի թողարկումը հասանելի է, արագ և կոմպակտ սկրիպտային ծրագրավորման լեզու, որը մեծ տարածում է ստացել որպես ներմուծվող լեզու կոնֆիգուրացիաների և երկարացումների գրելու համար: Lua- ի մեկնաբանիչի կոդը գրանցված է C լեզվով և տարածվում է MIT լիցենզիայով:

Lua-ն համակցում է պարզ ընթացիկ սինտաքսը տվյալների նկարագրության հնարավորությունների հետ՝ օգտագործելով ասոցիատիվ զանգվածներ և լեզվի ընդլայնման սեմանտիկա: Lua-ում օգտագործվում է դինամիկ տիպավորում, իսկ լեզվաբառարական կառուցումներ փոխակերպվում են բայթ-կոդի, որի վրա աշխատում է ռեգիստրային վիրտուալ մեքենան ավտոմատ աղբի հավաքիչով: Մեկնաբանիչը ձևավորված է որպես գրադարան, որը ինտերգրվում է C և C++ լեզուների վրա նախագծերում:

Կարևոր նորույթները:

  • Աղբի հավաքման մեծ մասի գործողություններում ներգրավված է ինկրեմենտալ ռեժիմ, երբ աղբի հավաքման ցիկլը խստացվում է առանձին քայլերի մեջ, որոնք հերթափոխվում են ծրագրի կատարումների հետ, ինչը թույլ է տալիս ազատվել երկար ժամանակահատվածներից ծրագրերի հետ, որոնցում շատ օբյեկտներ են հիշողությունում:
  • Առաջարկվել է զանգվածների կոմպակտ իրականացում, որը պահանջում է 60%-ով ավելի քիչ հիշողություն համանման տվյալների զանգվածների համար (խնայողությունը ձեռք է բերվում շնորհիվ, որ տիպի տվյալները պահվում են յուրաքանչյուր տարրի համար, այլ խմբի տարրերի համար):
  • Ավելացվել է հստակ գլոբալ փոփոխականների հայտարարելու հնարավորությունը ցանկացած կոդի բլոկներում՝ օգտագործելով «global» ключավոր բառը: Եթե բլոկի մեջ արտահայտություններ են նշված «global» ключավոր բառով, բոլոր փոփոխականները պարտադիր պետք է հստակ հայտարարվեն: Եթե «global» հայտարարում պակասում է, ապա իրենց հերթին կիրառվում է արտահայտությունը «global *», որտեղ պահպանվում է նախկին վարվելակերպը, ու բոլոր փոփոխականները մտանում են որպես գլոբալ: Ավելացված է նաև «global<const> *» արտահայտությունը, որտեղ բոլոր անհայտորեն սահմանված գլոբալ փոփոխականները դառնում են միայն ընթերցողական ռեժիմում հասանելի: X = 1 — Օկ, X — գլոբալ փոփոխական, նախկինի նման:
  • «for» ցիկլերում նշված կառավարիչ փոփոխականները այժմ հասանելի են միայն ընթերցելու համար և չեն կարող փոխվել ցիկլի մարմնում: Օրինակ, «for i = 1, 5 do» ցիկլում հայտարարած i փոփոխականը չի կարող փոխվել ցիկլի մարմնում:
  • print ֆունկցի միջոցով լողացող թվեր արտահայտելու ժամանակ այժմ տրվում են բավականաչափ թվեր՝ ճիշտ հակառակ փոփոխության վերածման համար, որպեսզի ստացվի գրանցման հիմքում:
  • Պատրաստվում է կառուցող աղյուսակների ներթափանցման մակարդակների թույլատրելի թիվը:
  • Ավելացված է table.create(nseq, nrec) գործառույթը դատարկ աղյուսակներ ավելացնելու և նշված տարրերի թվի համար հիշողություն նախապատրաստելու համար:
  • utf8.offset գործառույթում ապահովվում է ոչ միայն նշանի սկզբի բիթի տեղաշարժը, այլև նշանի վերջի դիրքը:
  • Ավելացվել է արտաքին տողերի ստեղծման աջակցություն, որոնք տեղակայված են Lua-ի կողմից չկառավարվող հիշողությունում:
  • Ավելացված է luaL_openselectedlibs գործառույթը ընտրած գրադարանը բեռնելու համար, ինչպես նաև luaL_makeseed գործառույթը, որը կազմավորում է seed-սերմը lua_newstate գործառույթի համար:
  • lua.c-ում ապահովվում է 'readline' գրադարանի դինամիկ բեռնում, եթե այն առկա է համակարգում (եթե գրադարանը առկա է, ապա այն բեռնվում է և ստացվում են տողերի խմբագրման գործառույթները):
  • Նավթախումբը ներառում է նախապատրաստված բայթկոդի բեռնման ժամանակ հիշողության տնտեսման օպտիմիզացում — Lua-ն այժմ կարող է կրկնօրինակել որոշ ներքին կառուցվածքների հիշողությունը, առանց կրկնիչ բայթկոդ բեռնելու ժամանակ կրկնօրինակման:
  • Կրկնակի օգտագործվում են բոլոր տողերը 'dump' և 'undump' գործողություններում:
  • Աջակցող բուֆերներում գործում է բուֆերների կրկնակի օգտագործումը (թարմացում առանց նոր բուֆերի բարելավման) վերջնական տողի ստեղծման ժամանակ:

Ընտանիք: opennet.ru

Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով 🔥 Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster