{"id":102211,"date":"2021-11-04T15:37:01","date_gmt":"2021-11-04T13:37:01","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/otkryt-kod-luau-varianta-yazyka-lua-s-proverkoj-tipov"},"modified":"2021-11-04T15:37:01","modified_gmt":"2021-11-04T13:37:01","slug":"otkryt-kod-luau-varianta-yazyka-lua-s-proverkoj-tipov","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/news\/otkryt-kod-luau-varianta-yazyka-lua-s-proverkoj-tipov","title":{"rendered":"Luau koodi avamine, t\u00fc\u00fcbituvastusega Lua keele variant","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>On teatatud l\u00e4htekoodide avamisest ja esimese eraldi v\u00e4ljaande v\u00e4ljaandmisest Luau programmeerimiskeelest, mis arendab edasi Lua keelt ja on tagurpidi \u00fchilduv Lua 5.1-ga. Luau keel on peamiselt m\u00f5eldud skriptit\u00f6\u00f6tluse sisestamiseks rakendustesse ning on suunatud k\u00f5rgele j\u00f5udlusele ja madalale ressursikasutusele. Projekti kood on kirjutatud C++ keeles ja avatud MIT litsentsi all.    <\/p>\n<p>Luau laiendab Lua-d t\u00fcbituvastuse v\u00f5imalustega ja m\u00f5ne uue s\u00fcntaktilise konstruktsiooniga, n\u00e4iteks stringi literaalidega. Keel on tagurpidi \u00fchilduv Lua 5.1-ga ja osaliselt uuemate versioonidega. Toetatakse Lua Runtime API-d, mis v\u00f5imaldab Luau-d kasutada olemasoleva koodi ja sidumistega. Keelte runtime p\u00f5hineb tugevalt \u00fcmber t\u00f6\u00f6tatud Lua runtime 5.1 koodil, kuid t\u00f5lgendaja on t\u00e4ielikult \u00fcmber kirjutatud. Arenduses on kasutatud m\u00f5ningaid uusi optimeerimistehnikaid, mis on v\u00f5imaldanud saavutada k\u00f5rgemat j\u00f5udlust v\u00f5rreldes Lua-ga.      <\/p>\n<p>Projekt on v\u00e4lja t\u00f6\u00f6tatud Roblox'i poolt ning seda kasutatakse m\u00e4nguplatvormi, m\u00e4ngude ja kasutajarakenduste koodis, sealhulgas Roblox Studio redigeerijas. Alguses arendati Luau-d suletud uste taga, kuid l\u00f5puks otsustati viia see avatud projektide hulka, et v\u00f5imaldada edasist koost\u00f6\u00f6d kogukonna osalusel.    <\/p>\n<p>P\u00f5hiomadused:  <\/p>\n<ul>\n<li class=\"l\">  Asteomaatiline t\u00fc\u00fcpide s\u00fcsteem (Gradual typing), mis asub d\u00fcnaamilise ja staatilise t\u00fc\u00fcpimise vahel. Luau v\u00f5imaldab staatilise t\u00fc\u00fcpimise kasutamist vastavalt vajadusele, m\u00e4\u00e4rates t\u00fc\u00fcpi teavet spetsiaalsete annotatsioonide kaudu. Pakutakse eeldefineeritud t\u00fc\u00fcpe \u00abany\u00bb, \u00abnil\u00bb, \u00abboolean\u00bb, \u00abnumber\u00bb, \u00abstring\u00bb ja \u00abthread\u00bb. Samuti on s\u00e4ilinud v\u00f5imalus kasutada d\u00fcnaamilist t\u00fc\u00fcpimist, ilma et oleks vaja muutujate ja funktsioonide t\u00fc\u00fcpe selgelt m\u00e4\u00e4ratleda. function foo(x: number, y: string): boolean local k: string = y:rep(x) return k == 'a' end\n<li class=\"l\"> Tugitev stringide literaldid (nagu Lua 5.3-s), nagu \u00ab\\0x**\u00bb (kuusnurkne number), \u00ab\\u{**}\u00bb (Unicode-m\u00e4rk) ja \u00ab\\z\u00bb (stringi l\u00f5pp), samuti numbrite visuaalne vormindamine (saab kirjutada 1_000_000 asemel 1000000), literaldid kuusnurksete (0x\u2026) ja kahendnumbrite (0b\u2026) jaoks.\n<li class=\"l\"> V\u00e4\u00e4rtuse \u00abcontinue\u00bb toetamine, mis t\u00e4iendab olemasolevat v\u00f5tmes\u00f5na \u00abbreak\u00bb, et liikuda j\u00e4rgmisse iteratsiooni ts\u00fcklis.\n<li class=\"l\"> Toetame komposiitm\u00e4\u00e4ramisoperaatoreid (+=, -=, *=, \/=, %=, ^=, ..=).\n<li class=\"l\"> Konditsiooniliste blokki \u00abif-then-else\u00bb toetamine v\u00e4ljendites, mille v\u00e4\u00e4rtus tagastatakse jooksvalt blokki arvutatuna. Lubatud on m\u00e4\u00e4rata suvaline arv v\u00e4ljendeid elseif blokis. local maxValue = if a &gt; b then a else b local sign = if x < 0 then -1 elseif x > 0 then 1 else 0\n<li class=\"l\"> Isolatsioonire\u017eiimi (sandbox) olemasolu, mis v\u00f5imaldab k\u00e4itada usaldamatut koodi. Antud v\u00f5imalust v\u00f5ib kasutada, et k\u00e4itada k\u00f5rvuti oma koodi ja kolmandate osapoolte arendajate kirjutatud koodi, n\u00e4iteks raamatukogusid, mille turvalisuse osas ei saa kindel olla.\n<li class=\"l\"> Standardteegi piirang, kust on eemaldatud funktsioonid, mis v\u00f5ivad potentsiaalselt tekitada turvaprobleeme. N\u00e4iteks on standardkomplektist v\u00e4lja j\u00e4etud teegid \u00abio\u00bb (failide juurdep\u00e4\u00e4s ja protsesside k\u00e4ivitamine), \u00abpackage\u00bb (failide juurdep\u00e4\u00e4s ja moodulite laadimine), \u00abos\u00bb (eemaldatud failide juurdep\u00e4\u00e4su ja keskkonnamuutujate muutmise funktsioonid), \u00abdebug\u00bb (ebaohutu vahem\u00e4lu k\u00e4sitsemine), \u00abdofile\u00bb ja \u00abloadfile\u00bb (failis\u00fcsteemi juurdep\u00e4\u00e4s).\n<li class=\"l\"> Pakutakse t\u00f6\u00f6riistu staatiliseks koodi anal\u00fc\u00fcsiks, vigade leidmiseks (linter) ja t\u00fc\u00fcpide \u00f5ige kasutuse kontrollimiseks.\n<li class=\"l\"> Oma k\u00f5rge j\u00f5udlusega parser, baytkoodi t\u00f5lkija ja kompilaator. Luau ei toeta veel JIT-kompileerimist, kuid v\u00e4idetakse, et Luau t\u00f5lkija on m\u00f5nes olukorras j\u00f5udluse osas v\u00f5rreldav LuaJIT-iga.            <\/ul>\n<p>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=56098\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043e \u043e\u0431 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u0443\u0441\u043a\u0430 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Luau, \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u044f\u0437\u044b\u043a\u0430 Lua \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0433\u043e \u0441 Lua 5.1. \u042f\u0437\u044b\u043a Luau \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0434\u043b\u044f \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u043d\u0430\u0446\u0435\u043b\u0435\u043d \u043d\u0430 \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. \u041a\u043e\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 C++ \u0438 \u043e\u0442\u043a\u0440\u044b\u0442 \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 MIT. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-102211","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043e \u043e\u0431 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u0443\u0441\u043a\u0430 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Luau, \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u044f\u0437\u044b\u043a\u0430 Lua \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0433\u043e \u0441 Lua 5.1.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/news\/otkryt-kod-luau-varianta-yazyka-lua-s-proverkoj-tipov\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041e\u0442\u043a\u0440\u044b\u0442 \u043a\u043e\u0434 Luau, \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u044f\u0437\u044b\u043a\u0430 Lua \u0441 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u0442\u0438\u043f\u043e\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043e \u043e\u0431 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u0443\u0441\u043a\u0430 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Luau, \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u044f\u0437\u044b\u043a\u0430 Lua \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0433\u043e \u0441 Lua 5.1.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/news\/otkryt-kod-luau-varianta-yazyka-lua-s-proverkoj-tipov\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2021-11-04T13:37:01+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-11-04T13:37:01+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Avatud Luau kood, t\u00fc\u00fcbi kontrolliga Lua variandid | ProHoster","description":"Teatati, et avati l\u00e4htekood ja avaldati esimene eraldi v\u00e4ljaanne programmeerimiskeelest Luau, mis arendab edasi keelt Lua ning on tagasi \u00fchilduv Lua 5.1-ga.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/news\/otkryt-kod-luau-varianta-yazyka-lua-s-proverkoj-tipov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041e\u0442\u043a\u0440\u044b\u0442 \u043a\u043e\u0434 Luau, \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u044f\u0437\u044b\u043a\u0430 Lua \u0441 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u0442\u0438\u043f\u043e\u0432 | ProHoster","og:description":"\u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043e \u043e\u0431 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u0443\u0441\u043a\u0430 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Luau, \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u044f\u0437\u044b\u043a\u0430 Lua \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0433\u043e \u0441 Lua 5.1.","og:url":"https:\/\/prohoster.info\/et\/blog\/news\/otkryt-kod-luau-varianta-yazyka-lua-s-proverkoj-tipov","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2021-11-04T13:37:01+00:00","article:modified_time":"2021-11-04T13:37:01+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"102211","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-11-04 13:37:30","updated":"2022-10-08 06:05:36","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/102211","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=102211"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/102211\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=102211"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=102211"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=102211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}