Gipahibalo na ang open source ug publikasyon sa unang standalone nga pagpagawas sa Luau programming language. Kini nga pinulongan nagpadayon sa pag-uswag sa Lua ug backwards compatible sa Lua 5.1. Ang Luau panguna nga gidisenyo alang sa pag-embed sa mga scripting handler sa mga aplikasyon ug nagtumong sa pagkab-ot sa taas nga performance ug ubos nga konsumo sa resource. Ang code sa proyekto gisulat sa C++ ug open sourced ubos sa lisensya sa MIT.
Gipalapdan sa Luau ang Lua gamit ang mga kapabilidad sa pagsusi sa tipo ug pipila ka bag-ong mga syntactic construct, sama sa string literals. Ang pinulongan kay backwards compatible sa Lua 5.1 ug partially sa mga bag-ong bersyon. Gisuportahan ang Lua Runtime API, nga nagtugot sa Luau nga magamit uban sa kasamtangang code ug bindings. Ang runtime sa pinulongan gibase sa usa ka giusab nga Lua 5.1 runtime, apan ang interpreter hingpit nga giusab. Daghang bag-ong mga teknik sa pag-optimize ang gigamit atol sa pag-develop, nga miresulta sa mas maayong performance kon itandi sa Lua.
Ang proyekto gihimo sa Roblox ug gigamit sa code sa gaming platform, mga dula, ug mga aplikasyon sa tiggamit sa kompanya, lakip ang Roblox Studio editor. Sa sinugdanan, ang Luau gihimo nga walay daghang tawo, apan sa kadugayan nakahukom nga ibalhin kini ngadto sa usa ka open-source nga proyekto alang sa dugang nga kolaboratibong pag-uswag uban ang partisipasyon sa komunidad.
ОООО о: о о о:
- Hinay-hinay nga pag-type, nga nag-okupar sa tunga-tunga tali sa dynamic ug static typing. Gitugotan sa Luau ang paggamit sa static typing kung gikinahanglan, nga nagtino sa impormasyon sa tipo pinaagi sa espesyal nga mga anotasyon. Gihatag ang mga built-in nga tipo: "any," "nil," "boolean," "number," "string," ug "thread." Gisuportahan usab ang dynamic typing nga wala’y klaro nga pagtino sa mga tipo sa mga variable ug mga function. function foo(x: number, y: string): boolean local k: string = y:rep(x) return k == "a" end
- Suporta para sa mga string literal (sama sa Lua 5.3), sama sa "\0x**" (hexadecimal number), "\u{**}" (Unicode character) ug "\z" (katapusan sa linya), ingon man ang abilidad sa biswal nga pag-format sa mga numero (mahimo nimong isulat ang 1_000_000 imbes nga 1000000), mga literal para sa hexadecimal (0x…) ug binary numbers (0b…….).
- Suporta para sa ekspresyong "continue", nga mokomplemento sa kasamtangang keyword nga "break", aron mobalhin ngadto sa bag-ong loop iteration.
- Suporta para sa mga compound assignment operator (+=, -=, *=, /=, %=, ^=, ..=).
- Suporta sa paggamit sa "if-then-else" conditional blocks sa porma sa mga ekspresyon nga nagbalik sa bili nga gikalkulo atol sa pagpatuman sa bloke. Mahimong ipiho ang usa ka gidaghanon sa mga ekspresyon sa elseif sa usa ka bloke. local maxValue = kon a > b unya a else b local sign = kon x < 0 unya -1 elseif x > 0 unya 1 else 0
- Ang presensya sa sandbox mode nagtugot sa dili kasaligan nga code nga modagan. Kini nga bahin magamit sa pagpadagan sa imong kaugalingong code uban sa code nga gisulat sa uban, sama sa mga third-party libraries kansang seguridad dili magarantiya.
- Usa ka standard nga restriksyon sa librarya nga nagtangtang sa mga gimbuhaton nga posibleng makamugna og mga isyu sa seguridad. Pananglitan, ang mosunod nga mga librarya gitangtang gikan sa standard nga set: "io" (pag-access sa file ug paglansad sa proseso), "package" (pag-access sa file ug pagkarga sa module), "os" (gitangtang ang mga gimbuhaton sa pag-access sa file ug pagbag-o sa environment variable), "debug" (dili luwas nga pagdumala sa memorya), ug "dofile" ug "loadfile" (pag-access sa file system).
- Naghatag og mga himan para sa static code analysis, error detection (linter), ug type validation.
- Kaugalingong high-performance parser, bytecode interpreter, ug compiler sa Luau. Ang Luau wala pa mosuporta sa just-in-time (JIT) compilation, apan giangkon nga ang Luau interpreter ikatandi sa performance sa LuaJIT sa pipila ka mga sitwasyon.
Source: opennet.ru
