Граф зависимости правил в Прологе

Допустим, я хочу создать граф зависимостей правил для программы на Прологе на Прологе. Например, следующая программа

foo(X) :- bar(X, 0).
bar(A, B) :- quux(A), coox(B).
baz.

приведет к тому, что следующее будет истинным (с использованием assert ):

depends(foo, [bar]).
depends(bar, [quux, coox]).
depends(baz, []).

Или что-то вроде приведенного выше, которое я мог бы легко использовать для построения графика. Подход, о котором я думал, заключается в чтении строк входного файла в виде строк и выполнении над ними простого поиска и замены, но это выглядит уродливым, не-Prolog-подобным взломом. Есть ли другие варианты, которые используют металогические возможности Пролога?

5
задан Igor 18 November 2010 в 21:31
поделиться