Volume 6, Issue 1
David B. Wagner
In a very large program, it can be difficult to anticipate the consequences
of changing a small part of the code on the rest of the program. Many conventional
languages have tools, such as callgraph analyzers and class browsers, that
help the programmer understand the large-scale structure of a program.
In this article, we will develop a package for analyzing symbol dependencies
in a Mathematica program. This turns out to be quite an involved
undertaking, as it requires the detailed analysis of expressions that must
not be allowed to evaluate.