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
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 is used to reveal inconsistencies between specification and implementation.
Early work (1975–6) led to analysers (DAVE, AUDIT, FACES) for single languages such as Fortran. Later work led to analysers 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.