Abstract interpretation

https://en.wikipedia.org/wiki/Abstract_interpretation

Abstract interpretation is a theory of sound approximation of the semantics of computer programs, based on monotonic functions over ordered sets, especially lattices. It can be viewed as a partial execution of a computer program which gains information about its semantics (e.g. data and control flow) without performing all the calculations.

Its main concrete application is formal static analysis, the automatic extraction of information about the possible executions of computer programs. Such analyses have two main usages:

  • inside compilers, to analyse programs to decide whether certain optimizations or transformations are applicable

  • for debugging or even the certification of programs against classes of bugs.

Last updated