Stòr fosgailte airson Luau, tionndadh seòrsa sgrùdaidh den chànan Lua

Dh’ ainmich iad stòr fosgailte agus foillseachadh a’ chiad fhoillseachadh leis fhèin de chànan prògramadh Luau, a’ leantainn air adhart le leasachadh cànan Lua agus air ais co-chosmhail ri Lua 5.1. Tha Luau air a dhealbhadh gu sònraichte airson einnseanan sgrìobhaidh a fhighe a-steach do thagraidhean agus tha e ag amas air àrd-choileanadh agus caitheamh ghoireasan ìosal a choileanadh. Tha còd a’ phròiseict sgrìobhte ann an C ++ agus tha e fosgailte fo chead MIT.

Bidh Luau a’ leudachadh Lua le comasan sgrùdaidh seòrsa agus cuid de chruthan syntactic ùra leithid litrichean sreang. Tha an cànan co-chòrdail air ais le Lua 5.1 agus ann am pàirt le dreachan nas ùire. Tha an Lua Runtime API a’ faighinn taic, a’ toirt cothrom dhut Luau a chleachdadh leis a’ chòd agus na ceanglachan a tha ann mu thràth. Tha an ùine ruith cànain stèidhichte air còd Lua runtime 5.1 a chaidh ath-obrachadh gu mòr, ach tha an eadar-theangair air ath-sgrìobhadh gu tur. Rè leasachadh, chaidh cuid de dhòighean optimization ùra a chleachdadh gus coileanadh nas àirde a choileanadh an taca ri Lua.

Chaidh am pròiseact a leasachadh le Roblox agus tha e air a chleachdadh ann an còd àrd-ùrlar cluich, geamannan, agus tagraidhean luchd-cleachdaidh a ’chompanaidh seo, a’ toirt a-steach neach-deasachaidh Roblox Studio. An toiseach, chaidh Luau a leasachadh air cùl dhorsan dùinte, ach aig a 'cheann thall chaidh co-dhùnadh a ghluasad chun roinn de phròiseactan fosgailte airson tuilleadh co-leasachadh le com-pàirt na coimhearsnachd.

Prìomh fheartan:

  • A’ taipeadh mean air mhean, a’ fuireach ann an suidheachadh eadar-mheadhanach eadar clò-sgrìobhadh fiùghantach agus statach. Leigidh Luau leat clò-sgrìobhadh statach a chleachdadh mar a dh’ fheumar le bhith a’ sònrachadh fiosrachadh seòrsa tro notaichean sònraichte. Tha na seòrsaichean togte “sam bith”, “nil”, “boolean”, “àireamh”, “string” agus “snàthainn” air an toirt seachad. Aig an aon àm, tha an comas air clò-sgrìobhadh fiùghantach a chleachdadh gun a bhith a’ mìneachadh an seòrsa caochladairean agus gnìomhan gu soilleir. gnìomh foo (x: àireamh, y: sreang): boolean ionadail k: sreang = y: rep (x) tilleadh k == crìoch “a”
  • Taic airson litrichean teud (mar ann an Lua 5.3) leithid “\0x**” (àireamh heicsidheach), “\u{**}” (caractar Unicode) agus “\z” (deireadh na loidhne), a bharrachd air an comas fòrmatadh àireamhan fhaicinn (faodaidh tu 1_000_000 a sgrìobhadh an àite 1000000), litrichean airson hexadecimal (0x...) agus àireamhan dà-chànanach (0b....).
  • Taic don abairt “lean air adhart”, a’ cur ris a’ phrìomh fhacal “briseadh” a th’ ann mar-thà, gus leum gu tionndadh lùb ùr.
  • Taic do ghnìomhaichean sònrachaidh toinnte (+=, -=, *=, /=, %=, ^=, ..=).
  • Taic airson a bhith a’ cleachdadh bhlocaichean cumhach “ma tha sin eile” ann an cruth abairtean a thilleas an luach a chaidh a thomhas nuair a thèid am bloc a chur gu bàs. Faodaidh tu àireamh neo-riaghailteach de abairtean eile a shònrachadh ann am bloc. ionadail maxValue = ma tha a> b an uairsin b soidhne ionadail eile = ma tha x < 0 an uairsin -1 eileif x> 0 an uairsin 1 eile 0
  • Tha làthaireachd modh aonaranachd (bogsa gainmhich), a leigeas leat còd neo-earbsach a ruith. Faodar am feart seo a chleachdadh gus an cur air bhog a chuir air dòigh taobh ri taobh den chòd agad fhèin agus còd a sgrìobh leasaiche eile, mar eisimpleir, leabharlannan treas-phàrtaidh nach urrainnear a bhith cinnteach airson sàbhailteachd.
  • Cuingealachadh air an leabharlann àbhaisteach às an deach gnìomhan a dh’ fhaodadh duilgheadasan tèarainteachd a chruthachadh a thoirt air falbh. Mar eisimpleir, na leabharlannan “io” (ruigsinneachd air faidhlichean agus pròiseasan cur air bhog), “pasgan” (faighinn cothrom air faidhlichean agus luchdachadh mhodalan), “os” (gnìomhan airson faighinn gu faidhlichean agus caochladairean àrainneachd atharrachadh), “debug” (obrachadh mì-shàbhailte le cuimhne) , “dofile” agus “loadfile” (ruigsinneachd FS).
  • A 'toirt seachad innealan airson mion-sgrùdadh còd statach, a' comharrachadh mhearachdan (linter) agus a 'sgrùdadh cleachdadh ceart de sheòrsachan.
  • Parser àrd-choileanadh fhèin, eadar-theangair bytecode agus inneal-cruinneachaidh. Chan eil Luau fhathast a’ toirt taic do chruinneachadh JIT, ach thathar ag agairt gu bheil eadar-theangair Luau gu math coimeasach ann an coileanadh ri LuaJIT ann an cuid de shuidheachaidhean.

Source: fosgailtenet.ru

Cuir beachd ann