static analysis

views updated

static analysis Analysis of a program that does not require the program to be executed, as in dynamic testing. A software tool is used to check syntax and to construct one or more of

a control-flow graph,

a dataflow graph,

an information flow graph.

Information flow analysis identifies the relationships between outputs and the input variables, and a semantic analysis provides formulas for these relationships. Comparing the results of semantic analysis with a formal program specification reveals inconsistencies between specification and implementation.

Early work (1975–76) led to analyzers (DAVE, AUDIT, FACES) for single languages such as Fortran. Later work led to analyzers for C (e.g. LINT, 1978). There are now analysis tools (e.g. MALPAS, SPADE) that are multilanguage and have facilities for comparing specification and code.