{"id":342077,"date":"2022-12-02T09:00:39","date_gmt":"2022-12-02T09:00:39","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=342077"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=342077","title":{"rendered":"<span>\u0411\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u0438 \u043a\u0440\u0430\u0441\u0438\u0432\u043e \u0443\u0436\u0430\u0441\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f ALLang<\/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<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434 \u044f \u043f\u0438\u0441\u0430\u043b \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c ALLang. \u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u0435\u0433\u043e \u0437\u0432\u0443\u0447\u0438\u0442 \u0442\u0430\u043a: <em>Another LISP Language<\/em>, \u0447\u0442\u043e \u043d\u0435\u0437\u0430\u043c\u044b\u0441\u043b\u043e\u0432\u0430\u0442\u043e \u0434\u0430\u0451\u0442 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0435\u0433\u043e \u0432\u0442\u043e\u0440\u043e\u0441\u043e\u0440\u0442\u043d\u043e\u0441\u0442\u0438. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0442\u0430\u043a\u043e\u0432\u043e\u0439 \u044f\u0437\u044b\u043a \u0432\u0441\u0451 \u0436\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0432 \u0441\u0432\u043e\u0435\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u044d\u0437\u043e\u0442\u0435\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432. \u041f\u0438\u0441\u0430\u043b \u044f ALLang \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e \u0444\u0430\u043d\u0443. \u041d\u043e \u043d\u0430\u0447\u043d\u0451\u043c \u043c\u044b \u043f\u043e\u0436\u0430\u043b\u0443\u0439 \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u0441 \u0435\u0433\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0445 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u0443\u0433\u043b\u0443\u0431\u043b\u044f\u0442\u044c\u0441\u044f \u0432\u043d\u0438\u0437, \u0432 \u0441\u0430\u043c\u0443\u044e \u0435\u0433\u043e \u043a\u0440\u0430\u043c\u0435\u0448\u043d\u0443\u044e \u0431\u0435\u0437\u0434\u043d\u0443 \u044d\u0437\u043e\u0442\u0435\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/p>\n<h2>\u0412\u043d\u0435\u0448\u043d\u0438\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438<\/h2>\n<p>\u042f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f ALLang \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u044f\u0437\u044b\u043a LISP \u0434\u0438\u0430\u043b\u0435\u043a\u0442\u0430 Scheme. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u044f\u0437\u044b\u043a ALLang \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0438\u0441\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u044f\u0437\u044b\u043a\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0423 \u043d\u0435\u0433\u043e \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u0432\u043e\u0434\u0430\/\u0432\u044b\u0432\u043e\u0434\u0430, \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0446\u0438\u043a\u043b\u043e\u0432 \u0438 \u0442.\u043f. \u0432\u0435\u0449\u0435\u0439 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u043a\u0430\u043a-\u043b\u0438\u0431\u043e \u0441 \u0438\u043c\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u044f\u0437\u044b\u043a\u0430\u043c\u0438.<\/p>\n<p>\u0412 \u044f\u0437\u044b\u043a\u0435 ALLang \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0440\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432\u0430, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438: <code>include<\/code>, <code>define<\/code>, <code>if<\/code>. \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <code>include<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0435\u0449\u0451 \u0434\u0432\u0430 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432\u0430 <code>assembly<\/code> \u0438 <code>source<\/code>. \u0412 \u0441\u0443\u043c\u043c\u0435 ALLang \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u044f\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432.<\/p>\n<pre><code class=\"lisp\">; \u041f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0442\u043e\u0447\u043a\u0443 \u0432\u0445\u043e\u0434\u0430 (include assembly lib\/vms\/init.vms)  ; \u041f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0441 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 ; &lt;, -, + \u0438 ret (include source lib\/all\/lr.all lib\/all\/ret.all lib\/all\/dec.all lib\/all\/mul.all)  ; \u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0430\u043b \u043e\u0442 x (define (main x) (fact x))  ; f(x) = 1, if x &lt; 1 ; f(x) = x * f(x-1) (define (fact x) (if (lr x 1)  (ret 1) (mul x (fact (dec x)))))<\/code><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438 <code>x = 5<\/code>:<\/p>\n<pre><code>{ \"result\": [120], \"return\": 0 }<\/code><\/pre>\n<p>\u0412 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u0441 \u044f\u0437\u044b\u043a\u0430\u043c\u0438 LISP \u0434\u0438\u0430\u043b\u0435\u043a\u0442\u0430 Scheme \u0437\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 &#171;\u0442\u043e\u043d\u043a\u043e\u0441\u0442\u0438&#187;. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0432\u0430 \u0442\u0438\u043f\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a &#8212; <code>assembly<\/code> \u0438 <code>source<\/code>. \u041f\u0435\u0440\u0432\u044b\u0439 \u0442\u0438\u043f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0435 \u0434\u0435\u0442\u0430\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u044f\u0437\u044b\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044f\u0437\u044b\u043a \u043a\u0430\u043a \u0443\u0433\u043e\u0434\u043d\u043e, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u0432\u0441\u0435\u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438. \u0412\u0442\u043e\u0440\u043e\u0439 \u0442\u0438\u043f \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043a\u043e\u0434 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0443\u0436\u0435 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 ALLang, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430. <\/p>\n<p>\u0415\u0441\u043b\u0438 \u043c\u044b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u043a\u043e\u0434 <code>lib\/vms\/init.vms<\/code>, \u0442\u043e \u0443\u0432\u0438\u0434\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u043e\u0447\u043a\u0443 \u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432 \u0432\u0438\u0434\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>main<\/code>, \u0445\u043e\u0442\u044c \u0438 \u0432 \u0432\u0438\u0434\u0435 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 (\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u043e\u0437\u0434\u043d\u0435\u0435).<\/p>\n<pre><code class=\"assembly\">labl _init push main call hlt<\/code><\/pre>\n<p>\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0442\u0438\u043f\u0430 <code>source<\/code> \u043c\u044b \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u043d\u0430\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u043a. \u0421\u0435\u0439\u0447\u0430\u0441 \u0436\u0435 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c &#171;\u0443\u0437\u043a\u0438\u0435&#187; \u043c\u0435\u0441\u0442\u0430 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u044f\u0437\u044b\u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u043c\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u0432\u0432\u043e\u0434\u0430 \u0438 \u0432\u044b\u0432\u043e\u0434\u0430, \u0441\u0430\u043c \u044f\u0437\u044b\u043a &#8212; \u044d\u0442\u043e \u0447\u0438\u0441\u0442\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0438 \u043d\u0435 \u0431\u043e\u043b\u0435\u0435. \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443 \u043d\u0430 \u0432\u0445\u043e\u0434 \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0442 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b (\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e main), \u0430 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043a\u043e\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u044f\u0437\u044b\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0442\u0438\u043f\u0430 <code>int32<\/code>, \u043e\u043d \u043d\u0435 \u0437\u043d\u0430\u0435\u0442 \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 <code>int8<\/code>, <code>string<\/code>, <code>struct<\/code>, <code>list<\/code> \u0438 \u0442.\u043f. \u0412 \u043e\u0431\u0449\u0435\u043c \u043e\u043d \u043a\u0440\u0430\u0439\u043d\u0435 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u0435\u043d. \u0412-\u0442\u0440\u0435\u0442\u044c\u0438\u0445, \u0443 \u043d\u0435\u0433\u043e \u043d\u0435\u0442 \u043d\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u043d\u0438 \u0446\u0438\u043a\u043b\u043e\u0432. \u0412\u0441\u044e \u0446\u0438\u043a\u043b\u0438\u0447\u043d\u043e\u0441\u0442\u044c \u043e\u043d \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u044e, \u0430 \u0442\u0430\u043a\u043e\u0432\u0430\u044f \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u044f \u043d\u0435\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0430! \u042d\u0442\u043e \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0443\u0436\u0435 \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0451\u043d\u043d\u0443\u044e \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u044f\u0437\u044b\u043a\u0430, \u043d\u043e \u043e \u0442\u0430\u043a\u043e\u0432\u043e\u0439 \u0435\u0449\u0451 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440 \u043d\u0430 \u043d\u0438\u0437\u043a\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u044f\u0437\u044b\u043a\u0430.<\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u044f\u0437\u044b\u043a \u043a\u0440\u0430\u0439\u043d\u0435 \u043f\u043b\u043e\u0445 \u0432 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0441\u0432\u043e\u0451\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0438, \u043d\u043e \u0441 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0435\u0433\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u0433\u0440\u0443\u0437\u043a\u0438 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u043a\u0430\u0440\u0434\u0438\u043d\u0430\u043b\u044c\u043d\u043e \u0435\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0438\u043f\u044b, \u0446\u0438\u043a\u043b\u044b \u0438 \u0442.\u043f. \u0418\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0441\u0430\u043c \u044f\u0437\u044b\u043a \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430.<\/p>\n<h2>\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438<\/h2>\n<p>\u042f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f ALLang \u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u0430\u043c\u043e\u043f\u0438\u0441\u043d\u043e\u0439 \u0441\u0442\u0435\u043a\u043e\u0432\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 CVM. \u0422\u0430\u043a\u043e\u0432\u0430\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0433\u0438\u0431\u043a\u0438 \u0438 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u0430, \u0432 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u0441 \u044f\u0437\u044b\u043a\u043e\u043c ALLang. \u041e\u043d\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0441\u0432\u043e\u0439 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0435\u0433\u043e \u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 (\u0431\u0430\u0439\u0442\u043a\u043e\u0434) \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. <\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 CVM \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u044b \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\">Bytecode<\/p>\n<\/td>\n<td>\n<p align=\"left\">Stack<\/p>\n<\/td>\n<td>\n<p align=\"left\">Args<\/p>\n<\/td>\n<td>\n<p align=\"left\">Instruction<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0x0A<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">push<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0x0B<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">pop<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0x0C<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">inc<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0x0D<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">dec<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0x0E<\/p>\n<\/td>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">jg<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0x0F<\/p>\n<\/td>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">je<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0x1A<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">jmp<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0x2A<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">stor<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0x3A<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">load<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0x4A<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">call<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0x5A<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">hlt<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u044f\u0437\u044b\u043a\u0430 ALLang \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u0430\u043f\u043e\u0432:<\/p>\n<ol>\n<li>\n<p>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f. \u041f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 \u043a\u043e\u0434 \u044f\u0437\u044b\u043a\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430 \u0434\u043b\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b CVM.<\/p>\n<\/li>\n<li>\n<p>\u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f. \u041f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 (\u0431\u0430\u0439\u0442\u043a\u043e\u0434) \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u043e\u0439 CVM.<\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435. \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 CVM \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0431\u0430\u0439\u0442\u043a\u043e\u0434.<\/p>\n<\/li>\n<\/ol>\n<p>\u0422\u0430\u043a\u043e\u0435 \u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0432 \u0432\u0438\u0434\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439:<\/p>\n<pre><code class=\"cpp\">extern int all_compile(FILE *output, FILE *input); extern int cvm_compile(FILE *output, FILE *input); extern int cvm_load(uint8_t *memory, int32_t msize); extern int cvm_run(int32_t **output, int32_t *input);<\/code><\/pre>\n<p>\u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 CVM \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u0430 \u043a \u044f\u0437\u044b\u043a\u0443 ALLang \u0438 \u043c\u043e\u0436\u0435\u0442 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u043a\u043e\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u044b\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u043d\u0430 \u0435\u0451 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u043c \u0434\u0438\u0430\u043b\u0435\u043a\u0442\u0435. \u041a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code class=\"assembly\">labl _start push begin  jmp  ; main labl begin ; mul5(x) = x * 5 ; where x = 10 push 10 push mul5 call push end jmp  ; exit  labl end hlt  ; x = arg[1] labl mul5 ; y = x * 5 push -2 load  push 5 mul  ; x = y push -1 push -3 stor   ; return pop jmp<\/code><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code>{ \"result\": [50], \"return\": 0 }<\/code><\/pre>\n<p>\u041a\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u0442\u043e\u0442 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442, \u0447\u0442\u043e CVM \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e <code>mul<\/code>, \u0445\u043e\u0442\u044f \u0442\u0430\u043a\u043e\u0432\u043e\u0439 \u043d\u0435 \u0431\u044b\u043b\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439. \u0421\u0443\u0442\u044c \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u043c\u0438\u043c\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0432 \u0442\u0435\u043e\u0440\u0438\u0438 (\u0432 \u0442\u0435\u043e\u0440\u0438\u0438) \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u0441\u0451, \u0442\u0430\u043a\u043e\u0432\u0430\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u044b \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435. <\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">Bytecode<\/p>\n<\/td>\n<td>\n<p align=\"left\">Stack<\/p>\n<\/td>\n<td>\n<p align=\"left\">Args<\/p>\n<\/td>\n<td>\n<p align=\"left\">Instruction<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xA0<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">add<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xB0<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">sub<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xC0<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">mul<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xD0<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">div<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xE0<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">mod<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xF0<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">shr<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xA1<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">shl<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xB1<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">xor<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xC1<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">and<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xD1<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">or<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xE1<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">not<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xF1<\/p>\n<\/td>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">jl<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xA2<\/p>\n<\/td>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">jne<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xB2<\/p>\n<\/td>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">jle<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xC2<\/p>\n<\/td>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">jge<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xD2<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">allc<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0418 \u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u0430\u044f \u0441 \u044f\u0437\u044b\u043a\u043e\u043c ALLang. \u0422\u0430\u043a\u043e\u0432\u043e\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b CVM. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043b\u044e\u0431\u043e\u0435 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041b\u044e\u0431\u043e\u0435 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0442.\u0434. \u0412 \u044d\u0442\u043e\u043c \u0438\u0441\u0442\u0438\u043d\u043d\u0430\u044f \u0443\u0436\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0435\u0433\u043e \u043a\u0440\u0430\u0441\u043e\u0442\u0430. \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0432\u043e\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u0438\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f &#171;\u0432\u0442\u0443\u043f\u0443\u044e&#187; \u0430\u043a\u0441\u0438\u043e\u043c\u044b \u041f\u0435\u0430\u043d\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u0435\u043c\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0447\u0442\u043e-\u043b\u0438\u0431\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c. <\/p>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e \u044d\u0442\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u0435, \u0435\u0441\u043b\u0438 \u043c\u044b \u0441\u043a\u0430\u0436\u0435\u043c ALLang \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0430\u043b \u0441 <code>x = 6<\/code>, \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0443\u0445\u043d\u0435\u0442 \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0441\u0442\u0435\u043a \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d.<\/p>\n<pre><code>{ \"error\": \"run byte code\", \"return\": 7 }<\/code><\/pre>\n<p>\u0417\u043d\u0430\u044f \u044d\u0442\u043e, \u043c\u044b \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0430\u043a \u0435\u0433\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u044e \u0443\u0436\u0430\u0441\u043d\u0443\u044e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e \u0432 \u044f\u0437\u044b\u043a \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430, \u0442\u0430\u043a \u0438 \u0435\u0433\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. <\/p>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0430\u043b\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430 \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 ALLang<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"assembly\">labl _init push main call hlt labl _eq push -3 load push -3 load push _if_eq je labl _else_eq push 0 push _end_eq jmp  labl _if_eq push 1 labl _end_eq push -1 push -4 stor pop jmp labl _inc push -2 load inc push -1 push -3 stor pop jmp labl inc push -2 load push -1 load push _inc call push -1 push -4 stor pop pop jmp labl _dec push -2 load dec push -1 push -3 stor pop jmp labl dec push -2 load push -1 load push _dec call push -1 push -4 stor pop pop jmp labl ret push -2 load push -1 load push inc call push dec call push -1 push -4 stor pop pop jmp labl not push -2 load push -1 load push 0 push _eq call pop push 0 push _else_0 je labl _if_0 push 1 push ret call push _end_0 jmp labl _else_0 push 0 push ret call labl _end_0 push -1 push -4 stor pop pop jmp labl _gr push -3 load push -3 load push _if_gr jg labl _else_gr push 0 push _end_gr jmp  labl _if_gr push 1 labl _end_gr push -1 push -4 stor pop jmp labl neq push -3 load push -3 load push -2 load push -2 load push _eq call pop push not call push -1 push -6 stor pop pop pop jmp labl or push -3 load push -3 load push -2 load push 0 push neq call pop push 0 push _else_1 je labl _if_1 push 1 push ret call push _end_1 jmp labl _else_1 push -1 load push 0 push neq call pop push 0 push _else_2 je labl _if_2 push 1 push ret call push _end_2 jmp labl _else_2 push 0 push ret call labl _end_2 labl _end_1 push -1 push -6 stor pop pop pop jmp labl ge push -3 load push -3 load push -2 load push -2 load push _eq call pop push -3 load push -3 load push _gr call pop push or call pop push -1 push -6 stor pop pop pop jmp labl lr push -3 load push -3 load push -2 load push -2 load push ge call pop push not call push -1 push -6 stor pop pop pop jmp labl eq push -3 load push -3 load push -2 load push -2 load push _eq call pop push -1 push -6 stor pop pop pop jmp labl add push -3 load push -3 load push -1 load push 0 push eq call pop push 0 push _else_3 je labl _if_3 push -2 load push ret call push _end_3 jmp labl _else_3 push -1 load push 0 push lr call pop push 0 push _else_4 je labl _if_4 push -2 load push -2 load push inc call push add call pop push dec call push _end_4 jmp labl _else_4 push -2 load push -2 load push dec call push add call pop push inc call labl _end_4 labl _end_3 push -1 push -6 stor pop pop pop jmp labl sub push -3 load push -3 load push -1 load push 0 push eq call pop push 0 push _else_5 je labl _if_5 push -2 load push ret call push _end_5 jmp labl _else_5 push -1 load push 0 push lr call pop push 0 push _else_6 je labl _if_6 push -2 load push -2 load push inc call push sub call pop push inc call push _end_6 jmp labl _else_6 push -2 load push -2 load push dec call push sub call pop push dec call labl _end_6 labl _end_5 push -1 push -6 stor pop pop pop jmp labl neg push -2 load push 0 push -2 load push sub call pop push -1 push -4 stor pop pop jmp labl abs push -2 load push -1 load push 0 push lr call pop push 0 push _else_7 je labl _if_7 push -1 load push neg call push _end_7 jmp labl _else_7 push -1 load push ret call labl _end_7 push -1 push -4 stor pop pop jmp labl and push -3 load push -3 load push -2 load push 0 push neq call pop push 0 push _else_8 je labl _if_8 push -1 load push 0 push neq call pop push 0 push _else_9 je labl _if_9 push 1 push ret call push _end_9 jmp labl _else_9 push 0 push ret call labl _end_9 push _end_8 jmp labl _else_8 push 0 push ret call labl _end_8 push -1 push -6 stor pop pop pop jmp labl xor push -3 load push -3 load push -2 load push not call push -2 load push and call pop push -3 load push -3 load push not call push and call pop push or call pop push -1 push -6 stor pop pop pop jmp labl mul push -3 load push -3 load push -2 load push 0 push lr call pop push -2 load push 0 push lr call pop push xor call pop push 0 push _else_10 je labl _if_10 push -2 load push abs call push -2 load push abs call push mul call pop push neg call push _end_10 jmp labl _else_10 push -1 load push 0 push eq call pop push 0 push _else_11 je labl _if_11 push 0 push ret call push _end_11 jmp labl _else_11 push -2 load push abs call push -3 load push abs call push -3 load push abs call push dec call push mul call pop push add call pop labl _end_11 labl _end_10 push -1 push -6 stor pop pop pop jmp labl main push -2 load push 2 push -2 load push fact call push mul call pop push -1 push -4 stor pop pop jmp labl fact push -2 load push -1 load push 1 push lr call pop push 0 push _else_12 je labl _if_12 push 1 push ret call push _end_12 jmp labl _else_12 push -1 load push -2 load push dec call push fact call push mul call pop labl _end_12 push -1 push -4 stor pop pop jmp<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>*\u041a\u043e\u0434 \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0430\u043b\u0430 \u043c\u043e\u0433 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442\u044c \u043a\u0443\u0434\u0430 \u0431\u043e\u043b\u0435\u0435 \u043c\u0438\u043d\u0438\u0430\u0442\u044e\u0440\u043d\u044b\u043c, \u0435\u0441\u043b\u0438 \u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u043e\u0447\u043d\u044b\u0435 (\u0430 \u043d\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435) \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b, \u0438 \u0435\u0441\u043b\u0438 \u0431\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0432\u0435\u0437\u0434\u0435 \u0438 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u044f.<\/p>\n<pre><code class=\"assembly\">labl begin     push 10     push fact     call     push end     jmp labl end     hlt  ; A &lt;- fact(A) labl fact     ; B &lt;- A     push -2     load labl _fact_for     ; IF B &lt; 2     push -1     load     push 2     push _fact_end     jl     ; B &lt;- B - 1     push -1     load     push 1     sub     push -1     push -2     stor     pop     ; A &lt;- A * B     push -3     load     push -2     load     mul     push -1     push -4     stor     pop     push _fact_for     jmp labl _fact_end     ; return     pop     jmp<\/code><\/pre>\n<h2>\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/h2>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c <code>assembly<\/code> \u0438 <code>source<\/code> \u0442\u0438\u043f\u044b. \u041d\u0430\u0447\u043d\u0451\u043c \u043f\u043e\u0436\u0430\u043b\u0443\u0439 \u0441 <code>assembly<\/code>, \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f <code>lib\/vms<\/code>.<\/p>\n<p>\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0442\u0438\u043f\u0430 <code>assembly<\/code> \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0431\u0451\u0440\u0442\u043e\u0447\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0430\u0434 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b CVM \u0441 \u0446\u0435\u043b\u044c\u044e, \u0447\u0442\u043e\u0431\u044b \u044f\u0437\u044b\u043a ALLang \u043c\u043e\u0433 \u0438\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f. \u041a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f <code>inc<\/code>.<\/p>\n<pre><code class=\"assembly\">labl _inc push -2 load inc push -1 push -3 stor pop jmp<\/code><\/pre>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, <code>labl _inc<\/code> &#8212; \u044d\u0442\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0438\u043c\u0435\u043d\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0442\u0430\u043a\u043e\u0432\u0443\u044e \u043c\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0438\u0437 ALLang, \u0435\u0441\u043b\u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0442\u0430\u043a\u043e\u0432\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043f\u0440\u044f\u043c\u043e \u0438\u043b\u0438 \u043a\u043e\u0441\u0432\u0435\u043d\u043d\u043e (\u043a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440 \u0447\u0435\u0440\u0435\u0437 \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>inc<\/code>, <code>add<\/code> \u0438 \u0442.\u0434.). <\/p>\n<p>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 <code>push -2<\/code> \u0438 <code>load<\/code> \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u044e\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0438\u0437 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0434\u0430\u043b\u0435\u0435 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 <code>inc<\/code> \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u043d\u043e\u0432\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430. \u041f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 <code>push -1<\/code>, <code>push -3<\/code>, <code>stor<\/code> \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442. \u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f <code>pop<\/code> \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e. \u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f <code>jmp<\/code> \u043f\u0435\u0440\u0435\u043f\u0440\u044b\u0433\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043d\u0430 \u0442\u043e\u0447\u043a\u0443 \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>labl _inc<\/code>. \u0412 \u043e\u0431\u0449\u0435\u043c \u043f\u043e \u0442\u0430\u043a\u043e\u043c\u0443 \u0448\u0430\u0431\u043b\u043e\u043d\u0443 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u044f\u0437\u044b\u043a\u0430 ALLang.<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043d\u0438\u043a\u0437\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u044f\u0437\u044b\u043a\u0430 ALLang<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u0435\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430:<\/p>\n<pre><code class=\"assembly\">labl _dec push -2 load dec push -1 push -3 stor pop jmp<\/code><\/pre>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u0447\u0438\u0441\u0435\u043b (==):<\/p>\n<pre><code class=\"assembly\">labl _eq push -3 load push -3 load push _if_eq je labl _else_eq push 0 push _end_eq jmp  labl _if_eq push 1 labl _end_eq push -1 push -4 stor pop jmp<\/code><\/pre>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u0447\u0438\u0441\u0435\u043b (>):<\/p>\n<pre><code class=\"assembly\">labl _gr push -3 load push -3 load push _if_gr jg labl _else_gr push 0 push _end_gr jmp  labl _if_gr push 1 labl _end_gr push -1 push -4 stor pop jmp<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0412 \u043d\u0430\u0448\u0435\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u044f \u043f\u0440\u0438\u0432\u0451\u043b \u043b\u0438\u0448\u044c \u0447\u0435\u0442\u044b\u0440\u0435 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u043e\u0434\u0438\u043d \u043a\u043e\u0434 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u0441 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>main<\/code>. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u043d\u043e \u043c\u043e\u0433\u0443\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0436\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043d\u0435\u0447\u0438\u0441\u0442\u044b\u043c\u0438 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432. \u0412 \u043d\u0430\u0448\u0435\u043c \u0436\u0435 \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0434\u043d\u043e \u0447\u0438\u0441\u043b\u043e. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043b\u0435\u0433\u043a\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 _get (\u0434\u043b\u044f \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u0432\u0437\u044f\u0442\u0438\u044f \u0438\u0445 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443) \u0438 <code>_set<\/code> (\u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432):<\/p>\n<pre><code class=\"lisp\">(include assembly lib\/vms\/init.vms lib\/vms\/set.vms lib\/vms\/get.vms)  (include source lib\/all\/lr.all lib\/all\/ret.all lib\/all\/dec.all lib\/all\/mul.all)  ; arg[2] &lt;- _set(arg[0], fact(arg[1])) = 0 (define (var1) (ret 1)) ; arg[1] (define (var0) (ret 0)) ; arg[0] &lt;- fact(arg[1])  ; args:    2  1  0 ; input:  [0, 5, 0] ; output: [0, 5, 120] (define (main) (_set (var0)  (fact (_get (var1)))))  ; f(x) = 1, if x &lt; 1 ; f(x) = x * f(x-1) (define (fact x) (if (lr x 1)  (ret 1) (mul x (fact (dec x)))))<\/code><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f:<\/p>\n<pre><code>{ \"result\": [0,5,120], \"return\": 0 }<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u041d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 _get \u0438 _set <\/summary>\n<div class=\"spoiler__content\">\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f _set:<\/p>\n<pre><code class=\"assembly\">labl _set push -3      load      push -3     load     push -1     push -3     load     stor     push 0     push -1     push -6     stor      pop     pop     pop jmp<\/code><\/pre>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f _get:<\/p>\n<pre><code class=\"assembly\">labl _get push -2     load      load     push -1     push -3     stor     pop jmp <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0412\u044b\u0448\u0435\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432 \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u043c\u044b\u0441\u043b\u0435 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044f\u0437\u044b\u043a ALLang \u043d\u0430\u043b\u0435\u0442\u0443, \u0438\u0437\u043c\u0435\u043d\u044f\u044f \u0435\u0433\u043e \u0436\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448 \u0432 \u0442\u043e\u043c \u043f\u043b\u0430\u043d\u0435, \u0447\u0442\u043e \u043e\u043d \u0432\u0441\u0451 \u0436\u0435 &#171;\u0433\u0440\u044f\u0437\u043d\u0438\u0442&#187; \u0447\u0438\u0441\u0442\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u044f\u0437\u044b\u043a\u0430.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u043a \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044e \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u044f\u0437\u044b\u043a\u0430 ALLang, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 <code>lib\/all<\/code>. \u0422\u0430\u043a\u043e\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e, \u043d\u043e \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043b\u0438\u0448\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e.<\/p>\n<p>\u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u0441\u0430\u043c\u044b\u043c\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0434\u0435\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u043e \u0443\u0436\u0435 \u0432 \u0432\u0438\u0434\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0445 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043e\u0432. \u041a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440, \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>inc<\/code>:<\/p>\n<pre><code class=\"lisp\">(include assembly     lib\/vms\/inc.vms)  ; inc(x) = x + 1 (define (inc x)     (_inc x))<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0435\u0451 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043e\u0431\u0451\u0440\u0442\u043a\u0430. \u0420\u043e\u0432\u043d\u043e \u0442\u0430\u043a\u0430\u044f \u0436\u0435 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 <code>dec<\/code>, <code>eq<\/code>, <code>gr<\/code>.<\/p>\n<p>\u0418\u043d\u043e\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>eq<\/code>, \u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u044e. \u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0443\u0436\u043d\u043e \u043b\u0438\u0448\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e <code>eq<\/code> \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043a \u043d\u0435\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e <code>not<\/code>. \u0422\u0430\u043a\u0436\u0435 \u043e\u043d\u043e \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 ALLang.<\/p>\n<pre><code class=\"lisp\">(include source     lib\/all\/eq.all     lib\/all\/not.all)  ; neq(x, y) = 0, if x = y ; neq(x, y) = 1 (define (neq x y) (not (eq x y)))<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u0424\u0443\u043d\u043a\u0446\u0438\u044f not<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f not:<\/p>\n<pre><code class=\"lisp\">(include source  lib\/all\/eq.all lib\/all\/ret.all)  ; not(x) = 1, if x = 0 ; not(x) = 0 (define (not x) (if (eq x 0) (ret 1) (ret 0)))<\/code><\/pre>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f ret:<\/p>\n<pre><code class=\"lisp\">(include source     lib\/all\/inc.all     lib\/all\/dec.all)  ; ret(x) = x (define (ret x)     (dec (inc x)))<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0414\u0430\u043b\u0435\u0435, \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043a\u0430\u043a \u0435\u0451 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<pre><code class=\"lisp\">(include source     lib\/all\/inc.all     lib\/all\/dec.all     lib\/all\/eq.all     lib\/all\/ret.all     lib\/all\/lr.all)  ; add(x, y) = x, if y = 0 ; add(x, y) = add(x, y+1) - 1, if y &lt; 0 ; add(x, y) = add(x, y-1) + 1 (define (add x y)     (if (eq y 0)         (ret x)         (if (lr y 0)             (dec (add x (inc y)))             (inc (add x (dec y))))))<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u0418 \u0435\u0449\u0451 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"lisp\">(include source     lib\/all\/add.all     lib\/all\/dec.all     lib\/all\/eq.all     lib\/all\/abs.all     lib\/all\/neg.all     lib\/all\/xor.all     lib\/all\/ret.all     lib\/all\/lr.all)  ; mul(x, y) = -mul(|x|, |y|), if x &lt; 0 xor y &lt; 0 = 1 ; mul(x, y) = 0, if y = 0 ; mul(x, y) = |x| + mul(|x|, |y| - 1) (define (mul x y)     (if (xor (lr x 0) (lr y 0))         (neg (mul (abs x) (abs y)))         (if (eq y 0)             (ret 0)             (add (abs x) (mul (abs x) (dec (abs y)))))))<\/code><\/pre>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u044f:<\/p>\n<pre><code class=\"lisp\">(include source     lib\/all\/inc.all     lib\/all\/dec.all     lib\/all\/eq.all     lib\/all\/ret.all     lib\/all\/lr.all)  ; sub(x, y) = x, if y = 0 ; sub(x, y) = sub(x, y+1) + 1 ; sub(x, y) = sub(x, y-1) - 1 (define (sub x y)     (if (eq y 0)         (ret x)         (if (lr y 0)             (inc (sub x (inc y)))             (dec (sub x (dec y))))))<\/code><\/pre>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u0435\u043b\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"lisp\">(include source     lib\/all\/sub.all     lib\/all\/inc.all     lib\/all\/abs.all     lib\/all\/ret.all     lib\/all\/lr.all     lib\/all\/xor.all     lib\/all\/neg.all)  ; div(x, y) = -div(|x|, |y|), if x &lt; 0 xor y &lt; 0 = 1 ; div(x, y) = 0, if |x| &lt; |y| ; div(x, y) = div(|x| - |y|, |y|) + 1 (define (div x y)     (if (xor (lr x 0) (lr y 0))         (neg (div (abs x) (abs y)))         (if (lr (abs x) (abs y))             (ret 0)             (inc (div (sub (abs x) (abs y)) (abs y))))))<\/code><\/pre>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f abs:<\/p>\n<pre><code class=\"lisp\">(include source     lib\/all\/neg.all     lib\/all\/ret.all     lib\/all\/lr.all)  ; abs(x) = -x, if x &lt; 0 ; abs(x) = x (define (abs x)     (if (lr x 0)         (neg x)         (ret x)))<\/code><\/pre>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f neg:<\/p>\n<pre><code class=\"lisp\">(include source     lib\/all\/sub.all)  ; neg(x) = -x (define (neg x)     (sub 0 x))<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"lisp\">(include source lib\/all\/ret.all     lib\/all\/neq.all)  ; and(x, y) = 1, if x = 1, y = 1 ; and(x, y) = 0 (define (and x y) (if (neq x 0)  (if (neq y 0) (ret 1) (ret 0)) (ret 0)))<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u0418 \u0435\u0449\u0451 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0439<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f not:<\/p>\n<pre><code class=\"lisp\">(include source  lib\/all\/eq.all lib\/all\/ret.all)  ; not(x) = 1, if x = 0 ; not(x) = 0 (define (not x) (if (eq x 0) (ret 1) (ret 0)))<\/code><\/pre>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f or:<\/p>\n<pre><code class=\"lisp\">(include source lib\/all\/ret.all     lib\/all\/neq.all)  ; or(x, y) = 0, if x = 0, y = 0 ; or(x, y) = 1 (define (or x y) (if (neq x 0) (ret 1) (if (neq y 0) (ret 1) (ret 0))))<\/code><\/pre>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f xor:<\/p>\n<pre><code class=\"lisp\">(include source     lib\/all\/and.all     lib\/all\/or.all     lib\/all\/not.all)  ; xor(x, y) = (~x and y) or (x and ~y) (define (xor x y) (or (and (not x) y) (and x (not y)))) <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435, \u043c\u044b \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0432\u0441\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u043d\u0443\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (\u043b\u043e\u0433\u0438\u0447\u043d\u043e, \u0432\u0435\u0434\u044c \u043a\u043e\u043c\u0443 \u0432 \u0437\u0434\u0440\u0430\u0432\u043e\u043c \u0443\u043c\u0435 \u0437\u0430\u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0442.\u0434.). \u0414\u0430\u043d\u043d\u044b\u0435 &#171;\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u044b&#187; \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c\u0438 \u043b\u0438\u0448\u044c \u0438\u0437 \u043f\u0440\u0438\u0440\u043e\u0434\u044b \u044f\u0437\u044b\u043a\u0430 ALLang, \u043a\u043e\u0433\u0434\u0430 \u0442\u0430\u043a\u043e\u0432\u043e\u0439 \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d \u043a \u044f\u0437\u044b\u043a\u0443 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b CVM (\u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0438 \u0432 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445, \u043f\u043e\u0434\u043e\u0431\u0438\u044f \u044f\u0437\u044b\u043a\u0430 \u0421\u0438).<\/p>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0421\u0430\u043c ALLang \u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 CVM \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0421\u0438. \u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0432\u0435\u0441\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 ALLang&#8217;a \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/github.com\/number571\/allang\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>, \u0430 \u043a\u043e\u0434 CVM <a href=\"https:\/\/github.com\/number571\/cvm\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>. \u0427\u0442\u043e \u0442\u0430\u043c, \u0447\u0442\u043e \u0442\u0430\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043c\u0430\u043b\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u0434\u0430.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 ALLang, \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0435\u0439:<\/p>\n<pre><code>make install # \u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442 CVM make build # \u041a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442 \u043a\u043e\u0434 ALLang \u0432 \u044f\u0437\u044b\u043a \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430 make run # CVM \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u0443\u0435\u0442 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434 \u0432 \u0431\u0430\u0439\u0442\u043a\u043e\u0434 \u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0435\u0433\u043e # \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0434\u0432\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0430\u043a make make # \u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 build \u0438 run<\/code><\/pre>\n<p>\u041a\u0430\u043a \u0432\u044b \u0443\u0432\u0438\u0434\u0435\u043b\u0438, \u0441\u0430\u043c \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u044d\u0437\u043e\u0442\u0435\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u044f\u0437\u044b\u043a\u043e\u043c, \u043d\u0435\u0436\u0435\u043b\u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u044b\u043c. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0451\u0433\u043a\u0430\u044f &#171;\u043a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0430\u0446\u0438\u044f&#187;, \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044f\u0437\u044b\u043a \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u0432\u0441\u0451 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u043e\u0432\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439. \u0414\u0440\u0443\u0433\u043e\u0439, \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u0436\u0430\u0441\u043d\u043e\u0435 \u0435\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0432\u044b\u0437\u043e\u0432\u043e\u0432 <code>inc<\/code> \u0438 <code>dec<\/code> \u0432 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 (\u0438\u0437-\u0437\u0430 \u0447\u0435\u0433\u043e \u0441\u0442\u0435\u043a \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043d\u0430\u0433\u043b\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0451\u0442 \u043d\u0430\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f). \u041d\u0443 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c \u043f\u0443\u043d\u043a\u0442\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0433\u043e \u0447\u0438\u0441\u0442\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u0447\u0442\u043e \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0443\u0436\u0435 \u0440\u0435\u0434\u043a\u043e \u0433\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u044c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f\u0437\u044b\u043a \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e \u0441\u0432\u043e\u0435\u0439 \u0441\u0443\u0442\u0438 \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u0438 \u043a\u0440\u0430\u0441\u0438\u0432\u043e \u0443\u0436\u0430\u0441\u043d\u044b\u043c (\u0430 \u043c\u043e\u0436\u0435\u0442 \u0438 \u0443\u0436\u0430\u0441\u043d\u043e \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u043c).<\/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\/post\/703036\/\"> https:\/\/habr.com\/ru\/post\/703036\/<\/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<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434 \u044f \u043f\u0438\u0441\u0430\u043b \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c ALLang. \u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u0435\u0433\u043e \u0437\u0432\u0443\u0447\u0438\u0442 \u0442\u0430\u043a: <em>Another LISP Language<\/em>, \u0447\u0442\u043e \u043d\u0435\u0437\u0430\u043c\u044b\u0441\u043b\u043e\u0432\u0430\u0442\u043e \u0434\u0430\u0451\u0442 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0435\u0433\u043e \u0432\u0442\u043e\u0440\u043e\u0441\u043e\u0440\u0442\u043d\u043e\u0441\u0442\u0438. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0442\u0430\u043a\u043e\u0432\u043e\u0439 \u044f\u0437\u044b\u043a \u0432\u0441\u0451 \u0436\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0432 \u0441\u0432\u043e\u0435\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u044d\u0437\u043e\u0442\u0435\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432. \u041f\u0438\u0441\u0430\u043b \u044f ALLang \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e \u0444\u0430\u043d\u0443. \u041d\u043e \u043d\u0430\u0447\u043d\u0451\u043c \u043c\u044b \u043f\u043e\u0436\u0430\u043b\u0443\u0439 \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u0441 \u0435\u0433\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0445 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u0443\u0433\u043b\u0443\u0431\u043b\u044f\u0442\u044c\u0441\u044f \u0432\u043d\u0438\u0437, \u0432 \u0441\u0430\u043c\u0443\u044e \u0435\u0433\u043e \u043a\u0440\u0430\u043c\u0435\u0448\u043d\u0443\u044e \u0431\u0435\u0437\u0434\u043d\u0443 \u044d\u0437\u043e\u0442\u0435\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/p>\n<h2>\u0412\u043d\u0435\u0448\u043d\u0438\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438<\/h2>\n<p>\u042f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f ALLang \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u044f\u0437\u044b\u043a LISP \u0434\u0438\u0430\u043b\u0435\u043a\u0442\u0430 Scheme. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u044f\u0437\u044b\u043a ALLang \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0438\u0441\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u044f\u0437\u044b\u043a\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0423 \u043d\u0435\u0433\u043e \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u0432\u043e\u0434\u0430\/\u0432\u044b\u0432\u043e\u0434\u0430, \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0446\u0438\u043a\u043b\u043e\u0432 \u0438 \u0442.\u043f. \u0432\u0435\u0449\u0435\u0439 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u043a\u0430\u043a-\u043b\u0438\u0431\u043e \u0441 \u0438\u043c\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u044f\u0437\u044b\u043a\u0430\u043c\u0438.<\/p>\n<p>\u0412 \u044f\u0437\u044b\u043a\u0435 ALLang \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0440\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432\u0430, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438: <code>include<\/code>, <code>define<\/code>, <code>if<\/code>. \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <code>include<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0435\u0449\u0451 \u0434\u0432\u0430 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432\u0430 <code>assembly<\/code> \u0438 <code>source<\/code>. \u0412 \u0441\u0443\u043c\u043c\u0435 ALLang \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u044f\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432.<\/p>\n<pre><code class=\"lisp\">; \u041f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0442\u043e\u0447\u043a\u0443 \u0432\u0445\u043e\u0434\u0430 (include assembly lib\/vms\/init.vms)  ; \u041f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0441 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 ; &lt;, -, + \u0438 ret (include source lib\/all\/lr.all lib\/all\/ret.all lib\/all\/dec.all lib\/all\/mul.all)  ; \u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0430\u043b \u043e\u0442 x (define (main x) (fact x))  ; f(x) = 1, if x &lt; 1 ; f(x) = x * f(x-1) (define (fact x) (if (lr x 1)  (ret 1) (mul x (fact (dec x)))))<\/code><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438 <code>x = 5<\/code>:<\/p>\n<pre><code>{ \"result\": [120], \"return\": 0 }<\/code><\/pre>\n<p>\u0412 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u0441 \u044f\u0437\u044b\u043a\u0430\u043c\u0438 LISP \u0434\u0438\u0430\u043b\u0435\u043a\u0442\u0430 Scheme \u0437\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 &#171;\u0442\u043e\u043d\u043a\u043e\u0441\u0442\u0438&#187;. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0432\u0430 \u0442\u0438\u043f\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a &#8212; <code>assembly<\/code> \u0438 <code>source<\/code>. \u041f\u0435\u0440\u0432\u044b\u0439 \u0442\u0438\u043f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0435 \u0434\u0435\u0442\u0430\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u044f\u0437\u044b\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044f\u0437\u044b\u043a \u043a\u0430\u043a \u0443\u0433\u043e\u0434\u043d\u043e, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u0432\u0441\u0435\u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438. \u0412\u0442\u043e\u0440\u043e\u0439 \u0442\u0438\u043f \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043a\u043e\u0434 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0443\u0436\u0435 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 ALLang, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430. <\/p>\n<p>\u0415\u0441\u043b\u0438 \u043c\u044b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u043a\u043e\u0434 <code>lib\/vms\/init.vms<\/code>, \u0442\u043e \u0443\u0432\u0438\u0434\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u043e\u0447\u043a\u0443 \u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432 \u0432\u0438\u0434\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>main<\/code>, \u0445\u043e\u0442\u044c \u0438 \u0432 \u0432\u0438\u0434\u0435 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 (\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u043e\u0437\u0434\u043d\u0435\u0435).<\/p>\n<pre><code class=\"assembly\">labl _init push main call hlt<\/code><\/pre>\n<p>\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0442\u0438\u043f\u0430 <code>source<\/code> \u043c\u044b \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u043d\u0430\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u043a. \u0421\u0435\u0439\u0447\u0430\u0441 \u0436\u0435 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c &#171;\u0443\u0437\u043a\u0438\u0435&#187; \u043c\u0435\u0441\u0442\u0430 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u044f\u0437\u044b\u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u043c\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u0432\u0432\u043e\u0434\u0430 \u0438 \u0432\u044b\u0432\u043e\u0434\u0430, \u0441\u0430\u043c \u044f\u0437\u044b\u043a &#8212; \u044d\u0442\u043e \u0447\u0438\u0441\u0442\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0438 \u043d\u0435 \u0431\u043e\u043b\u0435\u0435. \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443 \u043d\u0430 \u0432\u0445\u043e\u0434 \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0442 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b (\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e main), \u0430 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043a\u043e\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u044f\u0437\u044b\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0442\u0438\u043f\u0430 <code>int32<\/code>, \u043e\u043d \u043d\u0435 \u0437\u043d\u0430\u0435\u0442 \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 <code>int8<\/code>, <code>string<\/code>, <code>struct<\/code>, <code>list<\/code> \u0438 \u0442.\u043f. \u0412 \u043e\u0431\u0449\u0435\u043c \u043e\u043d \u043a\u0440\u0430\u0439\u043d\u0435 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u0435\u043d. \u0412-\u0442\u0440\u0435\u0442\u044c\u0438\u0445, \u0443 \u043d\u0435\u0433\u043e \u043d\u0435\u0442 \u043d\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u043d\u0438 \u0446\u0438\u043a\u043b\u043e\u0432. \u0412\u0441\u044e \u0446\u0438\u043a\u043b\u0438\u0447\u043d\u043e\u0441\u0442\u044c \u043e\u043d \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u044e, \u0430 \u0442\u0430\u043a\u043e\u0432\u0430\u044f \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u044f \u043d\u0435\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0430! \u042d\u0442\u043e \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0443\u0436\u0435 \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0451\u043d\u043d\u0443\u044e \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u044f\u0437\u044b\u043a\u0430, \u043d\u043e \u043e \u0442\u0430\u043a\u043e\u0432\u043e\u0439 \u0435\u0449\u0451 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440 \u043d\u0430 \u043d\u0438\u0437\u043a\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u044f\u0437\u044b\u043a\u0430.<\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u044f\u0437\u044b\u043a \u043a\u0440\u0430\u0439\u043d\u0435 \u043f\u043b\u043e\u0445 \u0432 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0441\u0432\u043e\u0451\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0438, \u043d\u043e \u0441 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0435\u0433\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u0433\u0440\u0443\u0437\u043a\u0438 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u043a\u0430\u0440\u0434\u0438\u043d\u0430\u043b\u044c\u043d\u043e \u0435\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0438\u043f\u044b, \u0446\u0438\u043a\u043b\u044b \u0438 \u0442.\u043f. \u0418\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0441\u0430\u043c \u044f\u0437\u044b\u043a \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430.<\/p>\n<h2>\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438<\/h2>\n<p>\u042f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f ALLang \u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u0430\u043c\u043e\u043f\u0438\u0441\u043d\u043e\u0439 \u0441\u0442\u0435\u043a\u043e\u0432\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 CVM. \u0422\u0430\u043a\u043e\u0432\u0430\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0433\u0438\u0431\u043a\u0438 \u0438 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u0430, \u0432 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u0441 \u044f\u0437\u044b\u043a\u043e\u043c ALLang. \u041e\u043d\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0441\u0432\u043e\u0439 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0435\u0433\u043e \u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 (\u0431\u0430\u0439\u0442\u043a\u043e\u0434) \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. <\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 CVM \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u044b \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\">Bytecode<\/p>\n<\/td>\n<td>\n<p align=\"left\">Stack<\/p>\n<\/td>\n<td>\n<p align=\"left\">Args<\/p>\n<\/td>\n<td>\n<p align=\"left\">Instruction<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0x0A<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">push<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0x0B<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">pop<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0x0C<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">inc<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0x0D<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">dec<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0x0E<\/p>\n<\/td>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">jg<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0x0F<\/p>\n<\/td>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">je<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0x1A<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">jmp<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0x2A<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">stor<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0x3A<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">load<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0x4A<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">call<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0x5A<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">hlt<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u044f\u0437\u044b\u043a\u0430 ALLang \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u0430\u043f\u043e\u0432:<\/p>\n<ol>\n<li>\n<p>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f. \u041f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 \u043a\u043e\u0434 \u044f\u0437\u044b\u043a\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430 \u0434\u043b\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b CVM.<\/p>\n<\/li>\n<li>\n<p>\u0422\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f. \u041f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 (\u0431\u0430\u0439\u0442\u043a\u043e\u0434) \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u043e\u0439 CVM.<\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435. \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 CVM \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0431\u0430\u0439\u0442\u043a\u043e\u0434.<\/p>\n<\/li>\n<\/ol>\n<p>\u0422\u0430\u043a\u043e\u0435 \u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0432 \u0432\u0438\u0434\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439:<\/p>\n<pre><code class=\"cpp\">extern int all_compile(FILE *output, FILE *input); extern int cvm_compile(FILE *output, FILE *input); extern int cvm_load(uint8_t *memory, int32_t msize); extern int cvm_run(int32_t **output, int32_t *input);<\/code><\/pre>\n<p>\u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 CVM \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u0430 \u043a \u044f\u0437\u044b\u043a\u0443 ALLang \u0438 \u043c\u043e\u0436\u0435\u0442 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u043a\u043e\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u044b\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u043d\u0430 \u0435\u0451 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u043e\u043c \u0434\u0438\u0430\u043b\u0435\u043a\u0442\u0435. \u041a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code class=\"assembly\">labl _start push begin  jmp  ; main labl begin ; mul5(x) = x * 5 ; where x = 10 push 10 push mul5 call push end jmp  ; exit  labl end hlt  ; x = arg[1] labl mul5 ; y = x * 5 push -2 load  push 5 mul  ; x = y push -1 push -3 stor   ; return pop jmp<\/code><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code>{ \"result\": [50], \"return\": 0 }<\/code><\/pre>\n<p>\u041a\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u0442\u043e\u0442 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442, \u0447\u0442\u043e CVM \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e <code>mul<\/code>, \u0445\u043e\u0442\u044f \u0442\u0430\u043a\u043e\u0432\u043e\u0439 \u043d\u0435 \u0431\u044b\u043b\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439. \u0421\u0443\u0442\u044c \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u043c\u0438\u043c\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0432 \u0442\u0435\u043e\u0440\u0438\u0438 (\u0432 \u0442\u0435\u043e\u0440\u0438\u0438) \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u0441\u0451, \u0442\u0430\u043a\u043e\u0432\u0430\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u044b \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435. <\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">Bytecode<\/p>\n<\/td>\n<td>\n<p align=\"left\">Stack<\/p>\n<\/td>\n<td>\n<p align=\"left\">Args<\/p>\n<\/td>\n<td>\n<p align=\"left\">Instruction<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xA0<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">add<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xB0<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">sub<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xC0<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">mul<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xD0<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">div<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xE0<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">mod<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xF0<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">shr<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xA1<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">shl<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xB1<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">xor<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xC1<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">and<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xD1<\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">or<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xE1<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">not<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xF1<\/p>\n<\/td>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">jl<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xA2<\/p>\n<\/td>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">jne<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xB2<\/p>\n<\/td>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">jle<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xC2<\/p>\n<\/td>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">jge<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"left\">0xD2<\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">allc<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0418 \u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u0430\u044f \u0441 \u044f\u0437\u044b\u043a\u043e\u043c ALLang. \u0422\u0430\u043a\u043e\u0432\u043e\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b CVM. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043b\u044e\u0431\u043e\u0435 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041b\u044e\u0431\u043e\u0435 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0442.\u0434. \u0412 \u044d\u0442\u043e\u043c \u0438\u0441\u0442\u0438\u043d\u043d\u0430\u044f \u0443\u0436\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0435\u0433\u043e \u043a\u0440\u0430\u0441\u043e\u0442\u0430. \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0432\u043e\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u0438\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f &#171;\u0432\u0442\u0443\u043f\u0443\u044e&#187; \u0430\u043a\u0441\u0438\u043e\u043c\u044b \u041f\u0435\u0430\u043d\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u0435\u043c\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0447\u0442\u043e-\u043b\u0438\u0431\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c. <\/p>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e \u044d\u0442\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u0435, \u0435\u0441\u043b\u0438 \u043c\u044b \u0441\u043a\u0430\u0436\u0435\u043c ALLang \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0430\u043b \u0441 <code>x = 6<\/code>, \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0443\u0445\u043d\u0435\u0442 \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0441\u0442\u0435\u043a \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d.<\/p>\n<pre><code>{ \"error\": \"run byte code\", \"return\": 7 }<\/code><\/pre>\n<p>\u0417\u043d\u0430\u044f \u044d\u0442\u043e, \u043c\u044b \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0430\u043a \u0435\u0433\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u044e \u0443\u0436\u0430\u0441\u043d\u0443\u044e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e \u0432 \u044f\u0437\u044b\u043a \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430, \u0442\u0430\u043a \u0438 \u0435\u0433\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. <\/p>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0430\u043b\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430 \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 ALLang<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"assembly\">labl _init push main call hlt labl _eq push -3 load push -3 load push _if_eq je labl _else_eq push 0 push _end_eq jmp  labl _if_eq push 1 labl _end_eq push -1 push -4 stor pop jmp labl _inc push -2 load inc push -1 push -3 stor pop jmp labl inc push -2 load push -1 load push _inc call push -1 push -4 stor pop pop jmp labl _dec push -2 load dec push -1 push -3 stor pop jmp labl dec push -2 load push -1 load push _dec call push -1 push -4 stor pop pop jmp labl ret push -2 load push -1 load push inc call push dec call push -1 push -4 stor pop pop jmp labl not push -2 load push -1 load push 0 push _eq call pop push 0 push _else_0 je labl _if_0 push 1 push ret call push _end_0 jmp labl _else_0 push 0 push ret call labl _end_0 push -1 push -4 stor pop pop jmp labl _gr push -3 load push -3 load push _if_gr jg labl _else_gr push 0 push _end_gr jmp  labl _if_gr push 1 labl _end_gr push -1 push -4 stor pop jmp labl neq push -3 load push -3 load push -2 load push -2 load push _eq call pop push not call push -1 push -6 stor pop pop pop jmp labl or push -3 load push -3 load push -2 load push 0 push neq call pop push 0 push _else_1 je labl _if_1 push 1 push ret call push _end_1 jmp labl _else_1 push -1 load push 0 push neq call pop push 0 push _else_2 je labl _if_2 push 1 push ret call push _end_2 jmp labl _else_2 push 0 push ret call labl _end_2 labl _end_1 push -1 push -6 stor pop pop pop jmp labl ge push -3 load push -3 load push -2 load push -2 load push _eq call pop push -3 load push -3 load push _gr call pop push or call pop push -1 push -6 stor pop pop pop jmp labl lr push -3 load push -3 load push -2 load push -2 load push ge call pop push not call push -1 push -6 stor pop pop pop jmp labl eq push -3 load push -3 load push -2 load push -2 load push _eq call pop push -1 push -6 stor pop pop pop jmp labl add push -3 load push -3 load push -1 load push 0 push eq call pop push 0 push _else_3 je labl _if_3 push -2 load push ret call push _end_3 jmp labl _else_3 push -1 load push 0 push lr call pop push 0 push _else_4 je labl _if_4 push -2 load push -2 load push inc call push add call pop push dec call push _end_4 jmp labl _else_4 push -2 load push -2 load push dec call push add call pop push inc call labl _end_4 labl _end_3 push -1 push -6 stor pop pop pop jmp labl sub push -3 load push -3 load push -1 load push 0 push eq call pop push 0 push _else_5 je labl _if_5 push -2 load push ret call push _end_5 jmp labl _else_5 push -1 load push 0 push lr call pop push 0 push _else_6 je labl _if_6 push -2 load push -2 load push inc call push sub call pop push inc call push _end_6 jmp labl _else_6 push -2 load push -2 load push dec call push sub call pop push dec call labl _end_6 labl _end_5 push -1 push -6 stor pop pop pop jmp labl neg push -2 load push 0 push -2 load push sub call pop push -1 push -4 stor pop pop jmp labl abs push -2 load push -1 load push 0 push lr call pop push 0 push _else_7 je labl _if_7 push -1 load push neg call push _end_7 jmp labl _else_7 push -1 load push ret call labl _end_7 push -1 push -4 stor pop pop jmp labl and push -3 load push -3 load push -2 load push 0 push neq call pop push 0 push _else_8 je labl _if_8 push -1 load push 0 push neq call pop push 0 push _else_9 je labl _if_9 push 1 push ret call push _end_9 jmp labl _else_9 push 0 push ret call labl _end_9 push _end_8 jmp labl _else_8 push 0 push ret call labl _end_8 push -1 push -6 stor pop pop pop jmp labl xor push -3 load push -3 load push -2 load push not call push -2 load push and call pop push -3 load push -3 load push not call push and call pop push or call pop push -1 push -6 stor pop pop pop jmp labl mul push -3 load push -3 load push -2 load push 0 push lr call pop push -2 load push 0 push lr call pop push xor call pop push 0 push _else_10 je labl _if_10 push -2 load push abs call<\/code><\/pre>\n<\/div>\n<\/details>\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-342077","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/342077","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=342077"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/342077\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=342077"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=342077"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=342077"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}