Kodi Luau, një variant i gjuhës Lua me verifikimin e tipeve, është hapur

Është shpallur hapja e kodit burimor dhe publikimi i numrit të parë të veçantë të gjuhës së programimit Luau, që vazhdon zhvillimin e gjuhës Lua dhe është përshtatshmërish me Lua 5.1. Gjuha Luau është kryesisht e destinuar për integrimin e trajtuesve të skripteve në aplikacione dhe synon të arrijë performancë të lartë dhe konsum të ulët burimesh. Kodi i projektit është shkruar në C++ dhe është hapur me licencën MIT.

Luau zgjerohet me mundësitë për verifikimin e tipeve dhe disa konstrukte të reja sintaksore, si literalet string. Gjuha është përshtatshme edhe me Lua 5.1 dhe pjesërisht me versione më të reja. Mbështetet API e Lua Runtime, që lejon përdorimin e Luau me kodin dhe lidhjet (binding) ekzistuese. Runtime i gjuhës bazohet në një kod thelbësisht të përmirësuar të Lua runtime 5.1, por interpretuese është shkruar plotësisht nga e para. Në zhvillim janë përdorur disa teknika të reja optimizimi, që kanë mundësuar arritjen e performancës më të lartë krahasuar me Lua.

Projekti është zhvilluar nga Roblox dhe përdoret në kodin e platformës së lojërave, lojërave, dhe aplikacioneve të përdoruesve të këtij kompania, duke përfshirë editorin Roblox Studio. Fillimisht Luau është zhvilluar pas dyerve të mbyllura, por në fund u vendos që ta kalojë në statusin e projekteve të hapura për zhvillim të përbashkët me pjesëmarrjen e komunitetit.

Karakteristikat kryesore:

  • Sistemi i tipave gradual (Gradual typing), që ndodhet në një pozita ndërmjet tipizimit dinamik dhe atij statik. Luau lejon përdorimin e tipizimit statik sipas nevojës, duke treguar informacionin mbi tipet përmes anotacioneve të veçanta. Ofron tipe të integruara si «any», «nil», «boolean», «number», «string» dhe «thread». Në të njëjtën kohë, ruhet mundësia e përdorimit të tipizimit dinamik pa përcaktuar qartë tipet e variablave dhe funksioneve. function foo(x: number, y: string): boolean local k: string = y:rep(x) return k == «a» end
  • Mbështetje për literalet string (si në Lua 5.3), si «\0x**» (numri hexadecimal), «\u{**}» (simboli Unicode) dhe «\z» (fundi i linjës), si dhe mundësia e formatimit të dukshëm të numrave (mund të shkruhet 1_000_000 në vend të 1000000), literalet për numrat hexadecimal (0x…) dhe binar (0b…….).
  • Mbështetje për shprehjen «continue», që plotëson fjalën kyçe ekzistuese «break», për të kaluar në një iteracion të ri në cikël.
  • Mbështetje për operatorët e përbërë të caktimit (+=, -=, *=, /=, %=, ^=, ..=).
  • Mbështetje për përdorimin e blloqeve kushtore «if-then-else» në formën e shprehjeve që kthejnë një vlerë, e cila llogaritet gjatë ekzekutimit të bllokut. Lejohet caktimi i numrit të rastësishëm të shprehjeve elseif në bllok. local maxValue = if a > b then a else b local sign = if x 0 then 1 else 0
  • Prania e një regjimi izolimi (sandbox) që lejon ekzekutimin e kodit të pa besueshëm. Kjo mundësi mund të përdoret për të organizuar ekzekutimin paralel të kodit tuaj dhe kodit të shkruar nga zhvillues të tjerë, për shembull, biblioteka të jashtme për sigurimin e të cilave nuk mund të merret përgjegjësi.
  • Kufizimi i bibliotekës standarde nga e cila janë eliminuar funksionet që potencialisht mund të krijojnë probleme me sigurinë. Për shembull, nga grupi standard janë përjashtuar bibliotekat «io» (qasje në skedarë dhe ekzekutimin e proceseve), «package» (qasje në skedarë dhe ngarkimin e moduleve), «os» (janë eliminuar funksionet e qasjes në skedarë dhe ndryshimi i variablave të ambientit), «debug» (puna e pasigurt me memorien), «dofile» dhe «loadfile» (qasje në FS).
  • Sigurimi i mjeteve për analizën statike të kodit, identifikimin e gabimeve (linter) dhe verifikimin e saktësisë së përdorimit të tipeve.
  • Parser, interpretuese dhe përkthyes me performancë të lartë. Luau aktualisht nuk mbështet JIT-kompilimin, por pohon se interpretuese e Luau në disa raste është e krahasueshme me performancën e LuaJIT.

Burimi: opennet.ru

Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster