A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Rodar XSB Prolog no Unix Shell Conectar-se em qualquer maquina SunOS5 (ex,Caruaru) Concatenar /home/robocup/solaris/XSB/bin/ na variável de ambiente PATH.

Apresentações semelhantes


Apresentação em tema: "Rodar XSB Prolog no Unix Shell Conectar-se em qualquer maquina SunOS5 (ex,Caruaru) Concatenar /home/robocup/solaris/XSB/bin/ na variável de ambiente PATH."— Transcrição da apresentação:

1 Rodar XSB Prolog no Unix Shell Conectar-se em qualquer maquina SunOS5 (ex,Caruaru) Concatenar /home/robocup/solaris/XSB/bin/ na variável de ambiente PATH do seu.cshrc Digitar xsb no prompt Unix. Digitar [,..., ]. para carregar N arquivos no ambiente de XSB. Digitar no prompt de XSB. Digitar return para obter o prompt para a próxima consulta Digitar ? para forcar o backtracking Digitar ^C para interromper a execução da consulta Digitar halt. para sair de XSB Exemplos com: –~jr/teaching/prolog/codeSamples/append.P –~jr/teaching/prolog/codeSamples/west.P –~jr/teaching/prolog/codeSamples/fac.P

2 XSB: Documentação www.cin.ufpe.br/~compint/aulas-IAS/artigos/xsbMan1.ps.gz www.cin.ufpe.br/~compint/aulas-IAS/artigos/xsbMan2.ps.gz

3 Trace, Creep, Spy & Leap ?-trace. Ativa o trace sistemático de todos os predicados. Todos os objetivos(as chamadas) do interpretador são impressos (precedidos por ´CALL´, ‘REDO’, ‘RESUME’ ou ‘NEXT’). Todos os resultados (as saídas) são impressos (precedidos por `*EXIT´, ‘EXIT’, ‘FAIL’ ou ‘LEAVE’). Para interromper um trace: responder ´n´ ao prompt'. ?-spy(Pred/Arity). Ativa o trace de predicados específicos. Imprime apenas os CALL,..., REDO, EXIT,..., FAIL do predicado passado como argumento. Os predicados são especificados por seu nome/aridade; onde a aridade é opcional. spy([..., Pred1/Aity1,...]). para especificar uma lista de predicados a rastrear.

4 Exemplo de Uso de trace fac(0,1). fac(N,Fn) :- M is N-1, fac(M,Fm), Fn is N * Fm. append([],Y,Y). append([Xh|Xt],Y,[Xh|Rt]) :- append(Xt,Y,Rt). ?- trace. yes ?- append([a,b,c],[d,e],R). ( 1) 0 CALL: append([a,b,c],[d,e],_45) ? ( 2) 1 CALL: append([b,c],[d,e],_100) ? ( 3) 2 CALL: append([c],[d,e],_146) ? ( 4) 3 CALL: append([],[d,e],_192) ? ( 4) 3 EXIT: append([],[d,e],[d,e]) ( 3) 2 EXIT: append([c],[d,e],[c,d,e]) ( 2) 1 EXIT: append([b,c],[d,e],[b,c,d,e]) ( 1) 0 EXIT: append([a,b,c],[d,e],[a,b,c,d,e]) R = [a,b,c,d,e] More (y/n)? y

5 Exemplo de Uso de trace (cont.) fac(0,1) :- !. fac(N,Fn) :- M is N-1, fac(M,Fm), Fn is N * Fm. append([],Y,Y). append([Xh|Xt],Y,[Xh|Rt]) :- append(Xt,Y,Rt). More (y/n)? y ( 1) 0 REDO: append([a,b,c],[d,e],[a,b,c,d,e]) ? ( 2) 1 REDO: append([b,c],[d,e],[b,c,d,e]) ? ( 3) 2 REDO: append([c],[d,e],[c,d,e]) ? ( 4) 3 REDO: append([],[d,e],[d,e]) ? ( 4) 3 FAIL: append([],[d,e],_192) ( 3) 2 FAIL: append([c],[d,e],_146) ( 2) 1 FAIL: append([b,c],[d,e],_100) ( 1) 0 FAIL: append([a,b,c],[d,e],_45) no ?- fac(3,R). ( 1) 0 CALL: fac(3,_5) ? n R = 6 More (y/n)? n yes ?-

6 Exemplo de Uso de Spy fac(0,1) :- !. fac(N,Fn) :- M is N-1, fac(M,Fm), Fn is N * Fm. append([],Y,Y). append([Xh|Xt],Y,[Xh|Rt]) :- append(Xt,Y,Rt). ?- spy(append/3). yes ?- append([a,b,c],[d,e],R). * ( 1) 0 CALL: append([a,b,c],[d,e],_28) ? n R = [a,b,c,d,e] More (y/n)? n yes ?- fac(3,R). R = 6 More (y/n)? n yes ?- spy(fac). yes ?- fac(1,R). * ( 1) 0 CALL: fac(1,_5) ? ( 2) 1 CALL: _59 is 1-1 {system}? ( 2) 1 EXIT: 0 is 1-1 * ( 3) 1 CALL: fac(0,_136) ? * ( 3) 1 EXIT: fac(0,1) ? ( 4) 1 CALL: _5 is 1*1 {system}? ( 4) 1 EXIT: 1 is 1*1 * ( 1) 0 EXIT: fac(1,1) ? R = 1 More (y/n)? n yes ?-

7 Debugging, notrace, nospy ?-debugging. : mostra os predicados sendo espionados. ?-notrace. : apaga o trace sistemático. Não apagar o trace `a la carte’: ?-nospy(Pred/Arity). apaga apenas espionagem do predicado indicado. ?-nospy([..., Pred/Arity,...]). para apagar espionagem de mais de um predicado. ?-nodebugging. : apaga o espionagem para todos os predicados.


Carregar ppt "Rodar XSB Prolog no Unix Shell Conectar-se em qualquer maquina SunOS5 (ex,Caruaru) Concatenar /home/robocup/solaris/XSB/bin/ na variável de ambiente PATH."

Apresentações semelhantes


Anúncios Google