{"id":144,"date":"2007-06-21T14:29:09","date_gmt":"2007-06-21T17:29:09","guid":{"rendered":"http:\/\/www.meiradarocha.jor.br\/news\/2007\/06\/21\/por-que-linguagens-script-sao-lentas\/"},"modified":"2008-02-09T22:28:12","modified_gmt":"2008-02-10T01:28:12","slug":"por-que-linguagens-script-sao-lentas","status":"publish","type":"post","link":"https:\/\/meiradarocha.jor.br\/news\/2007\/06\/21\/por-que-linguagens-script-sao-lentas\/","title":{"rendered":"Por que linguagens script s\u00e3o lentas?"},"content":{"rendered":"<p>Papinho nerd. Por que <strong>linguagens script<\/strong> s\u00e3o lentas? Porque s\u00e3o <strong>interpretadas<\/strong>. Ou seja, as instru\u00e7\u00f5es do texto s\u00e3o lidas e executadas uma por uma. Mas elas n\u00e3o precisam ser interpretadas, podem, mesmo sendo linguagens interativas, ser <strong>compiladas<\/strong>, isto \u00e9, as instru\u00e7\u00f5es s\u00e3o lidas, \u00e9 montado um c\u00f3digo de m\u00e1quina e em seguida ele \u00e9 executado.<\/p>\n<p>Presumamos uma interface por linha de caracteres (CLI). O compilador l\u00ea a linha de entrada at\u00e9 um ENTER. Procura por comandos na linha (tokens). Acha o ponto de entrada do c\u00f3digo de m\u00e1quina de cada token, numa lista de tokens, e monta uma lista de CALLs para as rotinas de m\u00e1quina. Quando chega no final da linha de entrada, monta um RETURN e d\u00e1 um JUMP para o in\u00edcio da lista de CALLS (na verdade, verdadeiro c\u00f3digo de m\u00e1quina):<!--more--><\/p>\n<pre>INICIO:\r\n CALL comando_1\r\n CALL comando_2\r\n CALL comando_3\r\n RET<\/pre>\n<p>Os comandos compilados rodam em velocidade de m\u00e1quina, e quando \u00e9 encontrado o RET, o compilador volta para a linha de entrada para ler mais comandos. Pronto. Assim eram o <strong>GraForth<\/strong> e o <strong>TransForth<\/strong> do <strong>Apple ][<\/strong>, as mais bonitas pe\u00e7as de software que eu j\u00e1 vi, cria\u00e7\u00e3o da cabe\u00e7a genial do matem\u00e1tico <strong>Paul Lutus<\/strong>. Mas o modelo l\u00f3gico \u00e9 <strong>Forth<\/strong>, cria\u00e7\u00e3o da cabe\u00e7a genial de <strong>Chuck Moore<\/strong>. E que agora, gra\u00e7as ao projeto <strong><a href=\"http:\/\/laptop.org\">OLPC<\/a><\/strong>, se tornar\u00e1 uma das linguagens mais usadas no mundo: ela \u00e9 o <em>BIOS e bootloader <\/em>do <strong>laptop XO.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Papinho nerd. Por que linguagens script s\u00e3o lentas? Porque s\u00e3o interpretadas. Ou seja, as instru\u00e7\u00f5es do texto s\u00e3o lidas e executadas uma por uma. Mas elas n\u00e3o precisam ser interpretadas, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29,36,4],"tags":[],"class_list":["post-144","post","type-post","status-publish","format-standard","hentry","category-computadores","category-forth","category-tecnologia"],"_links":{"self":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/posts\/144","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/comments?post=144"}],"version-history":[{"count":0,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/posts\/144\/revisions"}],"wp:attachment":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/media?parent=144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/categories?post=144"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/tags?post=144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}