Retomando a série de artigos que objetiva preparar sua IDE Eclipse para as diferentes disciplinas voltadas à programação nos cursos de computação, trataremos agora do Paradigma de Programação Lógica.
PROLOG: SWI-Prolog e GNU-Prolog
PROLOG é uma das linguagens de programação mais conhecidas do paradigma lógico. Existem vários tipos de implementações de PROLOG, algumas inclusive conflitantes entre sí.
O padrão de Edimburgo, utilizado na implementação da universidade de mesmo nome, acabou por ser seguidos por outras implementações, influenciando inclusive a especificação do padrão ISO.
Algumas implementações de código aberto mais conhecidas e utilizadas hoje são o SWI-Prolog e o GNU-Prolog.
GNU-Prolog foi criada e é mantida por Daniel Diaz, e conta com o aval da própria Free Software Foundation. Já SWI-Prolog, mantida por Jan Wielenaker, está em desenvolvimento desde 1987, contando com vários componentes extras, entre eles uma GUI (Graphical User Interface) própria – a XPCE -, acesso a banco de dados, redes, e mais.
Eu, particularmente, preferi utilizar SWI-Prolog. Essa implementação está bastante avançada e completa, suportando tanto o padrão ISO como o de Edimburgo, facilidades no trato com o usuário – carregue um arquivo e digite uma função com algumas letras erradas que você entenderá o que estou dizendo…
Para usuários de sistemas Debian-like, digite o comando, como usuário root,
para instalar o SWI-Prolog com a GUI XPCE, ou
para instalar o GNU-Prolog.
Prolog Plugin – Eclipse
Um laboratório voltado para pesquisas utilizando o Eclipse foi construído na USP, com o devido patrocínio da IBM. Você pode ver um pouco da descrição do projeto aqui. Isso foi nos idos de 2003 e 2004 – não sei dizer se o projeto continua, porém o mesmo foi responsável vários estudos relacionados à plataforma.
Entre eles, capitaneado pela professora Renata Wasserman e pelo professor Flávio Corrêa da Silva, junto à estudante Juliana Barby Simão, o projeto Prolog Plugin consistiu em criar uma interface simples para o desenvolvimento em Prolog no Eclipse.
No primeiro momento, Prolog Plugin foi desenvolvido em vista à implementação Ciao Prolog. Porém, você pode utilizar a implementação que desejar. A página do projeto é esta.
O único “problema”, por assim dizer, é que o plugin foi desenvolvido para uma versão hoje já ultrapassada do Eclipse, a família 2.0.x. Porém, quem precisa de algo funcional e com poucas “firulas”, poderá se dar bem com a ferramenta.
Instalando e Configurando o Prolog Plugin
Primeiro, vamos baixar o plugin aqui. Após, descompacte-o e siga os passos descritos sobre instalação de plugins.
Execute o Eclipse. Para configurar o Prolog Plugin, vá no menu superior e clique em Window>>Preferences>>Prolog Preferences.
Na janela você encontrará opções para alterar as cores de destaque das palavras nos códigos Prolog. em Prolog interpreter path, digite o comando que invocará o interpretador Prolog. No meu caso, xpce. Se você utiliza SWI-Prolog sem XPCE, o comando é pl; já se você prefere o GNU-Prolog, o comando é gprolog. Procure o comando específico para a implementação que você utiliza.
Vamos agora nos prepara para o “Hello World”. Primeiro, vamos criar um projeto convencional em File>>New>>Project>>General Project. Dê um nome ao projeto.
Agora, clique com o botão direito do mouse sobre a pasta do projeto recém criado e selecione New>>File. Escolha um nome para o arquivo fonte, mas não esqueça de colocar uma extensão Prolog para o arquivo, como .pl ou .pro.
helloWorld :- write(‘Hello World’).
(Sim, é só isso mesmo. A elegância da Programação Lógica…)
Agora, salve o arquivo e vá no ícone do mesmo, na paleta de projetos. Clique com o botão direito do mouse sobre o arquivo e aparecerá a opção Consult into Prolog interpreter. Selecione essa opção.
Se as configurações estiverem corretas, o interpretador rodará na janela do console do Eclipse, avisando sobre o processo de compilação. Chame a função dentro do console, escrevendo helloworld. (a palavra verde na imagem. Não esqueça do ponto final!).
Se tiver corrido tudo certo, o console ficará como na imagem.
Próximos Passos…
Programação Funcional utilizando Haskell… eita…
Falando em Prolog e Eclipse, lembre-se do ECLiPSe — que não tem nenhuma ligação com a IDE — mas é excelente para quem trabalha com programação em lógica por restrições.
Obrigado pela dica, mark.
Tava procurando por Prolog na web, vim bater no teu blog.
Vlw Filipe
Oi, instalei tudo certo mas o problema é que não está compilando. Está tudo certo até a parte onde o interpretador roda no console, aí não aparece nada.
Oi @Heráclito Neto, na verdade eu tenho que dar uma olhada pois o tutorial é bem antigo.
Mas PROLOG é interpretador mesmo, não é linguagem compilada.
@Filipe Saraiva, Entendi Filipe, foi de grande ajuda seu tutorial, vou te explicar meu problema: Quando crio um novo projeto e um arquivo.pl blz, o problema está quando vou no arquivo e clico em “Consult into Prolog interpreter” era pra rodar no console e avisar sobre o processo de compilação mas aqui não aparece nada, ja refiz os passos e creio que não esqueci nenhum detalhe. O SWI-Prolog está rodando bem. Quando chamo a função no console também não aparece nada. Uso macOS.
[]’s Filipe
Oi @Heráclito Neto,
Aqui funcionou tudo bem, olhe: http://imagebin.org/210961
Estou usando Eclipse Indigo com GNU Prolog no Linux, estou sem SWI-Prolog nos repositórios da minha distro.
Você configurou em Window -> Preferences -> Prolog Preferences o Prolog Interpreter Path correto para o lançamento do SWI-Prolog??
@Filipe Saraiva, Configurei sim, no caso do SWI-Prolog é só colocar pl.
[]s
@Heráclito Neto, complicou. Manda uma screenshot do teu eclipse após fazer solicitação de interpretar o arquivo. Desculpa a pergunta meio boba, mas você clica no botão do console no rodapé da IDE para apresentar o terminal? Vamos ver se conseguimos resolver isso.
@Heráclito Neto, aqui tem um link com tutorial para instalar outro plugin para desenvolvimento Prolog no Eclipse, dessa vez usando Mac – http://va.lent.in/blog/2009/10/18/prolog-for-mac/
Veja aí http://imagebin.org/210964 não aparece nada. Não entendi bem sua pergunta.
@Heráclito Neto, pelo visto ele não está carregando o ambiente no terminal. Bem, dê uma olhada neste outro tutorial http://va.lent.in/blog/2009/10/18/prolog-for-mac/, eu realmente não sei dizer se existe algum problema de compatibilidade com esse plugin executando no Mac OS.
Eu vou dar uma olhada nesse novo tutorial. Agradeço a atenção.
Te dou notícias mais tarde 🙂
@Heráclito Neto, valeu, fique a vontade. 😉
Oi Filipe, dei uma olhada no tutorial e não ajudou, nada que eu não tenha feito. Acho que vou desistir do eclipse por enquanto e fazer no terminal mesmo. Qualquer novidade te mando notícias.
[]’s e boa noite!
@Heráclito Neto, pôxa cara, uma pena. Se tu puder dar uma olhada com outros usuários de Mac também, ver o que pode ser feito, etc.
Valeu.
gnu prolog tem pessima documentacao. swi prolog tem uma interface com java chamado JPL, pessimo de usar dentro de um projeto devido a dficil configuracao de ddl… ate agora o unico que funcionou mesmo pra valer foi o tuProlog mas agora deu pra dar problemas de performance serios…
o SWI é otimo mas nao pra integrar com java, mas sim pra testar o programa prolog e fazer depuracao, depois disso pega o seu programa PL e tenta integrar com java.
repito o tal do GNU prolog nao tem documentacao nenhuma o cara pensa que agente deve advinhar como usar isso.