我有一个序言文件,其中有以下类型的谓词:
nondet_(A,B,C,D,E,F,G,H) :-
(I = 0),
summary_5(A,B,C,D,J,K,L,G,H),
nondet(I,B,C,D,E,F,K,L).
summary_5(A,B,C,D,E,F,G,H,I) :-
(K = F),(M = 0),(N = G),
block_10(M,B,C,D,E,F,G,K,N),
summary_4(A,B,C,D,E,J,N,H,I).
interface_0(A,B,C,D,E) :-
(F = 0),
summary_5(F,A,B,C,G,H,I,D,E),
interface_0(A,B,C,H,I).
如何制作(甚至使用其他工具)谓词的依赖图?
我需要生成图表以包含程序内的依赖关系(在 prolog 语言中翻译为喇叭子句)
您可以使用 Logtalk 的
diagrams
工具轻松生成谓词的依赖关系图。假设纯 Prolog 代码保存在 code.pl
文件中并且您正在使用 GNU Prolog 运行 Logtalk:
| ?- {diagrams(loader), hook_objects(object_wrapper_hook)}.
...
% (0 warnings)
(477 ms) yes
| ?- logtalk_load(code, [hook(object_wrapper_hook)]), xref_diagram::entity(code).
...
% Generating cross-referencing diagram for object code ... done
(5 ms) yes
| ?-
这将生成一个 Graphviz
.dot
文件,然后您可以将其转换为例如SVG:
$ cd dot_dias/
$ lgt2svg
Converting .dot files to .svg files ...
converting code_object_xref_diagram.dot . done
Conversion done