{"id":379837,"date":"2024-06-25T09:00:14","date_gmt":"2024-06-25T09:00:14","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=379837"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=379837","title":{"rendered":"<span>\u0422\u0432\u043e\u0440\u0438\u043c \u0434\u0438\u0447\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0418\u043b\u0438 \u0447\u0442\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u0435\u0441\u043b\u0438 \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c <strong>\u043e\u0447\u0435\u043d\u044c<\/strong> \u043e\u043f\u044b\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u00a0\u0441\u0432\u043e\u0438\u043c \u0434\u0435\u043b\u043e\u043c. \u0414\u0443\u043c\u0430\u044e \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0442\u0435\u0440\u043c\u0438\u043d \u00ab<a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A1%D0%B2%D0%B5%D1%80%D1%85%D0%BA%D0%B2%D0%B0%D0%BB%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F\" rel=\"noopener noreferrer nofollow\">overqualified<\/a>\u00bb \u0437\u0430\u0438\u0433\u0440\u0430\u0435\u0442 \u0434\u043b\u044f \u0432\u0430\u0441 \u043d\u043e\u0432\u044b\u043c\u0438 \u043a\u0440\u0430\u0441\u043a\u0430\u043c\u0438.<\/p>\n<p>\u041e\u0442\u00a0\u0430\u0432\u0442\u043e\u0440\u043e\u0432, <a href=\"https:\/\/habr.com\/ru\/articles\/821959\/\" rel=\"noopener noreferrer nofollow\">\u0437\u0430\u043f\u0438\u0445\u043d\u0443\u0432\u0448\u0438\u0445 \u0432\u0435\u0431\u2011\u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0430\u00a0\u0432\u0438\u0437\u0438\u0442\u043a\u0443<\/a> \u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/823836\/\" rel=\"noopener noreferrer nofollow\">\u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0445 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u00a0\u043a\u043b\u0438\u043d\u0433\u043e\u043d\u0441\u043a\u0438\u0439<\/a>\u00a0\u2014 \u0434\u0435\u0440\u0436\u0438\u043c \u043c\u0430\u0440\u043a\u0443!<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/aef\/c13\/aae\/aefc13aaea0bc50a6d4016afa8e1b0a0.png\" alt=\"\u041f\u044f\u0442\u044c \u043c\u0438\u043d\u0443\u0442 \u0432\u0434\u0443\u043c\u0447\u0438\u0432\u043e\u0433\u043e \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043d\u0435\u0440\u0432\u043d\u043e\u043c\u0443 \u0441\u0440\u044b\u0432\u0443, \u044f \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0434\u0438\u043b.\" title=\"\u041f\u044f\u0442\u044c \u043c\u0438\u043d\u0443\u0442 \u0432\u0434\u0443\u043c\u0447\u0438\u0432\u043e\u0433\u043e \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043d\u0435\u0440\u0432\u043d\u043e\u043c\u0443 \u0441\u0440\u044b\u0432\u0443, \u044f \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0434\u0438\u043b.\" width=\"1366\" height=\"768\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/aef\/c13\/aae\/aefc13aaea0bc50a6d4016afa8e1b0a0.png\"\/><\/p>\n<div><figcaption>\u041f\u044f\u0442\u044c \u043c\u0438\u043d\u0443\u0442 \u0432\u0434\u0443\u043c\u0447\u0438\u0432\u043e\u0433\u043e \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043d\u0435\u0440\u0432\u043d\u043e\u043c\u0443 \u0441\u0440\u044b\u0432\u0443, \u044f \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0434\u0438\u043b.<\/figcaption><\/div>\n<\/figure>\n<h3>\u041d\u0430\u0448 \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u044b\u0439 \u0434\u0438\u043a\u0438\u0439 \u0432\u0435\u0431<\/h3>\n<p>\u0427\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0432 \u0433\u043e\u043b\u043e\u0432\u0443,\u00a0\u043a\u043e\u0433\u0434\u0430 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u043e \u00ab\u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435\u00bb? \u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0430\u0439\u0442\u043e\u0432 \u0438\u043b\u0438 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439? <\/p>\n<blockquote>\n<p>\u041b\u0435\u043d\u0434\u0438\u043d\u0433\u0438, \u0441\u0430\u0439\u0442\u044b-\u0432\u0438\u0437\u0438\u0442\u043a\u0438, \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043c\u0430\u0433\u0430\u0437\u0438\u043d\u044b \u0438\u043b\u0438 \u043a\u0430\u043a\u0438\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0432\u0435\u0431-\u043f\u043e\u0440\u0442\u0430\u043b\u044b <s>\u0432 \u0430\u0434<\/s>.<\/p>\n<\/blockquote>\n<p>\u0421\u0430\u043c\u044b\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0435 \u0438\u0437 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u0432\u0441\u043f\u043e\u043c\u043d\u044f\u0442 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Progressive_web_app\" rel=\"noopener noreferrer nofollow\">PWA<\/a> \u0438\u043b\u0438\u00a0\u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c <a href=\"https:\/\/reactnative.dev\/\" rel=\"noopener noreferrer nofollow\">React Native<\/a> \u0441\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Flutter_(software)\" rel=\"noopener noreferrer nofollow\">Flutter<\/a>\u00a0\u2014 \u043f\u0440\u0435\u0434\u0435\u043b \u043f\u043e\u043b\u0435\u0442\u0430 \u0444\u0430\u043d\u0442\u0430\u0437\u0438\u0438 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430.<\/p>\n<p>\u0427\u0442\u043e \u043f\u043b\u043e\u0445\u043e: <\/p>\n<blockquote>\n<p>\u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0447\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044f\u0435\u0442 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430 \u043e\u0442\u00a0\u0432\u0435\u043b\u0438\u043a\u0438\u0445 \u0441\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0439 \u044d\u0442\u043e \u0435\u0433\u043e \u0444\u0430\u043d\u0442\u0430\u0437\u0438\u044f\u00a0\u2014 \u0442\u043e\u0447\u043d\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e,\u00a0\u0447\u0442\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c.<\/p>\n<\/blockquote>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0435\u0439\u0447\u0430\u0441 \u043c\u044b\u00a0\u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c \u0432\u0430\u0448\u0435 \u0432\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u00a0\u2014 \u0432\u00a0\u043f\u0440\u0435\u0432\u0435\u043d\u0442\u0438\u0432\u043d\u044b\u0445 \u043c\u0435\u0440\u0430\u0445, <s>\u0434\u0440\u0435\u043b\u044c\u044e \u0438\u00a0\u0434\u044b\u0440\u043e\u043a\u043e\u043b\u043e\u043c<\/s> \u043f\u043e\u0434\u0440\u0443\u0447\u043d\u044b\u043c\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0432\u0430\u043c\u0438 \u0448\u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 <strong>\u043e\u0442\u0431\u043e\u0440\u043d\u0435\u0439\u0448\u0435\u0439 \u0434\u0438\u0447\u0438<\/strong>\u00a0\u2014 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0445 \u0441\u0430\u043c\u044b\u0435 \u0431\u0435\u0437\u0443\u043c\u043d\u044b\u0435 \u0438\u0434\u0435\u0438 \u0441\u00a0\u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u043f\u043e\u043b\u043d\u0435 \u043e\u0431\u044b\u0434\u0435\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430.<\/p>\n<blockquote>\n<p>\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043d\u0435\u00a0\u043f\u044b\u0442\u0430\u0439\u0442\u0435\u0441\u044c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043e <strong>\u0442\u0430\u043a\u043e\u043c<\/strong> \u043d\u0430\u00a0\u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e \u0432 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u0445\u00a0\u2014 \u043f\u043e\u0436\u0430\u043b\u0435\u0439\u0442\u0435 \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e\u0435\u0440\u0430 \u0438 \u0435\u0433\u043e \u043d\u0435\u0436\u043d\u0443\u044e \u043f\u0441\u0438\u0445\u0438\u043a\u0443.<\/p>\n<\/blockquote>\n<p>\u0410\u0432\u0442\u043e\u0440 \u043a\u043e\u0433\u0434\u0430\u2011\u0442\u043e \u0434\u0430\u0432\u043d\u043e (\u043a\u043e\u0433\u0434\u0430 \u0435\u0449\u0435 \u0445\u043e\u0434\u0438\u043b \u043f\u043e\u00a0\u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u043c) \u0434\u043e\u0432\u0435\u043b \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e\u0435\u0440\u0430 \u0434\u043e\u00a0\u043d\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u0441\u0440\u044b\u0432\u0430, \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u00a0\u0434\u0435\u0442\u0430\u043b\u044f\u0445 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0432 \u043a\u0430\u043a\u00a0<em>\u043d\u0430\u00a0\u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435<\/em> \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u0444\u043e\u0440\u043c\u0443 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u00a0\u2014 \u043f\u0440\u043e <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Status\/100\" rel=\"noopener noreferrer nofollow\">HTTP 100\u00a0Continue<\/a>, \u0440\u0430\u0437\u0431\u043e\u0440 MIME \u0438 \u043f\u0440\u043e\u0447\u0438\u0435 \u0440\u0430\u0434\u043e\u0441\u0442\u0438.<\/p>\n<p>\u041b\u044e\u0434\u0438 \u0442\u043e\u0433\u0434\u0430 \u0431\u044b\u043b\u0438 \u0441\u0438\u043b\u044c\u043d\u043e \u043a\u0440\u0435\u043f\u0447\u0435 \u0433\u043e\u043b\u043e\u0432\u043e\u0439 \u0447\u0435\u043c \u0441\u0435\u0439\u0447\u0430\u0441, \u0432 \u043d\u044b\u043d\u0435\u0448\u043d\u0438\u0445 \u0440\u0435\u0430\u043b\u0438\u044f\u0445 \u043c\u043e\u0433\u0443\u0442 \u0438 \u043f\u043e\u0431\u0438\u0442\u044c \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e.<\/p>\n<h2>\u0414\u0438\u0447\u044c \u043f\u0435\u0440\u0432\u0430\u044f: HTMLang<\/h2>\n<p>\u041d\u0435 \u0441\u043c\u043e\u0433 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u044c \u0436\u0438\u0437\u043d\u0435\u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044e\u0449\u0435\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043e\u0442 \u0430\u0432\u0442\u043e\u0440\u0430 \u044d\u0442\u043e\u0433\u043e <a href=\"https:\/\/github.com\/tsoding\/HTMLang\/tree\/master\" rel=\"noopener noreferrer nofollow\">\u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/a>:<\/p>\n<blockquote>\n<p><em>They were laughing that HTML was not a real programming language&#8230; WHO&#187;S LAUGHING NOW!!11<\/em><\/p>\n<\/blockquote>\n<p>\u0414\u0430, \u044d\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u043e\u00a0\u0447\u0442\u043e \u0432\u044b\u00a0\u043f\u043e\u0434\u0443\u043c\u0430\u043b\u0438\u00a0\u2014 \u043a\u0442\u043e-\u0442\u043e \u0431\u0443\u0434\u0443\u0447\u0438 \u0441\u0438\u043b\u044c\u043d\u043e \u043d\u0435\u00a0\u0432\u00a0\u0434\u0443\u0445\u0435 \u0432\u0437\u044f\u043b \u043e\u0431\u0449\u0438\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 HTML \u0438\u00a0\u0441\u043e\u0437\u0434\u0430\u043b \u043d\u0430 \u0435\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u043d\u0430\u043c\u0435\u043d\u0438\u0442\u043e\u0433\u043e <a href=\"https:\/\/en.wikipedia.org\/wiki\/Fizz_buzz\" rel=\"noopener noreferrer nofollow\">FizzBuzz<\/a>:<\/p>\n<pre><code class=\"xml\">&lt;!DOCTYPE html> &lt;html>   &lt;head>     &lt;title>FizzBuzz&lt;\/title>   &lt;\/head>   &lt;body>     &lt;h3>Look into the DevTools Console&lt;\/h3>     &lt;htmlang style=\"display: none;\">       &lt;call target=\"console.log\">&lt;s>Generating FizzBuzz...&lt;\/s>&lt;\/call>       &lt;for>&lt;v>i&lt;\/v> &lt;n>1&lt;\/n> &lt;n>100&lt;\/n>         &lt;cond>           &lt;when>             &lt;eq>               &lt;mod>                 &lt;v>i&lt;\/v>                 &lt;n>15&lt;\/n>               &lt;\/mod>               &lt;n>0&lt;\/n>             &lt;\/eq>             &lt;call target=\"console.log\">               &lt;s>FizzBuzz&lt;\/s>             &lt;\/call>           &lt;\/when>           &lt;when>             &lt;eq>               &lt;mod>                 &lt;v>i&lt;\/v>                 &lt;n>3&lt;\/n>               &lt;\/mod>               &lt;n>0&lt;\/n>             &lt;\/eq>             &lt;call target=\"console.log\">               &lt;s>Fizz&lt;\/s>             &lt;\/call>           &lt;\/when>           &lt;when>             &lt;eq>               &lt;mod>                 &lt;v>i&lt;\/v>                 &lt;n>5&lt;\/n>               &lt;\/mod>               &lt;n>0&lt;\/n>             &lt;\/eq>             &lt;call target=\"console.log\">               &lt;s>Buzz&lt;\/s>             &lt;\/call>           &lt;\/when>           &lt;else>             &lt;call target=\"console.log\">&lt;v>i&lt;\/v>&lt;\/call>           &lt;\/else>         &lt;\/cond>       &lt;\/for>     &lt;\/htmlang>     &lt;script src=\".\/HTMLang.js\">&lt;\/script>   &lt;\/body> &lt;\/html><\/code><\/pre>\n<p>\u041d\u0435\u00a0\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u0447\u0442\u043e\u00a0\u0431\u0443\u0434\u0435\u0442 \u0435\u0441\u043b\u0438 \u0441\u0430\u043c\u043e\u043c\u0443 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Joel_Spolsky\" rel=\"noopener noreferrer nofollow\">\u0414\u0436\u043e\u044d\u043b\u0443<\/a> \u0432\u044b\u0434\u0430\u0442\u044c \u0435\u0433\u043e\u00a0\u0436\u0435 \u0437\u043d\u0430\u043c\u0435\u043d\u0438\u0442\u044b\u0439 \u00abFizzBuzz\u00bb \u0432\u00a0\u0442\u0430\u043a\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438\u00a0\u2014 \u0435\u0441\u0442\u044c \u0448\u0430\u043d\u0441 \u0447\u0442\u043e\u00a0\u0441\u0442\u0430\u0440\u044b\u0439 \u0441\u0438\u0448\u043d\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0432\u043f\u0430\u0434\u0435\u0442 \u0432\u00a0\u0440\u0435\u043a\u0443\u0440\u0441\u0438\u044e.<\/p>\n<p>\u041a\u0441\u0442\u0430\u0442\u0438 \u043a\u0442\u043e \u0442\u0430\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b <s>\u043d\u0430 \u043b\u0435\u043a\u0446\u0438\u044f\u0445<\/s> \u043f\u0440\u043e \u00ab\u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438\u00bb \u0438\u00a0\u00ab\u043e\u0431\u0449\u0443\u044e \u043d\u0435\u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u00bb?<\/p>\n<blockquote>\n<p><strong>HTML<\/strong> (\u043e\u0442 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA\" rel=\"noopener noreferrer nofollow\">\u0430\u043d\u0433\u043b.<\/a> HyperText Markup Language \u2014 \u00ab\u044f\u0437\u044b\u043a <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%93%D0%B8%D0%BF%D0%B5%D1%80%D1%82%D0%B5%D0%BA%D1%81%D1%82\" rel=\"noopener noreferrer nofollow\">\u0433\u0438\u043f\u0435\u0440\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0439<\/a> \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438\u00bb) \u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u0433\u0438\u043f\u0435\u0440\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%92%D0%B5%D0%B1-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0\" rel=\"noopener noreferrer nofollow\">\u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0446<\/a> \u0432 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%91%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80\" rel=\"noopener noreferrer nofollow\">\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435<\/a>.<\/p>\n<\/blockquote>\n<p>\u0417\u0440\u044f \u0441\u0442\u0430\u0440\u0430\u043b\u0438\u0441\u044c,  \u0430\u0432\u0442\u043e\u0440 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0442\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u043f\u0438\u0448\u0435\u0442 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0442\u0435\u0433\u0430\u043c\u0438 HTML:<\/p>\n<pre><code class=\"xml\">&lt;call target=\"console.log\">         &lt;s>FizzBuzz&lt;\/s> &lt;\/call><\/code><\/pre>\n<p>\u0412\u0441\u0435 \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0435\u00a0\u043d\u0430\u0434\u043e \u043d\u0430\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432, \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0438\u0445 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u00a0\u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u0430\u043c CS\u00a0(\u0432\u0440\u043e\u0434\u0435 \u043a\u0443\u0440\u0441\u0430 \u043f\u043e\u00a0\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432)\u00a0\u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0448\u0442\u0430\u0442\u043d\u044b\u043c <s>\u0433\u043e\u0432\u043d\u043e\u0447\u0438\u0441\u0442\u043e\u043c<\/s> \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u0432\u00a0\u043e\u0431\u044b\u0447\u043d\u043e\u043c \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435\u00a0\u2014 \u043e \u0447\u0435\u043c \u0442\u0430\u043a \u043c\u0435\u0447\u0442\u0430\u044e\u0442 \u0432\u0441\u0435 \u0440\u0435\u043a\u0440\u0443\u0442\u0435\u0440\u044b.<\/p>\n<p>\u041c\u043e\u0436\u0435\u0442 \u0441\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0441\u0442\u044c:<\/p>\n<blockquote>\n<p>\u0432\u00a0\u0441\u0430\u043c\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0447\u0442\u043e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043d\u0430\u00a0\u0447\u0435\u043c-\u0442\u043e \u0442\u0430\u043a\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u043c.<\/p>\n<\/blockquote>\n<p>\u0410\u00a0\u0441\u043e\u0442\u0432\u043e\u0440\u0438\u0432\u0448\u0438\u0439 <strong>\u044d\u0442\u043e<\/strong> \u00ab\u0432\u0435\u043b\u0438\u043a\u0438\u0439 \u0433\u0443\u0440\u0443\u00bb \u0432\u043d\u0435\u0437\u0430\u043f\u043d\u043e \u043f\u0440\u043e\u043f\u0430\u0434\u0435\u0442, \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0432 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u0438 \u043f\u0435\u0440\u0435\u0435\u0445\u0430\u0432 \u0432 \u043f\u043e\u0438\u0441\u043a\u0430\u0445 \u0438\u0441\u0442\u0438\u043d\u044b \u0432 \u0441\u043e\u043b\u043d\u0435\u0447\u043d\u0443\u044e\u00a0<s>\u041a\u0430\u0440\u0430\u0433\u0430\u043d\u0434\u0443<\/s> \u041a\u0430\u043d\u0430\u0434\u0443. <\/p>\n<p>\u041f\u0440\u0435\u0446\u0435\u0434\u0435\u043d\u0442\u044b \u0431\u044b\u043b\u0438.<\/p>\n<h3>\u0414\u0438\u0447\u044c \u0432\u0442\u043e\u0440\u0430\u044f: HTML-as-programming-language<\/h3>\n<p>\u041d\u0435\u0445\u043e\u0440\u043e\u0448\u0438\u0435 \u043c\u044b\u0441\u043b\u0438 \u0442\u0435\u0440\u0437\u0430\u044e\u0442 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u0438\u0445 \u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432\u00a0\u2014 \u0432\u0441\u0435 \u0442\u0430\u00a0\u0436\u0435 \u0438\u0434\u0435\u044f \u00ab<a href=\"https:\/\/github.com\/HTML-as-programming-language\/HTML-as-programming-language\" rel=\"noopener noreferrer nofollow\">\u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430\u00a0HTML<\/a>\u00bb \u043d\u0435\u00a0\u0434\u0430\u0435\u0442 \u043f\u043e\u043a\u043e\u044f \u0438 \u0430\u0432\u0442\u043e\u0440\u0443 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/p>\n<blockquote>\n<p>\u041d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043d \u0437\u0430\u0448\u0435\u043b \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e.<\/p>\n<\/blockquote>\n<p>\u041a\u0430\u043a \u0432\u0430\u043c \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0430 \u0447\u0438\u0441\u0442\u043e\u043c HTML:<\/p>\n<pre><code class=\"xml\">&lt;def multiplyFunction returns=int> &lt;!-- You can create functions -->     &lt;param a type=int\/>     &lt;param b type=int\/>     &lt;return>a * b&lt;\/return> &lt;\/def>  &lt;def main>     &lt;var result type=int>      &lt;!-- Create variables -->         &lt;multiplyFunction>          &lt;!-- and store the result of the function in the variable -->             &lt;param>5&lt;\/param>             &lt;param>6&lt;\/param>         &lt;\/multiplyFunction>     &lt;\/var> &lt;\/def><\/code><\/pre>\n<p>\u0418\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0435\u0439\u0441\u043a\u0430\u044f \u0438\u0441\u0442\u0438\u043d\u0430 \u00ab<a href=\"https:\/\/cyclowiki.org\/wiki\/%D0%9C%D0%BD%D0%BE%D0%B3%D0%B8%D0%B5_%D0%B7%D0%BD%D0%B0%D0%BD%D0%B8%D1%8F_%E2%80%94_%D0%BC%D0%BD%D0%BE%D0%B3%D0%B8%D0%B5_%D0%BF%D0%B5%D1%87%D0%B0%D0%BB%D0%B8\" rel=\"noopener noreferrer nofollow\">\u043c\u043d\u043e\u0433\u0438\u0435 \u0437\u043d\u0430\u043d\u0438\u044f\u00a0\u2014 \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u0435\u0447\u0430\u043b\u0438<\/a>\u00bb\u00a0\u2014 \u043a\u0430\u043a \u0440\u0430\u0437 \u043f\u0440\u043e \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u044f\u00a0\u0431\u044b \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0442\u0435\u043b \u0432\u0441\u0435 \u044d\u0442\u043e \u0437\u0430\u0431\u044b\u0442\u044c \u0438\u00a0\u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043e\u00a0\u043f\u043e\u0434\u043e\u0431\u043d\u043e\u043c \u043d\u0435\u00a0\u0437\u043d\u0430\u0442\u044c.<\/p>\n<p>\u041d\u043e \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u0443\u0436\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043f\u043e\u0437\u0434\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0435\u043b\u044e\u0441\u044c \u043e\u0442\u043a\u0440\u043e\u0432\u0435\u043d\u0438\u044f\u043c\u0438:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/31a\/d2b\/642\/31ad2b6421c3f9ca9e24dbc082ceddca.png\" alt=\"\u0417\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d \u0441 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 HTML, \u043f\u0440\u0430\u0432\u0434\u0430?\" title=\"\u0417\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d \u0441 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 HTML, \u043f\u0440\u0430\u0432\u0434\u0430?\" width=\"836\" height=\"492\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/31a\/d2b\/642\/31ad2b6421c3f9ca9e24dbc082ceddca.png\"\/><\/p>\n<div><figcaption>\u0417\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d \u0441 \u0432\u044b\u0437\u043e\u0432\u043e\u043c <strong>\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 HTML<\/strong>, \u043f\u0440\u0430\u0432\u0434\u0430?<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u0430, \u0432\u044b\u00a0\u0432\u0441\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u043d\u044f\u043b\u0438\u00a0\u2014 \u044d\u0442\u043e \u0441\u0430\u043c\u044b\u0439 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0438\u0437\u00a0HTML \u0432\u00a0\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 ELF64 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a.<\/p>\n<p>\u0410 \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u0430\u043c \u0441\u043e\u0432\u0441\u0435\u043c \u043f\u043e\u043f\u043b\u043e\u0445\u0435\u0435\u0442:<\/p>\n<blockquote>\n<p>To write code for Adruino\/AVR microcontrollers, (Arduino UNO for example) you need to put a DOCTYPE tag in your HTML file.<\/p>\n<\/blockquote>\n<p>For example:<\/p>\n<pre><code class=\"xml\">&lt;!DOCTYPE avr\/atmega328p><\/code><\/pre>\n<p>\u0414\u0430, \u044d\u0442\u043e \u0431\u044b\u043b\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u0434\u0443\u043c\u043a\u0430 \u0430\u0432\u0442\u043e\u0440\u0430\u00a0\u2014 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430<strong> \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u043d\u0430\u00a0HTML<\/strong>, \u044f\u00a0\u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u00a0\u0434\u043e\u0434\u0443\u043c\u044b\u0432\u0430\u044e. <\/p>\n<blockquote>\n<p>\u0423\u0432\u0438\u0434\u0435\u0432 \u0442\u0430\u043a\u043e\u0439 \u0432\u043e\u0442 <code>DOCTYPE<\/code>, \u043e\u0434\u0438\u043d \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0439 \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0430\u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0440\u043e\u0441\u0438\u043b \u043f\u0438\u0442\u044c.<\/p>\n<\/blockquote>\n<p>\u041a\u00a0\u0441\u043b\u043e\u0432\u0443, \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043c\u0430\u0433\u0438\u044f \u0441 <em>#include &lt;stdio.h><\/em> \u043d\u0430\u00a0\u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435 \u0432\u044b\u0448\u0435\u00a0\u0431\u044b\u043b\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u043a\u0430\u043a\u00a0\u0440\u0430\u0437 \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e\u00a0\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f\u00a0\u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u0438 \u043d\u0435\u00a0\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u00a0\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u043a\u043e\u0434 \u043d\u0430\u00a0\u0421\u00a0\u044d\u0442\u043e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0434\u043b\u044f\u00a0\u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u041e\u0421 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/66b\/f58\/5af\/66bf585af37af5ec819b977a02a856b7.jpeg\" alt=\"\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u044d\u0442\u0430 \u0436\u0435\u043b\u0435\u0437\u043a\u0430, \u0435\u0441\u043b\u0438 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0432\u0438\u0434\u0435\u043b\u0438.\" title=\"\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u044d\u0442\u0430 \u0436\u0435\u043b\u0435\u0437\u043a\u0430, \u0435\u0441\u043b\u0438 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0432\u0438\u0434\u0435\u043b\u0438.\" width=\"1500\" height=\"1500\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/66b\/f58\/5af\/66bf585af37af5ec819b977a02a856b7.jpeg\" data-blurred=\"true\"\/><\/p>\n<div><figcaption>\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u044d\u0442\u0430 <a href=\"https:\/\/www.arduino.cc\/\" rel=\"noopener noreferrer nofollow\">\u0436\u0435\u043b\u0435\u0437\u043a\u0430<\/a>, \u0435\u0441\u043b\u0438 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0432\u0438\u0434\u0435\u043b\u0438.<\/figcaption><\/div>\n<\/figure>\n<p>\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u0443 \u043c\u0435\u043d\u044f \u043d\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434 \u0440\u0443\u043a\u043e\u0439 \u0442\u0430\u043a\u043e\u0433\u043e \u0434\u0435\u0432\u0430\u0439\u0441\u0430, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0438 \u0432\u0435\u0441\u044c \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043d\u0435 \u0441\u043c\u043e\u0433.<\/p>\n<p>To compile your AVR\/Arduino code:<\/p>\n<pre><code class=\"bash\">htmlc my-code.html -compile<\/code><\/pre>\n<p>To upload your code to an arduino or other AVR microcontroller:<\/p>\n<pre><code class=\"bash\">htmlc my-code.html -upload<\/code><\/pre>\n<p>\u041d\u043e\u00a0\u0435\u0441\u043b\u0438 \u0441\u0440\u0435\u0434\u0438 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430\u0439\u0434\u0443\u0442\u0441\u044f \u0441\u043c\u0435\u043b\u044b\u0435 \u043b\u044e\u0434\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043c\u043e\u0433\u0443\u0442 <strong>\u044d\u0442\u043e<\/strong> \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u00a0\u2014 \u0441\u00a0\u0440\u0430\u0434\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0447\u0438\u0442\u0430\u044e \u043e\u00a0\u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u044f\u0445.<\/p>\n<p>\u0410 \u043c\u044b \u0442\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0443. <\/p>\n<h3>\u0414\u0438\u0447\u044c \u0442\u0440\u0435\u0442\u044c\u044f: ass-js<\/h3>\n<p>\u0422\u0430\u043a\u0438\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0438 <a href=\"https:\/\/github.com\/streamich\/ass-js\" rel=\"noopener noreferrer nofollow\">\u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u043d\u044b\u043c \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u043e\u043c<\/a>, \u0430\u0432\u0442\u043e\u0440\u044b \u0447\u0435\u0441\u0442\u043d\u043e \u043d\u0430\u043c\u0435\u043a\u0430\u044e\u0442 \u043d\u0430 \u0441\u0443\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u0430:<\/p>\n<blockquote>\n<p>Assembler implemented in JavaScript<\/p>\n<\/blockquote>\n<p>\u041f\u043e\u043b\u0430\u0433\u0430\u044e \u0432\u044b \u0435\u0449\u0435 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u00a0\u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u043b\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430 \u0441\u00a0\u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"https:\/\/en.wikipedia.org\/wiki\/NPM\" rel=\"noopener noreferrer nofollow\">npm<\/a>? \u0427\u0442\u043e\u00a0\u0436, \u0432\u0441\u0435 \u043a\u043e\u0433\u0434\u0430\u2011\u043d\u0438\u0431\u0443\u0434\u044c\u00a0\u0431\u044b\u0432\u0430\u0435\u0442 \u0432\u00a0\u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0430\u0437:<\/p>\n<pre><code class=\"bash\">npm i ass-js<\/code><\/pre>\n<p>\u0410\u00a0\u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u00abHello, world\u00bb:<\/p>\n<pre><code class=\"javascript\">import {X64} from '..\/src\/index';  const asm = X64();  asm.code(_ => {     _('db', 'Hello World!\\n');     _('mov', ['rax', 1]); \/\/ 0x48, 0xC7, 0xC0, 0x01, 0x00, 0x00, 0x00     _('mov', ['rdi', 1]);     _('lea', ['rsi', _('rip').disp(-34)]);     _('mov', ['rdx', 13]);     _('syscall');     _('ret'); });  console.log(asm.toString());<\/code><\/pre>\n<p>\u0422\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u00a0\u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0439\u0442\u0435 \u043b\u044e\u0431\u0438\u043c\u043e\u043c\u0443 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044e \u043a\u0443\u0440\u0441\u0430 \u043f\u043e\u00a0\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0443\u00a0\u2014 \u0434\u0435\u0434\u0443\u0448\u043a\u0435 \u043f\u043e\u043f\u043b\u043e\u0445\u0435\u0435\u0442, \u0441\u0435\u0440\u0434\u0446\u0435 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0432\u044b\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0433\u043e \u043d\u0430\u043a\u0430\u043b\u0430 \u0434\u0438\u0447\u0438.<\/p>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2fc\/169\/565\/2fc169565a32c1d3e5b624f176f26414.png\" alt=\"\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u0432\u044b\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0439 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043d\u0435\u0440\u0430\u0431\u043e\u0447\u0438\u043c \u0438 \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a \u043d\u0430 \u043c\u043e\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u0435.\" title=\"\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u0432\u044b\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0439 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043d\u0435\u0440\u0430\u0431\u043e\u0447\u0438\u043c \u0438 \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a \u043d\u0430 \u043c\u043e\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u0435.\" width=\"1060\" height=\"339\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2fc\/169\/565\/2fc169565a32c1d3e5b624f176f26414.png\"\/><\/p>\n<div><figcaption>\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u0432\u044b\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0439 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043d\u0435\u0440\u0430\u0431\u043e\u0447\u0438\u043c \u0438 \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a \u043d\u0430 \u043c\u043e\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u0435.<\/figcaption><\/div>\n<\/figure>\n<p>\u0417\u0430\u0442\u043e \u0435\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 <a href=\"https:\/\/github.com\/streamich\/ass-js\/blob\/master\/docs\/examples\/hello_world.md\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b<\/a> \u043f\u043e\u00a0\u0440\u0430\u0437\u0431\u043e\u0440\u0443 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0441 \u00abHello world\u00bb, \u0433\u0434\u0435 \u043f\u043e\u00a0\u0448\u0430\u0433\u0430\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u043e \u043a\u0430\u043a \u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<p>\u0415\u0449\u0435 \u043d\u0430\u0448\u0435\u043b\u0441\u044f \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 <a href=\"https:\/\/github.com\/streamich\/ass-js\/issues\/54\" rel=\"noopener noreferrer nofollow\">\u0432\u043e\u043f\u0440\u043e\u0441<\/a> \u043a \u0430\u0432\u0442\u043e\u0440\u0443:<\/p>\n<blockquote>\n<p>I was looking at your project and I couldn&#8217;t figure out a reason as to why I would (and what, rather) implement with this.<\/p>\n<\/blockquote>\n<p>\u041a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u0430\u043a \u0431\u044b \u043d\u0430\u043c\u0435\u043a\u0430\u0435\u0442 \u043d\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0442\u0440\u0435\u0448\u0430 \u0438 \u0443\u0433\u0430\u0440\u0430 \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435. \u041d\u043e\u00a0\u0435\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435\u00a0\u2014 \u043a\u00a0\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 <s>\u043e\u0442\u0431\u0438\u0442\u043e\u043c\u0443<\/s> \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0443.<\/p>\n<h3>\u0414\u0438\u0447\u044c \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0430\u044f: ts2c<\/h3>\n<p><a href=\"https:\/\/github.com\/andrei-markeev\/ts2c\" rel=\"noopener noreferrer nofollow\">\u0422\u0443\u0442<\/a> \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e:<\/p>\n<blockquote>\n<p>Produces readable C89 code from JS\/TS code.<\/p>\n<\/blockquote>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u0441\u0435 \u043a\u0440\u043e\u043c\u0435 \u0441\u043c\u044b\u0441\u043b\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u00a0\u2014 \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0438\u00a0\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e. \u041a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u0435\u0441\u044c \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/869\/279\/bd8\/869279bd89aaa58afae5bca8b8159d46.png\" width=\"772\" height=\"713\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/869\/279\/bd8\/869279bd89aaa58afae5bca8b8159d46.png\"\/><\/figure>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0432\u0434\u0440\u0443\u0433 \u0431\u0443\u0434\u0435\u0442 \u043d\u0443\u0436\u0435\u043d <a href=\"https:\/\/en.wikipedia.org\/wiki\/Source-to-source_compiler\" rel=\"noopener noreferrer nofollow\">\u0442\u0440\u0430\u043d\u0441\u043f\u0438\u043b\u0435\u0440<\/a> \u0438\u0437\u00a0Typescript \u0432 \u0447\u0438\u0441\u0442\u044b\u0439\u00a0\u0421\u0438\u00a0\u2014 \u0431\u0435\u0440\u0438\u0442\u0435 \u0438\u00a0\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c, \u0431\u043b\u0430\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442 \u043e\u0447\u0435\u043d\u044c \u0434\u0430\u0436\u0435 \u0440\u0430\u0431\u043e\u0447\u0438\u0439:<\/p>\n<pre><code class=\"bash\">npm install -g ts2c<\/code><\/pre>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0441\u0442\u0430\u0442\u0438 \u0438 \u0438\u0437 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430:<\/p>\n<pre><code class=\"xml\">&lt;script src=\"https:\/\/unpkg.com\/typescript\">&lt;\/script> &lt;script src=\"ts2c.bundle.js\">&lt;\/script> &lt;script>     var cCode = ts2c.transpile(\"console.log('Hello world!')\");     alert(cCode); &lt;\/script><\/code><\/pre>\n<p>\u0415\u0441\u0442\u044c \u0434\u0430\u0436\u0435 <a href=\"https:\/\/andrei-markeev.github.io\/ts2c\/\" rel=\"noopener noreferrer nofollow\">\u043e\u043d\u043b\u0430\u0439\u043d \u0432\u0435\u0440\u0441\u0438\u044f<\/a>:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/72e\/c2d\/840\/72ec2d84036fc92e32770cc23342ffad.png\" width=\"864\" height=\"575\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/72e\/c2d\/840\/72ec2d84036fc92e32770cc23342ffad.png\"\/><\/figure>\n<p>\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e \u0447\u0442\u043e \u0430\u0432\u0442\u043e\u0440 \u0447\u0435\u0441\u0442\u043d\u043e \u043f\u0438\u0448\u0435\u0442 \u043e \u043a\u0443\u0447\u0435 \u043d\u0435\u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043e\u043a:<\/p>\n<blockquote>\n<p><strong>Work in progress:<\/strong> it works, but only about <strong>70% of ES3<\/strong> specification is currently supported: statements and expressions &#8212; 95%, built-in objects &#8212; 17%.<\/p>\n<\/blockquote>\n<p>\u0421\u043a\u0430\u0436\u0443 \u0447\u0442\u043e \u044d\u0442\u043e \u0441\u0430\u043c\u044b\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0438\u0437\u00a0\u0441\u0435\u0440\u0438\u0438, \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u0441\u044b\u043f\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u0440\u0443\u043a\u0430\u0445. \u0420\u0430\u0441\u0441\u044b\u043f\u0430\u0435\u0442\u0441\u044f \u0438 \u0432\u0430\u043b\u0438\u0442\u0441\u044f \u043a\u0430\u043a \u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<h3>\u0414\u0438\u0447\u044c \u043f\u044f\u0442\u0430\u044f: nerd<\/h3>\n<p>\u041a\u0430\u043a \u043b\u0435\u0433\u043a\u043e \u0438 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u0447\u0442\u043e <a href=\"https:\/\/github.com\/NerdLang\/nerd\" rel=\"noopener noreferrer nofollow\">\u0438\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u043c\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442<\/a>\u00a0\u2014 \u0434\u0438\u043a\u043e\u0435, \u043d\u0435\u0440\u0430\u0431\u043e\u0447\u0435\u0435 \u0438\u00a0\u0433\u043b\u044e\u0447\u043d\u043e\u0435 \u0433\u043e\u0432\u043d\u043e?<\/p>\n<p>\u041f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044e, \u043e\u0431\u0435\u0449\u0430\u044e\u0449\u0435\u043c\u0443 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0435 \u043d\u0438\u0448\u0442\u044f\u043a\u0438:<\/p>\n<blockquote>\n<p>Javascript&#8217;s God Mode. No VM. No Bytecode. No GC. Just native binaries.<\/p>\n<\/blockquote>\n<p>\u041e\u0442\u0441\u044b\u043b\u043a\u0430 \u043a\u00a0\u0447\u0435\u043c\u0443-\u0442\u043e \u0431\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c\u0443 \u0432\u00a0\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438 <strong>\u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e<\/strong> \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u044d\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 100% \u0434\u0438\u0430\u0433\u043d\u043e\u0437, \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u0431\u0440\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u00a0\u043e\u0434\u043d\u043e\u043c\u0443 \u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0443\u00a0\u2014 \u0432\u0440\u044f\u0434\u043b\u0438 \u043e\u0448\u0438\u0431\u0435\u0442\u0435\u0441\u044c. <\/p>\n<p>\u041a\u0430\u043a \u043d\u0435\u0442\u0440\u0443\u0434\u043d\u043e \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f, \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e JavaScript \u0442\u0443\u0442 \u0442\u043e\u0436\u0435 \u0447\u0442\u043e-\u0442\u043e \u0441\u0432\u043e\u0435 <s>\u0431\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435<\/s>:<\/p>\n<blockquote>\n<p>NerdLang is a substract of JS with some additions, focus on efficiency.<\/p>\n<\/blockquote>\n<p>\u0418\u00a0\u044d\u0442\u043e \u00ab\u0441\u0432\u043e\u0435\u00bb \u0441\u043a\u0430\u0436\u0435\u043c \u0442\u0430\u043a \u0437\u0430\u0441\u0442\u0440\u044f\u043b\u043e \u0432\u00a0\u0434\u0430\u043b\u0435\u043a\u043e\u043c \u043f\u0440\u043e\u0448\u043b\u043e\u043c:<\/p>\n<blockquote>\n<p>Supporting EcmaScript 3 standard<\/p>\n<\/blockquote>\n<p>\u041d\u0430 \u043c\u0438\u043d\u0443\u0442\u043e\u0447\u043a\u0443, <a href=\"https:\/\/www-archive.mozilla.org\/js\/language\/E262-3.pdf\" rel=\"noopener noreferrer nofollow\">3\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f<\/a> \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430 \u0432\u044b\u0448\u043b\u0430 \u0435\u0449\u0435 \u0432 \u0434\u0430\u043b\u0435\u043a\u043e\u043c 2000\u043c \u0433\u043e\u0434\u0443.<\/p>\n<p>\u0410\u00a0\u0441\u0430\u043c \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0437 \u00ab\u043d\u0430\u0442\u044f\u043d\u0443\u0442\u044c \u0441\u043e\u0432\u0443 \u043d\u0430\u00a0\u0433\u043b\u043e\u0431\u0443\u0441\u00bb \u0438\u00a0\u0437\u0430\u043b\u0435\u0437\u0442\u044c \u0442\u0443\u0434\u0430, \u0433\u0434\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u043b\u043e\u043c\u0430\u043b\u0438 \u043a\u043b\u044b\u043a\u0438 \u0432\u0441\u0435 \u043a\u0440\u0443\u043f\u043d\u044b\u0435 \u043a\u043e\u0440\u043f\u0440\u043e\u0440\u0430\u0446\u0438\u0438 \u0443\u0440\u043e\u0432\u043d\u044f Google:<\/p>\n<blockquote>\n<p><strong>Nerd<\/strong> is a <strong>JavaScript native compiler<\/strong> aiming to make JavaScript universal, Nerd is able to compile native apps for Windows, Mac, Linux, iOS, Android, Raspberry, <strong>STM32<\/strong> and more.<\/p>\n<\/blockquote>\n<p>\u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f \u044f \u043d\u0435\u00a0\u043c\u043e\u0433 \u043f\u0440\u043e\u0439\u0442\u0438 \u043c\u0438\u043c\u043e \u0442\u0430\u043a\u043e\u0433\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0441\u044e \u044d\u0442\u0443 \u0434\u0438\u0447\u044c \u0441\u043e\u0431\u0440\u0430\u043b \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b, \u0445\u043e\u0442\u044f \u0438 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0441\u0431\u043e\u0440\u043a\u0438.<\/p>\n<p>\u041f\u0430\u0439\u043f\u043b\u0430\u0439\u043d (\u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0430 \u0442\u0438\u0442\u0443\u043b\u044c\u043d\u043e\u043c \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435) \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3e7\/d56\/2b6\/3e7d562b68409cf4458c095833d14367.png\" width=\"988\" height=\"430\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3e7\/d56\/2b6\/3e7d562b68409cf4458c095833d14367.png\"\/><\/figure>\n<p>\u0410\u0432\u0442\u043e\u0440 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0443\u0440\u043e\u0432, \u0447\u0442\u043e \u0437\u0430\u043f\u0438\u0445\u0430\u043b \u0438\u043d\u0441\u0442\u0443\u043a\u0446\u0438\u0438 \u0441\u0431\u043e\u0440\u043a\u0438 \u0438 \u043b\u0438\u043d\u043a\u043e\u0432\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0441\u043e\u043a\u0435\u0442\u0430\u043c\u0438 \u0432 <em>package.json<\/em>:<\/p>\n<pre><code class=\"javascript\">{ ..   \"version\": \"0.0.1\",   \"nerd\":   {     \"env\": [\"std\"],     \"read_only\": [],     \"lib\":      { \"win32\": [ \"-D_WIN32_WINNT=0x0600\", \"-Wno-narrowing\", \"-D_GNU_SOURCE\", \"-I{__EXTERN__}\/libuv\/include\/\",  \"-I{__EXTERN__}\/libuv\/src\/\", \"-D_CRT_SECURE_NO_DEPRECATE\", \"-D_CRT_NONSTDC_NO_DEPRECATE\",  \"{__EXTERN__}\/libuv\/src\/*.h\", \"{__EXTERN__}\/libuv\/src\/*.c\", \"{__EXTERN__}\/libuv\/src\/win\/*.h\", \"{__EXTERN__}\/libuv\/src\/win\/*.c\", \"-I {__MODULE__}\/httplib\/uWS\/\", \"-I {__MODULE__}\/httplib\/uSockets\/\", \"{__MODULE__}\/httplib\/uSockets\/*.c\", \"{__MODULE__}\/httplib\/uSockets\/crypto\/*.c\", \"{__MODULE__}\/httplib\/uSockets\/eventing\/*.c\", \"-DLIBUS_NO_SSL\", \"-DUWS_NO_ZLIB\", \"-fpermissive\", \"-w\", \"-lm\", \"-ladvapi32\", \"-liphlpapi\", \"-lpsapi\", \"-lshell32\", \"-luser32 \", \"-luserenv\", \"-lwsock32\", \"-lws2_32\" ]     }   } }<\/code><\/pre>\n<p>\u0423\u0432\u0438\u0434\u0435\u0432 \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 package.json, \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0439 \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a (\u0434\u0440\u0443\u0433\u043e\u0439) \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u0432\u0441\u0435\u0433\u0434\u0430 \u0443\u0439\u0442\u0438 \u0438\u0437 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u0438 \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0430\u0441\u0435\u0442 \u043a\u043e\u0437 \u0432 \u0433\u043e\u0440\u0430\u0445 \u041a\u0430\u0432\u043a\u0430\u0437\u0430.<\/p>\n<p>\u041d\u0443 \u0430 \u044f \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043d\u0435\u00a0\u0440\u0438\u0441\u043a\u043d\u0443\u043b \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u043e\u0434 Linux, \u0442\u0430\u043a \u0447\u0442\u043e \u0432\u044b\u00a0\u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0435\u0441\u044c \u0431\u0435\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 HTTP-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0430\u00a0\u044d\u0442\u043e\u043c \u0447\u0443\u0434\u0438\u0449\u0435.<\/p>\n<h3>\u0414\u0438\u0447\u044c \u0448\u0435\u0441\u0442\u0430\u044f: lemon<\/h3>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043d\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f <a href=\"https:\/\/github.com\/nordin-johan\/lemon\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u043e\u0435\u043a\u0442<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0438 \u0433\u0434\u0435-\u0442\u043e \u0434\u0430\u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u044b\u043c:<\/p>\n<blockquote>\n<p>Lemon is a framework for building Javascript runtime software, built on the Chrome V8 Javascript Engine.<\/p>\n<\/blockquote>\n<p>\u041c\u043d\u0435 \u043e\u043d\u00a0\u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0441\u044f \u0441\u0432\u043e\u0435\u0439 \u0437\u0430\u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u043e\u0439 (\u043f\u043e\u00a0\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441\u043e\u00a0\u0432\u0441\u0435\u043c\u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c\u0438) \u0438\u00a0\u043b\u0435\u0433\u043a\u043e\u0441\u0442\u044c\u044e \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e \u0441\u043a\u0440\u0438\u043f\u0442 \u0441\u0431\u043e\u0440\u043a\u0438 \u0446\u0435\u043b\u0438\u043a\u043e\u043c:<\/p>\n<pre><code class=\"bash\">CXX = g++ V8 = engine\/lib\/v8 define INCLUDE $(V8)\/include engine\/Core.cpp engine\/Environment.cpp engine\/Lemon.cpp engine\/StaticHelpers.cpp engine\/ObjectCreator.cpp endef define APP app\/*.cpp endef define LIB $(V8)\/out\/x64.release\/obj\/ endef define OBJ v8_monolith endef export INCLUDE export APP export LIB export OBJ build: (CXX) -I \" class=\"formula inline\">$INCLUDE $$APP -L $$LIB -l $$OBJ -std=c++0x -pthread -o lemon<\/code><\/pre>\n<p>\u0418.. \u044d\u0442\u043e \u0432\u0441\u0435.<\/p>\n<blockquote>\n<p>\u041d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0441\u0431\u043e\u0440\u043a\u0443 <a href=\"https:\/\/v8.dev\/\" rel=\"noopener noreferrer nofollow\">V8<\/a> \u0432\u0438\u0436\u0443 \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u0432 \u0436\u0438\u0437\u043d\u0438, \u0447\u0435\u0441\u0442\u043d\u043e.<\/p>\n<\/blockquote>\n<p>\u041e\u043d\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f9c\/326\/ac5\/f9c326ac5e1da3d60a81e798fe632a0e.png\" width=\"772\" height=\"203\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f9c\/326\/ac5\/f9c326ac5e1da3d60a81e798fe632a0e.png\"\/><\/figure>\n<p>\u041d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0434\u0432\u043e\u0439\u043d\u043e\u0439 \u00abHello, world\u00bb, \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0435\u0441\u0442\u044c \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u044c \u043d\u0430\u00a0JavaScript \u0442\u0430\u043a \u0438\u00a0\u0447\u0430\u0441\u0442\u044c \u043d\u0430\u00a0C++\u00a0\u2014 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0443\u043c\u0430\u0432 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u043b \u0434\u0432\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0438\u0437\u00a0\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432\u00a0\u043e\u0434\u0438\u043d.<\/p>\n<p>App.js:<\/p>\n<pre><code class=\"javascript\">version(); console.log(\"\u041f\u0440\u0435\u0432\u0435\u0434 \u0438\u0437 JS\"); helloworld();<\/code><\/pre>\n<p> App.hpp:<\/p>\n<pre><code class=\"cpp\">#ifndef APP #define APP  #include \"..\/engine\/Lemon.hpp\" using v8::Context;  class App : public Lemon { public: void Start(int argc, char* argv[]); void SetupEnvironment(); }; #endif<\/code><\/pre>\n<p>App.cpp:<\/p>\n<pre><code class=\"cpp\">#include \"App.hpp\"  using namespace v8;  static void Log(const FunctionCallbackInfo&lt;Value>&amp; args) {     HandleScope scope(args.GetIsolate());     String::Utf8Value str(args.GetIsolate(), args[0]);     const char* cstr = StaticHelpers::ToCString(str);     fprintf(stdout, \"%s\", cstr);     fprintf(stdout, \"\\n\");     fflush(stdout); } static void HelloWorld(const FunctionCallbackInfo&lt;Value>&amp; args) {     printf(\"\u041f\u0440\u0435\u0432\u0435\u0434 \u0438\u0437 C++ \\n\"); } void App::SetupEnvironment() {     this->CreateGlobalMethod(\"helloworld\", HelloWorld); } void App::Start(int argc, char* argv[]) {  for (int i = 1; i &lt; argc; ++i) {  \/\/ Get filename of the javascript file to run const char* filename = argv[i];  \/\/ Create a new context for executing javascript code Local&lt;Context> context = this->CreateLocalContext();  \/\/ Enter the new context Context::Scope contextscope(context);  this->CreateGlobalObject(\"console\") .SetPropertyMethod(\"log\", Log) .Register();  \/\/ Run the javascript file this->RunJsFromFile(filename); } }<\/code><\/pre>\n<p>\u0427\u0443\u0434\u043d\u044b \u0434\u0435\u043b\u0430 \u0442\u0432\u043e\u0438 \u0413\u043e\u0441\u043f\u043e\u0434\u0438, \u043a\u043e\u043b\u044c \u0434\u0430\u0436\u0435 \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u044f \u0437\u0430\u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0434\u0438\u0447\u044c \u0435\u0441\u0442\u044c \u0448\u0430\u043d\u0441 \u043d\u0430\u0439\u0442\u0438 \u0441\u0442\u043e\u043b\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442.<\/p>\n<blockquote>\n<p>\u0421\u043f\u0440\u043e\u0441\u0438\u0442\u0435 \u0441 \u0447\u0435\u0433\u043e \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0434\u043e\u0441\u0442\u0438?<\/p>\n<\/blockquote>\n<p>\u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e\u00a0\u044d\u0442\u043e \u0441\u0430\u043c\u044b\u0439 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 <a href=\"https:\/\/v8.dev\/\" rel=\"noopener noreferrer nofollow\">V8<\/a>, \u043d\u0435\u00a0\u0441\u0430\u043c\u043e\u043f\u0430\u043b \u0441\u00a0\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 ECMAScript \u00ab\u0432 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0435 \u0413\u043e\u0431\u043b\u0438\u043d\u0430\u00bb, \u0430\u00a0\u0438\u043c\u0435\u043d\u043d\u043e <strong>\u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u0434\u0432\u0438\u0436\u043e\u043a<\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u00a0\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 Chrome\u00a0\u2014 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f\u043c\u0438 \u0438 \u043d\u0430\u0432\u043e\u0440\u043e\u0442\u0430\u043c\u0438.<\/p>\n<p>\u0410\u00a0\u0437\u043d\u0430\u0447\u0438\u0442 \u043f\u0440\u0438\u00a0\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0443\u0441\u0438\u043b\u0438\u044f\u0445, \u0443\u00a0\u0432\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043b\u044e\u0431\u043e\u0439 JavaScript \u043a\u043e\u0434\u00a0\u2014 \u0432 <strong>\u0432\u0430\u0448\u0435\u043c \u043d\u0430\u0442\u0438\u0432\u043d\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438<\/strong>, \u0431\u0435\u0437\u00a0\u0432\u0441\u044f\u043a\u0438\u0445 \u0436\u0438\u0440\u043d\u044b\u0445 Node.js \u0438 \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441\u00a0\u043b\u0438\u043d\u043a\u043e\u0432\u043a\u043e\u0439 \u0438 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438.<\/p>\n<p>\u0421\u043b\u043e\u0432\u043e\u043c\u00a0\u0431\u0435\u0440\u0438\u0442\u0435 \u043d\u0430\u00a0\u0432\u043e\u043e\u0440\u0443\u0436\u0435\u043d\u0438\u0435, \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f.<\/p>\n<h3>\u041e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439<\/h3>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e\u00a0\u0436\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432\u00a0\u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0442\u0432\u043e\u0440\u0435\u043d\u0438\u044f \u0434\u0438\u0447\u0438 \u043a\u0443\u0434\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 \u0447\u0435\u043c \u0445\u0432\u0430\u0442\u0438\u0442 \u0441\u0438\u043b \u043e\u043f\u0438\u0441\u0430\u0442\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0438\u0436\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043f\u043e\u0434\u0431\u043e\u0440\u043a\u0430 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u043e\u0433\u043e \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e, \u043d\u043e \u043d\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e.<\/p>\n<p><a href=\"https:\/\/github.com\/wizardpisces\/js-ziju\" rel=\"noopener noreferrer nofollow\"><strong>js-ziju<\/strong><\/a><\/p>\n<blockquote>\n<p>Compile javascript to LLVM IR, x86 assembly and self interpreting<\/p>\n<\/blockquote>\n<p>\u041a\u00a0\u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043f\u0440\u0438\u0431\u0438\u0442 \u0433\u0432\u043e\u0437\u0434\u044f\u043c\u0438 \u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438\u00a0MacOS, \u043d\u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043d\u0438 \u043f\u0440\u043e\u0433\u043d\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u044b \u043f\u043e\u0434\u00a0Linux \u043d\u0435\u00a0\u0443\u0434\u0430\u043b\u043e\u0441\u044c. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d \u0442\u0435\u043c \u0447\u0442\u043e\u00a0\u0432\u00a0\u043e\u0434\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0441\u043e\u0431\u0440\u0430\u043d \u0438 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440 \u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440, \u043f\u0440\u0438\u0447\u0435\u043c \u0432\u00a0\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a.<\/p>\n<p><a href=\"https:\/\/github.com\/iEPCBM\/JS-ASM\" rel=\"noopener noreferrer nofollow\"><strong>JS-ASM<\/strong><\/a><\/p>\n<blockquote>\n<p>JavaScript Assembler x86-16<\/p>\n<\/blockquote>\n<p>\u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 COM-\u0444\u0430\u0439\u043b\u044b \u0432\u0440\u0435\u043c\u0435\u043d DOS, \u043d\u043e \u043f\u043e\u0434 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u043c Dosbox \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c.<\/p>\n<p><a href=\"https:\/\/github.com\/svaarala\/duktape\" rel=\"noopener noreferrer nofollow\"><strong>Duktape<\/strong><\/a><\/p>\n<blockquote>\n<p>Duktape\u00a0\u2014 embeddable Javascript engine with a focus on portability and compact footprint<\/p>\n<\/blockquote>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0439 \u0438 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 Lemon, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f \u043d\u0430\u0448\u0435\u043b \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043f\u043e\u0437\u0434\u043d\u043e \u0438 \u043d\u0435 \u0443\u0441\u043f\u0435\u043b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c.<\/p>\n<p><a href=\"https:\/\/github.com\/kripken\/clangor\" rel=\"noopener noreferrer nofollow\">clangor<\/a><\/p>\n<blockquote>\n<p>\u00abclang ported to js\u00bb\u00a0\u2014 \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0432\u00a0\u0446\u0438\u0442\u0430\u0442\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c.<\/p>\n<\/blockquote>\n<p>\u0421\u043b\u043e\u043c\u0430\u043d\u043d\u0430\u044f \u0438\u00a0\u0441\u0438\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0430\u044f \u0441\u0431\u043e\u0440\u043a\u0430, \u043d\u043e\u00a0\u0441\u0430\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u00a0\u2014 <strong>\u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0443\u0442\u043e\u0439<\/strong>, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443\u00a0\u044d\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 Clang, \u0432\u044b\u0442\u0430\u0449\u0435\u043d\u043d\u044b\u0439 \u0432\u00a0\u0432\u0435\u0431.<\/p>\n<p>\u0412\u043e\u0442 <a href=\"https:\/\/kripken.github.io\/clangor\/demo.html\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a> \u0435\u0441\u0442\u044c \u043e\u043d\u043b\u0430\u0439\u043d \u0432\u0435\u0440\u0441\u0438\u044f.<\/p>\n<p><a href=\"https:\/\/github.com\/kripken\/llvm.js\" rel=\"noopener noreferrer nofollow\"><strong>llvm.js<\/strong><\/a><\/p>\n<blockquote>\n<p>LLVM compiled to JavaScript using Emscripten<\/p>\n<\/blockquote>\n<p>\u0421\u043d\u043e\u0432\u0430 \u0441\u043b\u043e\u043c\u0430\u043d\u043d\u0430\u044f \u0438 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0430\u044f \u0441\u0431\u043e\u0440\u043a\u0430, \u043f\u043e\u0447\u0438\u043d\u0438\u0442\u044c \u0437\u0430 \u0440\u0430\u0437\u0443\u043c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c. <\/p>\n<p>\u041e\u043d\u0430 \u0436\u0435 \u0432 \u0433\u043e\u0442\u043e\u0432\u043e\u043c \u0432\u0438\u0434\u0435 <a href=\"https:\/\/kripken.github.io\/llvm.js\/demo.html\" rel=\"noopener noreferrer nofollow\">\u043e\u043d\u043b\u0430\u0439\u043d<\/a>. <\/p>\n<p><a href=\"https:\/\/github.com\/monoclex\/jssat\" rel=\"noopener noreferrer nofollow\"><strong>jssat<\/strong><\/a><\/p>\n<blockquote>\n<p>Compile JS into LLVM IR &#8212; JavaScript Static Analysis Tool<\/p>\n<\/blockquote>\n<p>\u0412\u043e\u0442 <a href=\"https:\/\/sirjosh3917.com\/posts\/jssat-compiling-javascript-to-llvm-ir\/\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a> \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u0440\u043e \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442, \u043d\u043e \u043c\u043d\u0435 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0442\u0430\u043a \u0438 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c.<\/p>\n<p><a href=\"https:\/\/github.com\/fabiosantoscode\/js2cpp\" rel=\"noopener noreferrer nofollow\"><strong>js2cpp<\/strong><\/a><\/p>\n<blockquote>\n<p>A toy js -> c++ compiler written in coffeescript. Uses escodegen to write c++ and tern to figure out types.<\/p>\n<\/blockquote>\n<p>\u041e\u043f\u044f\u0442\u044c \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0430\u044f \u0438 \u0441\u043b\u043e\u043c\u0430\u043d\u043d\u0430\u044f \u0441\u0431\u043e\u0440\u043a\u0430.<\/p>\n<p><a href=\"https:\/\/github.com\/timruffles\/js-to-c\" rel=\"noopener noreferrer nofollow\"><strong>js-to-c<\/strong><\/a><\/p>\n<blockquote>\n<p>Compiled implementation of Javascript, targeting C (for fun)<\/p>\n<\/blockquote>\n<p>\u041f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0442\u0435\u0441\u0442\u043e\u0432 \u0441\u043b\u043e\u043c\u0430\u043d\u0430, \u043d\u043e\u00a0\u0441\u0430\u043c\u0430 \u0441\u0431\u043e\u0440\u043a\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u00a0\u2014 \u043d\u0435\u00a0\u0441\u0442\u0430\u043b \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e \u0438\u0437\u0443\u0447\u0430\u0442\u044c.<\/p>\n<p><a href=\"https:\/\/github.com\/willothy\/Letter\" rel=\"noopener noreferrer nofollow\"><strong>Letter<\/strong><\/a><\/p>\n<blockquote>\n<p>Letter is a compiler project built in TypeScript using LLVM node bindings.<\/p>\n<\/blockquote>\n<p>\u041e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439, \u043d\u043e \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e\u00a0\u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0439 \u043f\u0440\u043e\u0435\u043a\u0442\u00a0\u2014 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 13\u0439 LLVM \u0438\u00a0\u0441\u0442\u0430\u0440\u0443\u044e\u00a0\u0436\u0435 \u0432\u0435\u0440\u0441\u0438\u044e Node.js.<\/p>\n<p>\u041f\u043e\u0434\u0440\u0443\u0436\u0438\u0442\u044c \u0441 \u043d\u043e\u0432\u044b\u043c\u0438 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438 LLVM \u0438 Node \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c. <\/p>\n<p><a href=\"https:\/\/github.com\/Captainarash\/CaptCC\" rel=\"noopener noreferrer nofollow\"><strong>CaptCC<\/strong><\/a><\/p>\n<blockquote>\n<p>A tiny C compiler written purely in JavaScript.<\/p>\n<\/blockquote>\n<p>\u0415\u0449\u0435 \u043e\u0434\u0438\u043d \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439, \u043d\u043e\u00a0\u043d\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0435\u043a\u0442\u00a0\u2014 \u0441\u0430\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043b, \u043d\u043e\u00a0\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434 \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f.<\/p>\n<h2>\u042d\u043f\u0438\u043b\u043e\u0433<\/h2>\n<p>\u0412\u0441\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0432\u00a0\u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u0432\u00a0\u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0434\u043b\u044f\u00a0\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u043d\u0438\u0446 \u0432\u0430\u0448\u0435\u0433\u043e \u0432\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u00a0\u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u0437\u043d\u0430\u043b\u0438 \u0447\u0442\u043e\u00a0\u0442\u0430\u043a \u0442\u043e\u0436\u0435\u00a0\u0431\u044b\u0432\u0430\u0435\u0442.<\/p>\n<blockquote>\n<p>\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043d\u0435 \u043f\u044b\u0442\u0430\u0439\u0442\u0435\u0441\u044c <strong>\u0442\u0430\u043a\u043e\u0435<\/strong> \u0432\u043d\u0435\u0434\u0440\u044f\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0440\u0435\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442\u0435 \u0437\u0430 \u043f\u043b\u0435\u0447\u0430\u043c\u0438 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430 \u0438\/\u0438\u043b\u0438 \u043f\u0440\u043e\u0444\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u043e CS.<\/p>\n<\/blockquote>\n<p>\u041b\u0438\u0431\u043e \u0443\u043c\u0435\u0435\u0442\u0435 \u0431\u044b\u0441\u0442\u0440\u043e \u0431\u0435\u0433\u0430\u0442\u044c \u0438 \u0438\u043c\u0435\u0435\u0442\u0435 \u0437\u0430\u043f\u0430\u0441\u043d\u043e\u0435 \u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0441\u0442\u0432\u043e.<\/p>\n<p>\u041a\u0443\u0434\u0430 \u0431\u043e\u043b\u0435\u0435 <a href=\"https:\/\/blog.0x08.ru\/bloody-hell-with-web-tools\" rel=\"noopener noreferrer nofollow\">\u0432\u043e\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f<\/a> \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0432 \u043d\u0430\u0448\u0435\u043c \u0431\u043b\u043e\u0433\u0435.<\/p>\n<h4>0x08 Software<\/h4>\n<p>\u041c\u044b \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0432\u0435\u0442\u0435\u0440\u0430\u043d\u043e\u0432 \u0418\u0422\u2011\u0438\u043d\u0434\u0443\u0441\u0442\u0440\u0438\u0438, \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0438 \u0434\u043e\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u0441\u0430\u043c\u043e\u0435 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435, \u043d\u0430\u0448 \u0441\u043e\u0444\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0431\u0438\u0437\u043d\u0435\u0441\u2011\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u043d\u0430\u00a0\u0442\u0440\u0435\u0445 \u043a\u043e\u043d\u0442\u0438\u043d\u0435\u043d\u0442\u0430\u0445, \u0432\u00a0\u0441\u0430\u043c\u044b\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u043e\u0442\u0440\u0430\u0441\u043b\u044f\u0445 \u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445.<\/p>\n<p>\u041e\u0436\u0438\u0432\u043b\u044f\u0435\u043c\u00a0<a href=\"https:\/\/blog.0x08.ru\/xerox-alto-bcpl-hello-world\" rel=\"noopener noreferrer nofollow\">\u0434\u0430\u0432\u043d\u043e \u0443\u043c\u0435\u0440\u0448\u0435\u0435<\/a>,\u00a0<a href=\"https:\/\/blog.0x08.ru\/running-from-websphere-esb\" rel=\"noopener noreferrer nofollow\">\u0447\u0438\u043d\u0438\u043c \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u00a0\u0440\u0430\u0431\u043e\u0442\u0430\u0432\u0448\u0435\u0435<\/a>\u00a0\u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u043c\u00a0<a href=\"https:\/\/blog.0x08.ru\/call-webservice-from-dos\" rel=\"noopener noreferrer nofollow\">\u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0435<\/a>\u00a0\u2014 \u0437\u0430\u0442\u0435\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043e\u0431\u00a0\u044d\u0442\u043e\u043c \u0432\u00a0\u0441\u0432\u043e\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445.<\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/824248\/\"> https:\/\/habr.com\/ru\/articles\/824248\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0418\u043b\u0438 \u0447\u0442\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u0435\u0441\u043b\u0438 \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c <strong>\u043e\u0447\u0435\u043d\u044c<\/strong> \u043e\u043f\u044b\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u00a0\u0441\u0432\u043e\u0438\u043c \u0434\u0435\u043b\u043e\u043c. \u0414\u0443\u043c\u0430\u044e \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0442\u0435\u0440\u043c\u0438\u043d \u00ab<a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A1%D0%B2%D0%B5%D1%80%D1%85%D0%BA%D0%B2%D0%B0%D0%BB%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F\" rel=\"noopener noreferrer nofollow\">overqualified<\/a>\u00bb \u0437\u0430\u0438\u0433\u0440\u0430\u0435\u0442 \u0434\u043b\u044f \u0432\u0430\u0441 \u043d\u043e\u0432\u044b\u043c\u0438 \u043a\u0440\u0430\u0441\u043a\u0430\u043c\u0438.<\/p>\n<p>\u041e\u0442\u00a0\u0430\u0432\u0442\u043e\u0440\u043e\u0432, <a href=\"https:\/\/habr.com\/ru\/articles\/821959\/\" rel=\"noopener noreferrer nofollow\">\u0437\u0430\u043f\u0438\u0445\u043d\u0443\u0432\u0448\u0438\u0445 \u0432\u0435\u0431\u2011\u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0430\u00a0\u0432\u0438\u0437\u0438\u0442\u043a\u0443<\/a> \u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/823836\/\" rel=\"noopener noreferrer nofollow\">\u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0445 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u00a0\u043a\u043b\u0438\u043d\u0433\u043e\u043d\u0441\u043a\u0438\u0439<\/a>\u00a0\u2014 \u0434\u0435\u0440\u0436\u0438\u043c \u043c\u0430\u0440\u043a\u0443!<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041f\u044f\u0442\u044c \u043c\u0438\u043d\u0443\u0442 \u0432\u0434\u0443\u043c\u0447\u0438\u0432\u043e\u0433\u043e \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043d\u0435\u0440\u0432\u043d\u043e\u043c\u0443 \u0441\u0440\u044b\u0432\u0443, \u044f \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0434\u0438\u043b.<\/figcaption><\/div>\n<\/figure>\n<h3>\u041d\u0430\u0448 \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u044b\u0439 \u0434\u0438\u043a\u0438\u0439 \u0432\u0435\u0431<\/h3>\n<p>\u0427\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0432 \u0433\u043e\u043b\u043e\u0432\u0443,\u00a0\u043a\u043e\u0433\u0434\u0430 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u043e \u00ab\u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435\u00bb? \u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0430\u0439\u0442\u043e\u0432 \u0438\u043b\u0438 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439? <\/p>\n<blockquote>\n<p>\u041b\u0435\u043d\u0434\u0438\u043d\u0433\u0438, \u0441\u0430\u0439\u0442\u044b-\u0432\u0438\u0437\u0438\u0442\u043a\u0438, \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043c\u0430\u0433\u0430\u0437\u0438\u043d\u044b \u0438\u043b\u0438 \u043a\u0430\u043a\u0438\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0432\u0435\u0431-\u043f\u043e\u0440\u0442\u0430\u043b\u044b <s>\u0432 \u0430\u0434<\/s>.<\/p>\n<\/blockquote>\n<p>\u0421\u0430\u043c\u044b\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0435 \u0438\u0437 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u0432\u0441\u043f\u043e\u043c\u043d\u044f\u0442 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Progressive_web_app\" rel=\"noopener noreferrer nofollow\">PWA<\/a> \u0438\u043b\u0438\u00a0\u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c <a href=\"https:\/\/reactnative.dev\/\" rel=\"noopener noreferrer nofollow\">React Native<\/a> \u0441\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Flutter_(software)\" rel=\"noopener noreferrer nofollow\">Flutter<\/a>\u00a0\u2014 \u043f\u0440\u0435\u0434\u0435\u043b \u043f\u043e\u043b\u0435\u0442\u0430 \u0444\u0430\u043d\u0442\u0430\u0437\u0438\u0438 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430.<\/p>\n<p>\u0427\u0442\u043e \u043f\u043b\u043e\u0445\u043e: <\/p>\n<blockquote>\n<p>\u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0447\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044f\u0435\u0442 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430 \u043e\u0442\u00a0\u0432\u0435\u043b\u0438\u043a\u0438\u0445 \u0441\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0439 \u044d\u0442\u043e \u0435\u0433\u043e \u0444\u0430\u043d\u0442\u0430\u0437\u0438\u044f\u00a0\u2014 \u0442\u043e\u0447\u043d\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e,\u00a0\u0447\u0442\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c.<\/p>\n<\/blockquote>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0435\u0439\u0447\u0430\u0441 \u043c\u044b\u00a0\u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c \u0432\u0430\u0448\u0435 \u0432\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u00a0\u2014 \u0432\u00a0\u043f\u0440\u0435\u0432\u0435\u043d\u0442\u0438\u0432\u043d\u044b\u0445 \u043c\u0435\u0440\u0430\u0445, <s>\u0434\u0440\u0435\u043b\u044c\u044e \u0438\u00a0\u0434\u044b\u0440\u043e\u043a\u043e\u043b\u043e\u043c<\/s> \u043f\u043e\u0434\u0440\u0443\u0447\u043d\u044b\u043c\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0432\u0430\u043c\u0438 \u0448\u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 <strong>\u043e\u0442\u0431\u043e\u0440\u043d\u0435\u0439\u0448\u0435\u0439 \u0434\u0438\u0447\u0438<\/strong>\u00a0\u2014 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0445 \u0441\u0430\u043c\u044b\u0435 \u0431\u0435\u0437\u0443\u043c\u043d\u044b\u0435 \u0438\u0434\u0435\u0438 \u0441\u00a0\u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u043f\u043e\u043b\u043d\u0435 \u043e\u0431\u044b\u0434\u0435\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430.<\/p>\n<blockquote>\n<p>\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043d\u0435\u00a0\u043f\u044b\u0442\u0430\u0439\u0442\u0435\u0441\u044c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043e <strong>\u0442\u0430\u043a\u043e\u043c<\/strong> \u043d\u0430\u00a0\u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e \u0432 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u0445\u00a0\u2014 \u043f\u043e\u0436\u0430\u043b\u0435\u0439\u0442\u0435 \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e\u0435\u0440\u0430 \u0438 \u0435\u0433\u043e \u043d\u0435\u0436\u043d\u0443\u044e \u043f\u0441\u0438\u0445\u0438\u043a\u0443.<\/p>\n<\/blockquote>\n<p>\u0410\u0432\u0442\u043e\u0440 \u043a\u043e\u0433\u0434\u0430\u2011\u0442\u043e \u0434\u0430\u0432\u043d\u043e (\u043a\u043e\u0433\u0434\u0430 \u0435\u0449\u0435 \u0445\u043e\u0434\u0438\u043b \u043f\u043e\u00a0\u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u043c) \u0434\u043e\u0432\u0435\u043b \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e\u0435\u0440\u0430 \u0434\u043e\u00a0\u043d\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u0441\u0440\u044b\u0432\u0430, \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u00a0\u0434\u0435\u0442\u0430\u043b\u044f\u0445 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0432 \u043a\u0430\u043a\u00a0<em>\u043d\u0430\u00a0\u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435<\/em> \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u0444\u043e\u0440\u043c\u0443 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u00a0\u2014 \u043f\u0440\u043e <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Status\/100\" rel=\"noopener noreferrer nofollow\">HTTP 100\u00a0Continue<\/a>, \u0440\u0430\u0437\u0431\u043e\u0440 MIME \u0438 \u043f\u0440\u043e\u0447\u0438\u0435 \u0440\u0430\u0434\u043e\u0441\u0442\u0438.<\/p>\n<p>\u041b\u044e\u0434\u0438 \u0442\u043e\u0433\u0434\u0430 \u0431\u044b\u043b\u0438 \u0441\u0438\u043b\u044c\u043d\u043e \u043a\u0440\u0435\u043f\u0447\u0435 \u0433\u043e\u043b\u043e\u0432\u043e\u0439 \u0447\u0435\u043c \u0441\u0435\u0439\u0447\u0430\u0441, \u0432 \u043d\u044b\u043d\u0435\u0448\u043d\u0438\u0445 \u0440\u0435\u0430\u043b\u0438\u044f\u0445 \u043c\u043e\u0433\u0443\u0442 \u0438 \u043f\u043e\u0431\u0438\u0442\u044c \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e.<\/p>\n<h2>\u0414\u0438\u0447\u044c \u043f\u0435\u0440\u0432\u0430\u044f: HTMLang<\/h2>\n<p>\u041d\u0435 \u0441\u043c\u043e\u0433 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u044c \u0436\u0438\u0437\u043d\u0435\u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044e\u0449\u0435\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043e\u0442 \u0430\u0432\u0442\u043e\u0440\u0430 \u044d\u0442\u043e\u0433\u043e <a href=\"https:\/\/github.com\/tsoding\/HTMLang\/tree\/master\" rel=\"noopener noreferrer nofollow\">\u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/a>:<\/p>\n<blockquote>\n<p><em>They were laughing that HTML was not a real programming language&#8230; WHO&#187;S LAUGHING NOW!!11<\/em><\/p>\n<\/blockquote>\n<p>\u0414\u0430, \u044d\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u043e\u00a0\u0447\u0442\u043e \u0432\u044b\u00a0\u043f\u043e\u0434\u0443\u043c\u0430\u043b\u0438\u00a0\u2014 \u043a\u0442\u043e-\u0442\u043e \u0431\u0443\u0434\u0443\u0447\u0438 \u0441\u0438\u043b\u044c\u043d\u043e \u043d\u0435\u00a0\u0432\u00a0\u0434\u0443\u0445\u0435 \u0432\u0437\u044f\u043b \u043e\u0431\u0449\u0438\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 HTML \u0438\u00a0\u0441\u043e\u0437\u0434\u0430\u043b \u043d\u0430 \u0435\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u043d\u0430\u043c\u0435\u043d\u0438\u0442\u043e\u0433\u043e <a href=\"https:\/\/en.wikipedia.org\/wiki\/Fizz_buzz\" rel=\"noopener noreferrer nofollow\">FizzBuzz<\/a>:<\/p>\n<pre><code class=\"xml\">&lt;!DOCTYPE html> &lt;html>   &lt;head>     &lt;title>FizzBuzz&lt;\/title>   &lt;\/head>   &lt;body>     &lt;h3>Look into the DevTools Console&lt;\/h3>     &lt;htmlang style=\"display: none;\">       &lt;call target=\"console.log\">&lt;s>Generating FizzBuzz...&lt;\/s>&lt;\/call>       &lt;for>&lt;v>i&lt;\/v> &lt;n>1&lt;\/n> &lt;n>100&lt;\/n>         &lt;cond>           &lt;when>             &lt;eq>               &lt;mod>                 &lt;v>i&lt;\/v>                 &lt;n>15&lt;\/n>               &lt;\/mod>               &lt;n>0&lt;\/n>             &lt;\/eq>             &lt;call target=\"console.log\">               &lt;s>FizzBuzz&lt;\/s>             &lt;\/call>           &lt;\/when>           &lt;when>             &lt;eq>               &lt;mod>                 &lt;v>i&lt;\/v>                 &lt;n>3&lt;\/n>               &lt;\/mod>               &lt;n>0&lt;\/n>             &lt;\/eq>             &lt;call target=\"console.log\">               &lt;s>Fizz&lt;\/s>             &lt;\/call>           &lt;\/when>           &lt;when>             &lt;eq>               &lt;mod>                 &lt;v>i&lt;\/v>                 &lt;n>5&lt;\/n>               &lt;\/mod>               &lt;n>0&lt;\/n>             &lt;\/eq>             &lt;call target=\"console.log\">               &lt;s>Buzz&lt;\/s>             &lt;\/call>           &lt;\/when>           &lt;else>             &lt;call target=\"console.log\">&lt;v>i&lt;\/v>&lt;\/call>           &lt;\/else>         &lt;\/cond>       &lt;\/for>     &lt;\/htmlang>     &lt;script src=\".\/HTMLang.js\">&lt;\/script>   &lt;\/body> &lt;\/html><\/code><\/pre>\n<p>\u041d\u0435\u00a0\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u0447\u0442\u043e\u00a0\u0431\u0443\u0434\u0435\u0442 \u0435\u0441\u043b\u0438 \u0441\u0430\u043c\u043e\u043c\u0443 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Joel_Spolsky\" rel=\"noopener noreferrer nofollow\">\u0414\u0436\u043e\u044d\u043b\u0443<\/a> \u0432\u044b\u0434\u0430\u0442\u044c \u0435\u0433\u043e\u00a0\u0436\u0435 \u0437\u043d\u0430\u043c\u0435\u043d\u0438\u0442\u044b\u0439 \u00abFizzBuzz\u00bb \u0432\u00a0\u0442\u0430\u043a\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438\u00a0\u2014 \u0435\u0441\u0442\u044c \u0448\u0430\u043d\u0441 \u0447\u0442\u043e\u00a0\u0441\u0442\u0430\u0440\u044b\u0439 \u0441\u0438\u0448\u043d\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0432\u043f\u0430\u0434\u0435\u0442 \u0432\u00a0\u0440\u0435\u043a\u0443\u0440\u0441\u0438\u044e.<\/p>\n<p>\u041a\u0441\u0442\u0430\u0442\u0438 \u043a\u0442\u043e \u0442\u0430\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b <s>\u043d\u0430 \u043b\u0435\u043a\u0446\u0438\u044f\u0445<\/s> \u043f\u0440\u043e \u00ab\u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438\u00bb \u0438\u00a0\u00ab\u043e\u0431\u0449\u0443\u044e \u043d\u0435\u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u00bb?<\/p>\n<blockquote>\n<p><strong>HTML<\/strong> (\u043e\u0442 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA\" rel=\"noopener noreferrer nofollow\">\u0430\u043d\u0433\u043b.<\/a> HyperText Markup Language \u2014 \u00ab\u044f\u0437\u044b\u043a <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%93%D0%B8%D0%BF%D0%B5%D1%80%D1%82%D0%B5%D0%BA%D1%81%D1%82\" rel=\"noopener noreferrer nofollow\">\u0433\u0438\u043f\u0435\u0440\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0439<\/a> \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438\u00bb) \u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u0433\u0438\u043f\u0435\u0440\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%92%D0%B5%D0%B1-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0\" rel=\"noopener noreferrer nofollow\">\u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0446<\/a> \u0432 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%91%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80\" rel=\"noopener noreferrer nofollow\">\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435<\/a>.<\/p>\n<\/blockquote>\n<p>\u0417\u0440\u044f \u0441\u0442\u0430\u0440\u0430\u043b\u0438\u0441\u044c,  \u0430\u0432\u0442\u043e\u0440 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0442\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u043f\u0438\u0448\u0435\u0442 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0442\u0435\u0433\u0430\u043c\u0438 HTML:<\/p>\n<pre><code class=\"xml\">&lt;call target=\"console.log\">         &lt;s>FizzBuzz&lt;\/s> &lt;\/call><\/code><\/pre>\n<p>\u0412\u0441\u0435 \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0435\u00a0\u043d\u0430\u0434\u043e \u043d\u0430\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432, \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0438\u0445 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u00a0\u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u0430\u043c CS\u00a0(\u0432\u0440\u043e\u0434\u0435 \u043a\u0443\u0440\u0441\u0430 \u043f\u043e\u00a0\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432)\u00a0\u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0448\u0442\u0430\u0442\u043d\u044b\u043c <s>\u0433\u043e\u0432\u043d\u043e\u0447\u0438\u0441\u0442\u043e\u043c<\/s> \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u0432\u00a0\u043e\u0431\u044b\u0447\u043d\u043e\u043c \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435\u00a0\u2014 \u043e \u0447\u0435\u043c \u0442\u0430\u043a \u043c\u0435\u0447\u0442\u0430\u044e\u0442 \u0432\u0441\u0435 \u0440\u0435\u043a\u0440\u0443\u0442\u0435\u0440\u044b.<\/p>\n<p>\u041c\u043e\u0436\u0435\u0442 \u0441\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0441\u0442\u044c:<\/p>\n<blockquote>\n<p>\u0432\u00a0\u0441\u0430\u043c\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0447\u0442\u043e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043d\u0430\u00a0\u0447\u0435\u043c-\u0442\u043e \u0442\u0430\u043a\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u043c.<\/p>\n<\/blockquote>\n<p>\u0410\u00a0\u0441\u043e\u0442\u0432\u043e\u0440\u0438\u0432\u0448\u0438\u0439 <strong>\u044d\u0442\u043e<\/strong> \u00ab\u0432\u0435\u043b\u0438\u043a\u0438\u0439 \u0433\u0443\u0440\u0443\u00bb \u0432\u043d\u0435\u0437\u0430\u043f\u043d\u043e \u043f\u0440\u043e\u043f\u0430\u0434\u0435\u0442, \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0432 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u0438 \u043f\u0435\u0440\u0435\u0435\u0445\u0430\u0432 \u0432 \u043f\u043e\u0438\u0441\u043a\u0430\u0445 \u0438\u0441\u0442\u0438\u043d\u044b \u0432 \u0441\u043e\u043b\u043d\u0435\u0447\u043d\u0443\u044e\u00a0<s>\u041a\u0430\u0440\u0430\u0433\u0430\u043d\u0434\u0443<\/s> \u041a\u0430\u043d\u0430\u0434\u0443. <\/p>\n<p>\u041f\u0440\u0435\u0446\u0435\u0434\u0435\u043d\u0442\u044b \u0431\u044b\u043b\u0438.<\/p>\n<h3>\u0414\u0438\u0447\u044c \u0432\u0442\u043e\u0440\u0430\u044f: HTML-as-programming-language<\/h3>\n<p>\u041d\u0435\u0445\u043e\u0440\u043e\u0448\u0438\u0435 \u043c\u044b\u0441\u043b\u0438 \u0442\u0435\u0440\u0437\u0430\u044e\u0442 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u0438\u0445 \u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432\u00a0\u2014 \u0432\u0441\u0435 \u0442\u0430\u00a0\u0436\u0435 \u0438\u0434\u0435\u044f \u00ab<a href=\"https:\/\/github.com\/HTML-as-programming-language\/HTML-as-programming-language\" rel=\"noopener noreferrer nofollow\">\u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430\u00a0HTML<\/a>\u00bb \u043d\u0435\u00a0\u0434\u0430\u0435\u0442 \u043f\u043e\u043a\u043e\u044f \u0438 \u0430\u0432\u0442\u043e\u0440\u0443 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/p>\n<blockquote>\n<p>\u041d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043d \u0437\u0430\u0448\u0435\u043b \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e.<\/p>\n<\/blockquote>\n<p>\u041a\u0430\u043a \u0432\u0430\u043c \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0430 \u0447\u0438\u0441\u0442\u043e\u043c HTML:<\/p>\n<pre><code class=\"xml\">&lt;def multiplyFunction returns=int> &lt;!-- You can create functions -->     &lt;param a type=int\/>     &lt;param b type=int\/>     &lt;return>a * b&lt;\/return> &lt;\/def>  &lt;def main>     &lt;var result type=int>      &lt;!-- Create variables -->         &lt;multiplyFunction>          &lt;!-- and store the result of the function in the variable -->             &lt;param>5&lt;\/param>             &lt;param>6&lt;\/param>         &lt;\/multiplyFunction>     &lt;\/var> &lt;\/def><\/code><\/pre>\n<p>\u0418\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0435\u0439\u0441\u043a\u0430\u044f \u0438\u0441\u0442\u0438\u043d\u0430 \u00ab<a href=\"https:\/\/cyclowiki.org\/wiki\/%D0%9C%D0%BD%D0%BE%D0%B3%D0%B8%D0%B5_%D0%B7%D0%BD%D0%B0%D0%BD%D0%B8%D1%8F_%E2%80%94_%D0%BC%D0%BD%D0%BE%D0%B3%D0%B8%D0%B5_%D0%BF%D0%B5%D1%87%D0%B0%D0%BB%D0%B8\" rel=\"noopener noreferrer nofollow\">\u043c\u043d\u043e\u0433\u0438\u0435 \u0437\u043d\u0430\u043d\u0438\u044f\u00a0\u2014 \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u0435\u0447\u0430\u043b\u0438<\/a>\u00bb\u00a0\u2014 \u043a\u0430\u043a \u0440\u0430\u0437 \u043f\u0440\u043e \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u044f\u00a0\u0431\u044b \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0442\u0435\u043b \u0432\u0441\u0435 \u044d\u0442\u043e \u0437\u0430\u0431\u044b\u0442\u044c \u0438\u00a0\u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043e\u00a0\u043f\u043e\u0434\u043e\u0431\u043d\u043e\u043c \u043d\u0435\u00a0\u0437\u043d\u0430\u0442\u044c.<\/p>\n<p>\u041d\u043e \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u0443\u0436\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043f\u043e\u0437\u0434\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0435\u043b\u044e\u0441\u044c \u043e\u0442\u043a\u0440\u043e\u0432\u0435\u043d\u0438\u044f\u043c\u0438:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0417\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d \u0441 \u0432\u044b\u0437\u043e\u0432\u043e\u043c <strong>\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 HTML<\/strong>, \u043f\u0440\u0430\u0432\u0434\u0430?<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u0430, \u0432\u044b\u00a0\u0432\u0441\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u043d\u044f\u043b\u0438\u00a0\u2014 \u044d\u0442\u043e \u0441\u0430\u043c\u044b\u0439 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0438\u0437\u00a0HTML \u0432\u00a0\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 ELF64 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a.<\/p>\n<p>\u0410 \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u0430\u043c \u0441\u043e\u0432\u0441\u0435\u043c \u043f\u043e\u043f\u043b\u043e\u0445\u0435\u0435\u0442:<\/p>\n<blockquote>\n<p>To write code for Adruino\/AVR microcontrollers, (Arduino UNO for example) you need to put a DOCTYPE tag in your HTML file.<\/p>\n<\/blockquote>\n<p>For example:<\/p>\n<pre><code class=\"xml\">&lt;!DOCTYPE avr\/atmega328p><\/code><\/pre>\n<p>\u0414\u0430, \u044d\u0442\u043e \u0431\u044b\u043b\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u0434\u0443\u043c\u043a\u0430 \u0430\u0432\u0442\u043e\u0440\u0430\u00a0\u2014 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430<strong> \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u043d\u0430\u00a0HTML<\/strong>, \u044f\u00a0\u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u00a0\u0434\u043e\u0434\u0443\u043c\u044b\u0432\u0430\u044e. <\/p>\n<blockquote>\n<p>\u0423\u0432\u0438\u0434\u0435\u0432 \u0442\u0430\u043a\u043e\u0439 \u0432\u043e\u0442 <code>DOCTYPE<\/code>, \u043e\u0434\u0438\u043d \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0439 \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0430\u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0440\u043e\u0441\u0438\u043b \u043f\u0438\u0442\u044c.<\/p>\n<\/blockquote>\n<p>\u041a\u00a0\u0441\u043b\u043e\u0432\u0443, \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043c\u0430\u0433\u0438\u044f \u0441 <em>#include &lt;stdio.h><\/em> \u043d\u0430\u00a0\u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435 \u0432\u044b\u0448\u0435\u00a0\u0431\u044b\u043b\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u043a\u0430\u043a\u00a0\u0440\u0430\u0437 \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e\u00a0\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f\u00a0\u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u0438 \u043d\u0435\u00a0\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u00a0\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u043a\u043e\u0434 \u043d\u0430\u00a0\u0421\u00a0\u044d\u0442\u043e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0434\u043b\u044f\u00a0\u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u041e\u0421 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u044d\u0442\u0430 <a href=\"https:\/\/www.arduino.cc\/\" rel=\"noopener noreferrer nofollow\">\u0436\u0435\u043b\u0435\u0437\u043a\u0430<\/a>, \u0435\u0441\u043b\u0438 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0432\u0438\u0434\u0435\u043b\u0438.<\/figcaption><\/div>\n<\/figure>\n<p>\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u0443 \u043c\u0435\u043d\u044f \u043d\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434 \u0440\u0443\u043a\u043e\u0439 \u0442\u0430\u043a\u043e\u0433\u043e \u0434\u0435\u0432\u0430\u0439\u0441\u0430, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0438 \u0432\u0435\u0441\u044c \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043d\u0435 \u0441\u043c\u043e\u0433.<\/p>\n<p>To compile your AVR\/Arduino code:<\/p>\n<pre><code class=\"bash\">htmlc my-code.html -compile<\/code><\/pre>\n<p>To upload your code to an arduino or other AVR microcontroller:<\/p>\n<pre><code class=\"bash\">htmlc my-code.html -upload<\/code><\/pre>\n<p>\u041d\u043e\u00a0\u0435\u0441\u043b\u0438 \u0441\u0440\u0435\u0434\u0438 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430\u0439\u0434\u0443\u0442\u0441\u044f \u0441\u043c\u0435\u043b\u044b\u0435 \u043b\u044e\u0434\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043c\u043e\u0433\u0443\u0442 <strong>\u044d\u0442\u043e<\/strong> \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u00a0\u2014 \u0441\u00a0\u0440\u0430\u0434\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0447\u0438\u0442\u0430\u044e \u043e\u00a0\u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u044f\u0445.<\/p>\n<p>\u0410 \u043c\u044b \u0442\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0443. <\/p>\n<h3>\u0414\u0438\u0447\u044c \u0442\u0440\u0435\u0442\u044c\u044f: ass-js<\/h3>\n<p>\u0422\u0430\u043a\u0438\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0438 <a href=\"https:\/\/github.com\/streamich\/ass-js\" rel=\"noopener noreferrer nofollow\">\u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u043d\u044b\u043c \u043b\u043e\u0433\u043e\u0442\u0438\u043f\u043e\u043c<\/a>, \u0430\u0432\u0442\u043e\u0440\u044b \u0447\u0435\u0441\u0442\u043d\u043e \u043d\u0430\u043c\u0435\u043a\u0430\u044e\u0442 \u043d\u0430 \u0441\u0443\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u0430:<\/p>\n<blockquote>\n<p>Assembler implemented in JavaScript<\/p>\n<\/blockquote>\n<p>\u041f\u043e\u043b\u0430\u0433\u0430\u044e \u0432\u044b \u0435\u0449\u0435 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u00a0\u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u043b\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430 \u0441\u00a0\u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"https:\/\/en.wikipedia.org\/wiki\/NPM\" rel=\"noopener noreferrer nofollow\">npm<\/a>? \u0427\u0442\u043e\u00a0\u0436, \u0432\u0441\u0435 \u043a\u043e\u0433\u0434\u0430\u2011\u043d\u0438\u0431\u0443\u0434\u044c\u00a0\u0431\u044b\u0432\u0430\u0435\u0442 \u0432\u00a0\u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0430\u0437:<\/p>\n<pre><code class=\"bash\">npm i ass-js<\/code><\/pre>\n<p>\u0410\u00a0\u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u00abHello, world\u00bb:<\/p>\n<pre><code class=\"javascript\">import {X64} from '..\/src\/index';  const asm = X64();  asm.code(_ => {     _('db', 'Hello World!\\n');     _('mov', ['rax', 1]); \/\/ 0x48, 0xC7, 0xC0, 0x01, 0x00, 0x00, 0x00     _('mov', ['rdi', 1]);     _('lea', ['rsi', _('rip').disp(-34)]);     _('mov', ['rdx', 13]);     _('syscall');     _('ret'); });  console.log(asm.toString());<\/code><\/pre>\n<p>\u0422\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u00a0\u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0439\u0442\u0435 \u043b\u044e\u0431\u0438\u043c\u043e\u043c\u0443 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044e \u043a\u0443\u0440\u0441\u0430 \u043f\u043e\u00a0\u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0443\u00a0\u2014 \u0434\u0435\u0434\u0443\u0448\u043a\u0435 \u043f\u043e\u043f\u043b\u043e\u0445\u0435\u0435\u0442, \u0441\u0435\u0440\u0434\u0446\u0435 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0432\u044b\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0433\u043e \u043d\u0430\u043a\u0430\u043b\u0430 \u0434\u0438\u0447\u0438.<\/p>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u0432\u044b\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0439 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043d\u0435\u0440\u0430\u0431\u043e\u0447\u0438\u043c \u0438 \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a \u043d\u0430 \u043c\u043e\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u0435.<\/figcaption><\/div>\n<\/figure>\n<p>\u0417\u0430\u0442\u043e \u0435\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 <a href=\"https:\/\/github.com\/streamich\/ass-js\/blob\/master\/docs\/examples\/hello_world.md\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b<\/a> \u043f\u043e\u00a0\u0440\u0430\u0437\u0431\u043e\u0440\u0443 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0441 \u00abHello world\u00bb, \u0433\u0434\u0435 \u043f\u043e\u00a0\u0448\u0430\u0433\u0430\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u043e \u043a\u0430\u043a \u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<p>\u0415\u0449\u0435 \u043d\u0430\u0448\u0435\u043b\u0441\u044f \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 <a href=\"https:\/\/github.com\/streamich\/ass-js\/issues\/54\" rel=\"noopener noreferrer nofollow\">\u0432\u043e\u043f\u0440\u043e\u0441<\/a> \u043a \u0430\u0432\u0442\u043e\u0440\u0443:<\/p>\n<blockquote>\n<p>I was looking at your project and I couldn&#8217;t figure out a reason as to why I would (and what, rather) implement with this.<\/p>\n<\/blockquote>\n<p>\u041a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u0430\u043a \u0431\u044b \u043d\u0430\u043c\u0435\u043a\u0430\u0435\u0442 \u043d\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0442\u0440\u0435\u0448\u0430 \u0438 \u0443\u0433\u0430\u0440\u0430 \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435. \u041d\u043e\u00a0\u0435\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435\u00a0\u2014 \u043a\u00a0\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 <s>\u043e\u0442\u0431\u0438\u0442\u043e\u043c\u0443<\/s> \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0443.<\/p>\n<h3>\u0414\u0438\u0447\u044c \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0430\u044f: ts2c<\/h3>\n<p><a href=\"https:\/\/github.com\/andrei-markeev\/ts2c\" rel=\"noopener noreferrer nofollow\">\u0422\u0443\u0442<\/a> \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e:<\/p>\n<blockquote>\n<p>Produces readable C89 code from JS\/TS code.<\/p>\n<\/blockquote>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u0441\u0435 \u043a\u0440\u043e\u043c\u0435 \u0441\u043c\u044b\u0441\u043b\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u00a0\u2014 \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0438\u00a0\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e. \u041a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u0435\u0441\u044c \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0432\u0434\u0440\u0443\u0433 \u0431\u0443\u0434\u0435\u0442 \u043d\u0443\u0436\u0435\u043d <a href=\"https:\/\/en.wikipedia.org\/wiki\/Source-to-source_compiler\" rel=\"noopener noreferrer nofollow\">\u0442\u0440\u0430\u043d\u0441\u043f\u0438\u043b\u0435\u0440<\/a> \u0438\u0437\u00a0Typescript \u0432 \u0447\u0438\u0441\u0442\u044b\u0439\u00a0\u0421\u0438\u00a0\u2014 \u0431\u0435\u0440\u0438\u0442\u0435 \u0438\u00a0\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c, \u0431\u043b\u0430\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442 \u043e\u0447\u0435\u043d\u044c \u0434\u0430\u0436\u0435 \u0440\u0430\u0431\u043e\u0447\u0438\u0439:<\/p>\n<pre><code class=\"bash\">npm install -g ts2c<\/code><\/pre>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0441\u0442\u0430\u0442\u0438 \u0438 \u0438\u0437 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430:<\/p>\n<pre><code class=\"xml\">&lt;script src=\"https:\/\/unpkg.com\/typescript\">&lt;\/script> &lt;script src=\"ts2c.bundle.js\">&lt;\/script> &lt;script>     var cCode = ts2c.transpile(\"console.log('Hello world!')\");     alert(cCode); &lt;\/script><\/code><\/pre>\n<p>\u0415\u0441\u0442\u044c \u0434\u0430\u0436\u0435 <a href=\"https:\/\/andrei-markeev.github.io\/ts2c\/\" rel=\"noopener noreferrer nofollow\">\u043e\u043d\u043b\u0430\u0439\u043d \u0432\u0435\u0440\u0441\u0438\u044f<\/a>:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e \u0447\u0442\u043e \u0430\u0432\u0442\u043e\u0440 \u0447\u0435\u0441\u0442\u043d\u043e \u043f\u0438\u0448\u0435\u0442 \u043e \u043a\u0443\u0447\u0435 \u043d\u0435\u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043e\u043a:<\/p>\n<blockquote>\n<p><strong>Work in progress:<\/strong> it works, but only about <strong>70% of ES3<\/strong> specification is currently supported: statements and expressions &#8212; 95%, built-in objects &#8212; 17%.<\/p>\n<\/blockquote>\n<p>\u0421\u043a\u0430\u0436\u0443 \u0447\u0442\u043e \u044d\u0442\u043e \u0441\u0430\u043c\u044b\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0438\u0437\u00a0\u0441\u0435\u0440\u0438\u0438, \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u0441\u044b\u043f\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u0440\u0443\u043a\u0430\u0445. \u0420\u0430\u0441\u0441\u044b\u043f\u0430\u0435\u0442\u0441\u044f \u0438 \u0432\u0430\u043b\u0438\u0442\u0441\u044f \u043a\u0430\u043a \u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<h3>\u0414\u0438\u0447\u044c \u043f\u044f\u0442\u0430\u044f: nerd<\/h3>\n<p>\u041a\u0430\u043a \u043b\u0435\u0433\u043a\u043e \u0438 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u0447\u0442\u043e <a href=\"https:\/\/github.com\/NerdLang\/nerd\" rel=\"noopener noreferrer nofollow\">\u0438\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u043c\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442<\/a>\u00a0\u2014 \u0434\u0438\u043a\u043e\u0435, \u043d\u0435\u0440\u0430\u0431\u043e\u0447\u0435\u0435 \u0438\u00a0\u0433\u043b\u044e\u0447\u043d\u043e\u0435 \u0433\u043e\u0432\u043d\u043e?<\/p>\n<p>\u041f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044e, \u043e\u0431\u0435\u0449\u0430\u044e\u0449\u0435\u043c\u0443 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0435 \u043d\u0438\u0448\u0442\u044f\u043a\u0438:<\/p>\n<blockquote>\n<p>Javascript&#8217;s God Mode. No VM. No Bytecode. No GC. Just native binaries.<\/p>\n<\/blockquote>\n<p>\u041e\u0442\u0441\u044b\u043b\u043a\u0430 \u043a\u00a0\u0447\u0435\u043c\u0443-\u0442\u043e \u0431\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c\u0443 \u0432\u00a0\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438 <strong>\u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e<\/strong> \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u044d\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 100% \u0434\u0438\u0430\u0433\u043d\u043e\u0437, \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u0431\u0440\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u00a0\u043e\u0434\u043d\u043e\u043c\u0443 \u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0443\u00a0\u2014 \u0432\u0440\u044f\u0434\u043b\u0438 \u043e\u0448\u0438\u0431\u0435\u0442\u0435\u0441\u044c. <\/p>\n<p>\u041a\u0430\u043a \u043d\u0435\u0442\u0440\u0443\u0434\u043d\u043e \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f, \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e JavaScript \u0442\u0443\u0442 \u0442\u043e\u0436\u0435 \u0447\u0442\u043e-\u0442\u043e \u0441\u0432\u043e\u0435 <s>\u0431\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435<\/s>:<\/p>\n<blockquote>\n<p>NerdLang is a substract of JS with some additions, focus on efficiency.<\/p>\n<\/blockquote>\n<p>\u0418\u00a0\u044d\u0442\u043e \u00ab\u0441\u0432\u043e\u0435\u00bb \u0441\u043a\u0430\u0436\u0435\u043c \u0442\u0430\u043a \u0437\u0430\u0441\u0442\u0440\u044f\u043b\u043e \u0432\u00a0\u0434\u0430\u043b\u0435\u043a\u043e\u043c \u043f\u0440\u043e\u0448\u043b\u043e\u043c:<\/p>\n<blockquote>\n<p>Supporting EcmaScript 3 standard<\/p>\n<\/blockquote>\n<p>\u041d\u0430 \u043c\u0438\u043d\u0443\u0442\u043e\u0447\u043a\u0443, <a href=\"https:\/\/www-archive.mozilla.org\/js\/language\/E262-3.pdf\" rel=\"noopener noreferrer nofollow\">3\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f<\/a> \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430 \u0432\u044b\u0448\u043b\u0430 \u0435\u0449\u0435 \u0432 \u0434\u0430\u043b\u0435\u043a\u043e\u043c 2000\u043c \u0433\u043e\u0434\u0443.<\/p>\n<p>\u0410\u00a0\u0441\u0430\u043c \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0437 \u00ab\u043d\u0430\u0442\u044f\u043d\u0443\u0442\u044c \u0441\u043e\u0432\u0443 \u043d\u0430\u00a0\u0433\u043b\u043e\u0431\u0443\u0441\u00bb \u0438\u00a0\u0437\u0430\u043b\u0435\u0437\u0442\u044c \u0442\u0443\u0434\u0430, \u0433\u0434\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u043b\u043e\u043c\u0430\u043b\u0438 \u043a\u043b\u044b\u043a\u0438 \u0432\u0441\u0435 \u043a\u0440\u0443\u043f\u043d\u044b\u0435 \u043a\u043e\u0440\u043f\u0440\u043e\u0440\u0430\u0446\u0438\u0438 \u0443\u0440\u043e\u0432\u043d\u044f Google:<\/p>\n<blockquote>\n<p><strong>Nerd<\/strong> is a <strong>JavaScript native compiler<\/strong> aiming to make JavaScript universal, Nerd is able to compile native apps for Windows, Mac, Linux, iOS, Android, Raspberry, <strong>STM32<\/strong> and more.<\/p>\n<\/blockquote>\n<p>\u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f \u044f \u043d\u0435\u00a0\u043c\u043e\u0433 \u043f\u0440\u043e\u0439\u0442\u0438 \u043c\u0438\u043c\u043e \u0442\u0430\u043a\u043e\u0433\u043e,<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-379837","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/379837","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=379837"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/379837\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=379837"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=379837"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=379837"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}