{"id":28,"date":"2008-06-08T21:00:00","date_gmt":"2008-06-08T21:00:00","guid":{"rendered":"http:\/\/filipesaraiva.info\/blog\/?p=28"},"modified":"2008-06-08T21:00:00","modified_gmt":"2008-06-08T21:00:00","slug":"prepare-seu-eclipse-para-a-academia-passo-3-prolog","status":"publish","type":"post","link":"https:\/\/filipe.saraiva.tec.br\/blog\/?p=28","title":{"rendered":"Prepare seu Eclipse para a academia! &#8211; Passo 3: PROLOG"},"content":{"rendered":"<p>Retomando a s\u00e9rie de artigos que objetiva preparar sua IDE Eclipse para as diferentes disciplinas voltadas \u00e0 programa\u00e7\u00e3o nos cursos de computa\u00e7\u00e3o, trataremos agora do Paradigma de Programa\u00e7\u00e3o L\u00f3gica.<\/p>\n<div style=\"text-align: justify;\"><span style=\"font-weight: bold;\">Programa\u00e7\u00e3o L\u00f3gica<\/p>\n<p><\/span>Uma das principais caracter\u00edsticas do Paradigma L\u00f3gico \u00e9 a dissocia\u00e7\u00e3o entre uma base de dados espec\u00edfica do problema, chamada de <span style=\"font-style: italic;\">fatos,<\/span> e a maneira de como um programa deve tratar essa base para resolver um problema, chamada de <span style=\"font-style: italic;\">regras.<\/p>\n<p><\/span>A programa\u00e7\u00e3o l\u00f3gica \u00e9 extremamente baseada nos conceitos de l\u00f3gica matem\u00e1tica, especialmente em indu\u00e7\u00f5es. A maneira de relacionar <span style=\"font-style: italic;\">regras<\/span> e <span style=\"font-style: italic;\">fatos<\/span> como um processamento matem\u00e1tico fazem das linguagens que implementam esse paradigma as preferidas para pesquisas em Intelig\u00eancia Artificial, processamento de linguagem natural, e outras.<\/p>\n<p><span style=\"font-weight: bold;\">PROLOG: SWI-Prolog e GNU-Prolog<\/p>\n<p><\/span>PROLOG \u00e9 uma das linguagens de programa\u00e7\u00e3o mais conhecidas do paradigma l\u00f3gico. Existem v\u00e1rios tipos de implementa\u00e7\u00f5es de PROLOG, algumas inclusive conflitantes entre s\u00ed.<\/p>\n<p>O padr\u00e3o de Edimburgo, utilizado na implementa\u00e7\u00e3o da universidade de mesmo nome, acabou por ser seguidos por outras implementa\u00e7\u00f5es, influenciando inclusive a especifica\u00e7\u00e3o do padr\u00e3o ISO.<\/p>\n<p>Algumas implementa\u00e7\u00f5es de c\u00f3digo aberto mais conhecidas e utilizadas hoje s\u00e3o o <a href=\"http:\/\/www.swi-prolog.org\/\">SWI-Prolog<\/a> e o <a href=\"http:\/\/www.gprolog.org\/\">GNU-Prolog<\/a>.<br \/><span style=\"font-weight: bold;\"><\/span><br \/>GNU-Prolog foi criada e \u00e9 mantida por Daniel Diaz, e conta com o aval da pr\u00f3pria Free Software Foundation. J\u00e1 SWI-Prolog, mantida por Jan Wielenaker, est\u00e1 em desenvolvimento desde 1987, contando com v\u00e1rios componentes extras, entre eles uma GUI (Graphical User Interface) pr\u00f3pria &#8211; a XPCE -, acesso a banco de dados, redes, e mais.<\/p>\n<p>Eu, particularmente, preferi utilizar SWI-Prolog. Essa implementa\u00e7\u00e3o est\u00e1 bastante avan\u00e7ada e completa, suportando tanto o padr\u00e3o ISO como o de Edimburgo, facilidades no trato com o usu\u00e1rio &#8211; carregue um arquivo e digite uma fun\u00e7\u00e3o com <span style=\"font-style: italic;\">algumas letras erradas <\/span>que voc\u00ea entender\u00e1 o que estou dizendo&#8230;<\/p>\n<p>Para usu\u00e1rios de sistemas Debian-like, digite o comando, como usu\u00e1rio root,<\/p>\n<div style=\"text-align: center;\"><span style=\"font-weight: bold;\">apt-get install xpce<\/span><br \/><span style=\"font-weight: bold;\"><\/span><\/div>\n<p><span style=\"font-weight: bold;\"><br \/><\/span>para instalar o SWI-Prolog com a GUI XPCE, ou<span style=\"font-weight: bold;\"><span style=\"font-weight: bold;\"><\/p>\n<p><\/span><\/span><\/p>\n<div style=\"text-align: center;\"><span style=\"font-weight: bold;\"><span style=\"font-weight: bold;\">apt-get install gprolog<\/span><\/span><br \/><span style=\"font-weight: bold;\"><span style=\"font-weight: bold;\"><\/span><\/span><\/div>\n<p><span style=\"font-weight: bold;\"><span style=\"font-weight: bold;\"><br \/><\/span><\/span>para instalar o GNU-Prolog.<\/p>\n<p><span style=\"font-weight: bold;\">Prolog Plugin &#8211; Eclipse<\/p>\n<p><\/span>Um laborat\u00f3rio voltado para pesquisas utilizando o Eclipse foi constru\u00eddo na USP, com o devido patroc\u00ednio da IBM. Voc\u00ea pode ver um pouco da descri\u00e7\u00e3o do projeto <a href=\"http:\/\/eclipse.ime.usp.br\/#\">aqui<\/a>. Isso foi nos idos de 2003 e 2004 &#8211; n\u00e3o sei dizer se o projeto continua, por\u00e9m o mesmo foi respons\u00e1vel v\u00e1rios estudos relacionados \u00e0 plataforma.<\/p>\n<p>Entre eles, capitaneado pela professora <a href=\"http:\/\/www.ime.usp.br\/%7Erenata\">Renata Wasserman<\/a> e pelo professor <a href=\"http:\/\/www.ime.usp.br\/%7Efcs\">Fl\u00e1vio Corr\u00eaa        da Silva<\/a>, junto \u00e0 estudante <a href=\"http:\/\/www.linux.ime.usp.br\/%7Ejulianab\">Juliana Barby Sim\u00e3o<\/a>, o projeto Prolog Plugin consistiu em criar uma interface simples para o desenvolvimento em Prolog no Eclipse.<\/p>\n<p>No primeiro momento, Prolog Plugin foi desenvolvido em vista \u00e0 implementa\u00e7\u00e3o <a href=\"http:\/\/www.clip.dia.fi.upm.es\/Software\/Ciao\/index.html\">Ciao Prolog<\/a>. Por\u00e9m, voc\u00ea pode utilizar a implementa\u00e7\u00e3o que desejar. A p\u00e1gina do projeto \u00e9 <a href=\"http:\/\/eclipse.ime.usp.br\/projetos\/grad\/plugin-prolog\/index.html\">esta<\/a>.<\/p>\n<p>O \u00fanico &#8220;problema&#8221;, por assim dizer, \u00e9 que o plugin foi desenvolvido para uma vers\u00e3o hoje j\u00e1 ultrapassada do Eclipse, a fam\u00edlia 2.0.x. Por\u00e9m, quem precisa de algo funcional e com poucas &#8220;firulas&#8221;, poder\u00e1 se dar bem com a ferramenta.<\/p>\n<p><span style=\"font-weight: bold;\">Instalando e Configurando o Prolog Plugin<\/p>\n<p><\/span>Primeiro, vamos baixar o plugin <a href=\"http:\/\/eclipse.ime.usp.br\/projetos\/grad\/plugin-prolog\/index.html#Downloads\">aqui<\/a>. Ap\u00f3s, descompacte-o e siga os passos descritos sobre <a href=\"http:\/\/liberdadenafronteira.blogspot.com\/2008\/05\/prepare-seu-eclipse-para-academia-passo.html\">instala\u00e7\u00e3o de plugins<\/a>.<\/p>\n<p>Execute o Eclipse. Para configurar o Prolog Plugin, v\u00e1 no menu superior e clique em <span style=\"font-style: italic;\">Window>>Preferences>>Prolog Preferences.<\/p>\n<p><\/span><a onblur=\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href=\"http:\/\/1.bp.blogspot.com\/_iwbTQB1O1SI\/SExrM6sHGoI\/AAAAAAAAAFo\/h-KzWshxi6Y\/s1600-h\/PrintScreamStruts2.png\"><img decoding=\"async\" style=\"margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2008\/06\/PrintScreamStruts2.png\" alt=\"\" id=\"BLOGGER_PHOTO_ID_5209656738617694850\" border=\"0\" \/><\/a><br \/>Na janela voc\u00ea encontrar\u00e1 op\u00e7\u00f5es para alterar as cores de destaque das palavras nos c\u00f3digos Prolog. em <span style=\"font-style: italic;\">Prolog interpreter path, <\/span>digite o comando que invocar\u00e1 o interpretador Prolog. No meu caso, <span style=\"font-weight: bold;\">xpce<\/span>. Se voc\u00ea utiliza SWI-Prolog sem XPCE, o comando \u00e9 <span style=\"font-weight: bold;\">pl<\/span>; j\u00e1 se voc\u00ea prefere o GNU-Prolog, o comando \u00e9 <span style=\"font-weight: bold;\">gprolog<\/span>. Procure o comando espec\u00edfico para a implementa\u00e7\u00e3o que voc\u00ea utiliza.<\/p>\n<p>Vamos agora nos prepara para o &#8220;Hello World&#8221;. Primeiro, vamos criar um projeto convencional em <span style=\"font-style: italic;\">File>>New>>Project>>General Project. <\/span>D\u00ea um nome ao projeto.<\/p>\n<p><a onblur=\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href=\"http:\/\/1.bp.blogspot.com\/_iwbTQB1O1SI\/SExsfqS4O1I\/AAAAAAAAAFw\/0wyZbLWyJDY\/s1600-h\/PrintScreamStruts3.png\"><img decoding=\"async\" style=\"margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2008\/06\/PrintScreamStruts3.png\" alt=\"\" id=\"BLOGGER_PHOTO_ID_5209658160146037586\" border=\"0\" \/><\/a><br \/>Agora, clique com o bot\u00e3o direito do mouse sobre a pasta do projeto rec\u00e9m criado e selecione <span style=\"font-style: italic;\">New>>File. <\/span>Escolha um nome para o arquivo fonte, mas <span style=\"font-weight: bold;\">n\u00e3o esque\u00e7a <\/span>de colocar uma extens\u00e3o Prolog para o arquivo, como .pl ou .pro.<\/p>\n<p><a onblur=\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href=\"http:\/\/4.bp.blogspot.com\/_iwbTQB1O1SI\/SExtWk336rI\/AAAAAAAAAF4\/K5pZ6Jq-cWc\/s1600-h\/PrintScreamStruts4.png\"><img decoding=\"async\" style=\"margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2008\/06\/PrintScreamStruts4.png\" alt=\"\" id=\"BLOGGER_PHOTO_ID_5209659103583398578\" border=\"0\" \/><\/a><br \/>Agora, digite o c\u00f3digo:<\/p>\n<p>helloWorld :- write(&#8216;Hello World&#8217;).<\/p>\n<p>(Sim, \u00e9 s\u00f3 isso mesmo. A eleg\u00e2ncia da Programa\u00e7\u00e3o L\u00f3gica&#8230;)<\/p>\n<p>Agora, salve o arquivo e v\u00e1 no \u00edcone do mesmo, na paleta de projetos. Clique com o bot\u00e3o direito do mouse sobre o arquivo e aparecer\u00e1 a op\u00e7\u00e3o <span style=\"font-style: italic;\">Consult into Prolog interpreter. <\/span>Selecione essa op\u00e7\u00e3o.<\/p>\n<p>Se as configura\u00e7\u00f5es estiverem corretas, o interpretador rodar\u00e1 na janela do console do Eclipse, avisando sobre o processo de compila\u00e7\u00e3o. Chame a fun\u00e7\u00e3o dentro do console, escrevendo <span style=\"font-weight: bold;\">helloworld. <\/span>(a palavra verde na imagem. N\u00e3o esque\u00e7a do ponto final!).<\/p>\n<p><a onblur=\"try {parent.deselectBloggerImageGracefully();} catch(e) {}\" href=\"http:\/\/4.bp.blogspot.com\/_iwbTQB1O1SI\/SExvFt8b6YI\/AAAAAAAAAGA\/3Ggxdygj5NA\/s1600-h\/PrintScreamStruts5.png\"><img decoding=\"async\" style=\"margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2008\/06\/PrintScreamStruts5.png\" alt=\"\" id=\"BLOGGER_PHOTO_ID_5209661012983933314\" border=\"0\" \/><\/a><br \/>Se tiver corrido tudo certo, o console ficar\u00e1 como na imagem.<\/p>\n<p><span style=\"font-weight: bold;\">Pr\u00f3ximos Passos&#8230;<\/p>\n<p><\/span>Programa\u00e7\u00e3o Funcional utilizando Haskell&#8230; eita&#8230;<\/div>\n<div class=\"blogger-post-footer\"><script expr:src='\"http:\/\/feeds.feedburner.com\/~s\/LiberdadeNaFronteira?i=\" + data:post.url' type=\"text\/javascript\" charset=\"utf-8\"><\/script><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Retomando a s\u00e9rie de artigos que objetiva preparar sua IDE Eclipse para as diferentes disciplinas voltadas \u00e0 programa\u00e7\u00e3o nos cursos de computa\u00e7\u00e3o, trataremos agora do Paradigma de Programa\u00e7\u00e3o L\u00f3gica. Programa\u00e7\u00e3o L\u00f3gica Uma das principais caracter\u00edsticas do Paradigma L\u00f3gico \u00e9 a dissocia\u00e7\u00e3o entre uma base de dados espec\u00edfica do problema, chamada de fatos, e a maneira&hellip;&nbsp;<a href=\"https:\/\/filipe.saraiva.tec.br\/blog\/?p=28\" class=\"\" rel=\"bookmark\">Continue a ler &raquo;<span class=\"screen-reader-text\">Prepare seu Eclipse para a academia! &#8211; Passo 3: PROLOG<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[9],"tags":[11,12,5],"class_list":["post-28","post","type-post","status-publish","format-standard","hentry","category-software-livre","tag-desenvolvimento","tag-eclipse","tag-tutoriais"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p1p2Jh-s","jetpack_sharing_enabled":true,"jetpack_likes_enabled":false,"_links":{"self":[{"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/posts\/28","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=28"}],"version-history":[{"count":0,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/posts\/28\/revisions"}],"wp:attachment":[{"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=28"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=28"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=28"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}