Program Analysis Interest Group
   

Next: Overall Aims and Objectives Up: Probabilistic Abstract Interpretation Previous: Probabilistic Semantics

Programme and Methodology

To illustrate the approach adopted in this project, we will refer to the following program fragment:

A: if prime(n)
   then B: if odd(n)
           then C:proc1
           else D:proc2
           fi
   else E:proc3
F: fi

The information attached to the various branches of this program by classical abstract interpretation cannot be used for optimisation: All procedures might be called, and therefore it is impossible to eliminate any part of the program.

However, some form of optimisation is still possible. Suppose that (because of resource limitations) we had to decide which procedures are to be made easily accessible (i.e. can be kept in primary storage) and which are to be kept in the background (i.e. are kept on secondary storage). In this case it is important to realise that proc2 has a much smaller chance of being called as 2 is the only even prime number (we implicitly assume a uniform distribution of n). Therefore, it is reasonable to keep proc1 in the primary storage and proc2 in secondary.

Similar examples are also typical in distributed computing or whenever the issue of resource consumption and management is fundamental.




Next: Overall Aims and Objectives Up: Probabilistic Abstract Interpretation Previous: Probabilistic Semantics