Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools


This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
research:pdt:docs:callgraph [2013/07/09 13:33]
Günter Kniesel
research:pdt:docs:callgraph [2018/05/09 01:59] (current)
Line 1: Line 1:
 +====== PDT Call Graph ======
 +The PDT creates internally a precise and very complete call graph that includes ​
 +  * plain calls
 +  * meta-calls from ++declared meta-predicates|,​ that is meta-predicates declared via the [[http://​​pldoc/​doc_for?​object=%28meta_predicate%29/​1|metapredicate/​1 directive]])++
 +  * meta-calls from ++undeclared meta-predicates|,​ that is predicates that take other predicates as arguments but are not declared as such via the [[http://​​pldoc/​doc_for?​object=%28meta_predicate%29/​1|metapredicate/​1 directive]])++
 +Undeclared meta-predicates are inferred by our meta-predicate analysis, which can detect also calls that are dynamically assembled via =../2, functor/3, arg/3, atom_concat/​3,​ etc. This significantly improves the completeness of the call graph and the reliability of the [[default_style_schema|dead code analysis]] based on it.  ​
 +===== Views =====
 +The call graph is visualized in two different views:
 +  * [[contextview|Context View]]
 +  * [[globalview|Global View]]
 +Both views share the same interaction schema, default styles and preferences:​
 +  * [[viewfeatures|Interaction Schema]]
 +  * [[default_style_schema|Default Appearance]]
 +  * [[view_preferences|Changing the Appearance]]
 +===== Feedback Wanted =====
 +For big projects you might need to wait a few seconds at the start of the system while the PDT's global detection of undeclared meta-predicates is run. (When you later update and save your files, the meta-predicate analysis is re-run. In most cases you won't notice these repeated runs, since they are incremental.) ​
 +The initial, global meta-call analysis includes the entire PDT and SWI-libraries,​ so that you can see and browse from the call graph anything that is relevant to your program (as long as it is Prolog source code). If you do not need this and would rather prefer a quicker start, [[mailto:​|tell us]].
research/pdt/docs/callgraph.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2021