CodeTools[ProgramAnalysis]
StaticCallGraph
create a static call graph from a Maple procedure
Calling Sequence
Parameters
Options
Description
Examples
Compatibility
StaticCallGraph(P, opts)
P

Maple procedure, appliable module, or set of procedures or appliable modules
opts
one or more options as described below
The options argument can contain one or more of the options shown below.
maxdepth=posint or infinity
The maximum depth of procedure calls to examine. The default is infinity, meaning the static call graph is traversed to arbitrary depth.
StaticCallGraph(P) returns a directed graph which represents a static call graph for the input P. The vertices of the graph are strings which represent procedures or appliable modules, and a directed arc exists from f to g when there is an explicit reference to g in the body of f.
The output is a Maple graph suitable for use with commands from the GraphTheory package.
This command generates only simple graphs; recursive calls in a procedure body are not translated into selfloops in the resulting graph.
This command simply examines the procedure body for instances of procedure names. There are many methods of invoking a procedure in Maple (for example, by constructing the procedure's name with cat or parse) which this command makes no effort to detect.
$\mathrm{with}\left(\mathrm{CodeTools}\left[\mathrm{ProgramAnalysis}\right]\right)\:$
$G\u2254\mathrm{StaticCallGraph}\left(\mathrm{maximize}\,\mathrm{maxdepth}=2\right)$
${G}{\u2254}{\mathrm{Graph\; 1:\; a\; directed\; unweighted\; graph\; with\; 22\; vertices\; and\; 24\; arc(s)}}$
$\mathrm{GraphTheory}:\mathrm{Vertices}\left(G\right)$
$\left[{''NumericEventHandler''}{\,}{''convert''}{\,}{''evalf''}{\,}{''has''}{\,}{''hastype''}{\,}{''indets''}{\,}{''length''}{\,}{''max''}{\,}{''maximize''}{\,}{''min''}{\,}{''minimize''}{\,}{''minimize/Handler''}{\,}{''minimize/cell/check''}{\,}{''nops''}{\,}{''op''}{\,}{''select''}{\,}{''selectremove''}{\,}{''seq''}{\,}{''simplify''}{\,}{''sort''}{\,}{''subs''}{\,}{''type''}\right]$
$\mathrm{GraphTheory}:\mathrm{DrawGraph}\left(G\,\mathrm{style}=\mathrm{spring}\right)$
The CodeTools[ProgramAnalysis][StaticCallGraph] command was introduced in Maple 2020.
For more information on Maple 2020 changes, see Updates in Maple 2020.
See Also
GraphTheory
Download Help Document
What kind of issue would you like to report? (Optional)