What is the difference between data flow analysis and abstract interpretation

What is the difference between data flow analysis and abstract interpretation and are they used for the same purpose? What are the pros and cons of the two relative to each other.

+8
compiler-construction static-analysis dataflow abstract-interpretation
source share
2 answers

In short, they are in different categories. It is like comparing fabrics and trousers.

An abstract interpretation is a structure that formalizes the calculation of a fixed point using an abstract domain and abstract transfer functions. An abstract interpretation ensures that a fixed point must be found at the final steps if certain conditions are met (for details: http://www.di.ens.fr/~cousot/COUSOTpapers/POPL77.shtml ). What greatness of abstract interpretation comes from expansion and contraction. An abstract interpretation can calculate a fixed point over an infinite area because of them.

IMO, data flow analysis is just one instance of abstract interpretation. Since most of the specific areas used by data flow analysis are finite, you don’t even need to expand and narrow down.

+7
source share

It comes down to "Efficiency and Accuracy."

Data flow analysis attempts to combine data paths much more than abstract interpretation. Abstract interpretation goes all the way, preserving the abstract values ​​of the data.

0
source share

All Articles