依赖图Prolog

问题描述 投票:0回答:1

我有一个序言文件,其中有以下类型的谓词:

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 语言中翻译为喇叭子句)

prolog dependencies functional-dependencies
1个回答
0
投票

您可以使用 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

对于您的示例代码, 将是:

© www.soinside.com 2019 - 2024. All rights reserved.