{"id":1642,"date":"2019-03-18T20:23:38","date_gmt":"2019-03-18T20:23:38","guid":{"rendered":"http:\/\/demensdeum.com\/blog\/?p=1642"},"modified":"2024-12-16T22:32:40","modified_gmt":"2024-12-16T19:32:40","slug":"zakaz","status":"publish","type":"post","link":"https:\/\/demensdeum.com\/blog\/pt\/2019\/03\/18\/zakaz\/","title":{"rendered":"Linguagem declarativa Zakaz"},"content":{"rendered":"<\/p>\n<p>Apresento a sua aten\u00e7\u00e3o uma linguagem de programa\u00e7\u00e3o declarativa pura &#8211; Zakaz. A ideia principal da nova linguagem &#8211; a aplica\u00e7\u00e3o cont\u00e9m comandos de execu\u00e7\u00e3o escritos em formato livre que devem ser executados pelos &#8220;executores&#8221;. Se nenhum &#8220;artista&#8221; n\u00e3o puder executar o comando, a execu\u00e7\u00e3o do programa ser\u00e1 interrompida. As aplica\u00e7\u00f5es s\u00e3o chamadas de especifica\u00e7\u00f5es t\u00e9cnicas (tez) e devem ter extens\u00e3o .tez. A sintaxe Zakaz requer duas regras:<\/p>\n<\/p>\n<\/p>\n<ul class=\"wp-block-list\">\n<li>Cada comando come\u00e7a em uma nova linha<\/li>\n<li>Cada comando deve ser escrito em linguagem formal que seja compreens\u00edvel para os humanos<\/li>\n<\/ul>\n<\/p>\n<p>Exemplo Ol\u00e1 Mundo.tez:<\/p>\n<\/p>\n<p><!-- HTML gerado usando hilite.me --><\/p>\n<div style=\"background: #ffffff; overflow: auto; largura: auto; borda: cinza s\u00f3lido; largura da borda: .1em .1em .1em .8em; preenchimento: .2em .6em;\">\n<pre style=\"margin: 0; line-height: 125%;\">Mostrar texto <span style=\"background-color: #fff0f0;\">\"Hello World\"<\/span> na telaMostrar <span style=\"background-color: #fff0f0;\">\"Exemplo de Zakaz 'tez'\"<\/span> na tela<\/pr\u00e9><\/div><p><\/p><p>Um exemplo de especifica\u00e7\u00e3o que exibe uma descri\u00e7\u00e3o do princ\u00edpio de funcionamento e abertura do site http:\/\/demensdeum.com no navegador Firefox<\/p><p><\/p><p><!-- HTML gerado usando hilite.me --><\/p><div style=\"background: #ffffff; overflow: auto; largura: auto; borda: cinza s\u00f3lido; largura da borda: .1em .1em .1em .8em; preenchimento: .2em .6em;\"><pre style=\"margin: 0; line-height: 125%;\">Mostrar texto <span style=\"background-color: #fff0f0;\">\"Mostrar demonstra\u00e7\u00e3o do site\"<\/span> na telaShow <span style=\"background-color: #fff0f0;\">\"Voc\u00ea precisa do Firefox instalado em seu sistema para executar este 'tez', e ele deve ser chamado atrav\u00e9s de <\/span><span style=\"color: #666666; peso da fonte: negrito; cor de fundo: #fff0f0;\">\\\"<\/span><span style=\"background-color: #fff0f0;\">sistema<\/span><span style=\"color: #666666; peso da fonte: negrito; background-color: #fff0f0;\">\\\"<\/span><span style=\"background-color: #fff0f0;\"> Fun\u00e7\u00e3o C\"<\/span> texto na telaMostrar <span style=\"background-color: #fff0f0;\">\"Tamb\u00e9m deve haver <\/span><span style=\"color: #666666; peso da fonte: negrito; background-color: #fff0f0;\">\\\"<\/span><span style=\"background-color: #fff0f0;\">FirefoxPerformer<\/span><span style=\"color: #666666; font-weight: negrito; background-color: #fff0f0;\">\\\"<\/span><span style=\"background-color: #fff0f0;\"> atribu\u00eddo ao Zakaz Runtime, verifique o manual para mais informa\u00e7\u00f5es\"<\/span> texto na telaMostrar site com endere\u00e7o <span style=\"background-color: #fff0f0;\">\"http:\/\/demensdeum.com\"<\/span> no Firefox<\/pr\u00e9><\/div><p><\/p><p>Voc\u00ea deve executar o exemplo acima junto com o &#8220;executor&#8221; FirefoxPerformer, que \u00e9 capaz de processar o comando mais recente para renderizar um site atrav\u00e9s do Firefox<\/p><p><\/p><p><\/p><pre class=\"wp-block-preformatted\">.\/ZakazRuntime openDemensdeumSite.tez FirefoxPerformer<\/pre>\n<\/p>\n<p>Para implementar seu executor, voc\u00ea precisa implement\u00e1-lo como uma biblioteca din\u00e2mica usando a classe abstrata ZakazRuntime::Performer e retorn\u00e1-lo junto com um ponteiro inteligente do m\u00e9todo de fun\u00e7\u00e3o global createPerformer(). Voc\u00ea pode usar a implementa\u00e7\u00e3o do FirefoxPerformer como exemplo.<\/p>\n<\/p>\n<h2 class=\"wp-block-heading\">C\u00f3digo fonte<\/h2>\n<\/p>\n<p><a href=\"https:\/\/gitlab.com\/demensdeum\/zakaz\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"https:\/\/gitlab.com\/demensdeum\/zakaz (abre em uma nova guia)\">https:\/\/gitlab.com\/demensdeum\/zakaz<\/a><\/p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Apresento a sua aten\u00e7\u00e3o uma linguagem de programa\u00e7\u00e3o declarativa pura &#8211; Zakaz. A ideia principal da nova linguagem &#8211; a aplica\u00e7\u00e3o cont\u00e9m comandos de execu\u00e7\u00e3o escritos em formato livre que devem ser executados pelos &#8220;executores&#8221;. Se nenhum &#8220;artista&#8221; n\u00e3o puder executar o comando, a execu\u00e7\u00e3o do programa ser\u00e1 interrompida. As aplica\u00e7\u00f5es s\u00e3o chamadas de especifica\u00e7\u00f5es<a class=\"more-link\" href=\"https:\/\/demensdeum.com\/blog\/pt\/2019\/03\/18\/zakaz\/\">Continue reading <span class=\"screen-reader-text\">&#8220;Linguagem declarativa Zakaz&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[84],"tags":[],"class_list":["post-1642","post","type-post","status-publish","format-standard","hentry","category-software","entry"],"translation":{"provider":"WPGlobus","version":"3.0.2","language":"pt","enabled_languages":["en","ru","zh","de","fr","ja","pt","hi"],"languages":{"en":{"title":true,"content":true,"excerpt":false},"ru":{"title":true,"content":true,"excerpt":false},"zh":{"title":true,"content":true,"excerpt":false},"de":{"title":true,"content":true,"excerpt":false},"fr":{"title":true,"content":true,"excerpt":false},"ja":{"title":true,"content":true,"excerpt":false},"pt":{"title":true,"content":true,"excerpt":false},"hi":{"title":false,"content":false,"excerpt":false}}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1642","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=1642"}],"version-history":[{"count":10,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1642\/revisions"}],"predecessor-version":[{"id":3966,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1642\/revisions\/3966"}],"wp:attachment":[{"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=1642"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=1642"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=1642"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}