Tools that support one or more of these static analysis activities are
available and their use is strongly recommended.
Compilers often perform some control flow and data-use analysis.
Some compile/link systems, such as those for Ada and Modula-2,
automatically do interface analysis to enforce the strong type checking
demanded by the language standards. Compilers for many languages, such
as FORTRAN and C, do not do any interface analysis. Static analysis tools
are especially neceflow, range bounds and interfaces. The use of a static analyser should be an
essential step in C program development, for example.
Static analysers for measuring complexity and constructing call
graphs are essential when the Structured Testing method is used for unit
testing (see Section 4.5.1). Producing call graphs at higher levels (i.e.
module tree and program tree) is also of use in the review and testing of the
detailed design and architectural design.