previous_group previous up next next_group
Previous: 4. A Third Issue: Up: 1. The Need for Next: 6. A Fifth Issue:


5. A Forth Issue: Variable Assignment

In this section, we present an example that shows one of the difficulties encoutered to use the Octagon library in the PIPS analyzer. We consider two interfaces, one of PIPS's $C^3$ library and the other of the octagon library [MIN,MIN01].

In order to keep a generic architecture for PIPS, the oct_t* oct_assign_variable() operator which models the assignment command should belong to a higher level than the intersection or union of octagons. It is because the assignment command is independent from the abstract domain used, which can be, for instance, octagonal or polyhedral.

Moreover, a wrapping for octagon is preferable to modification of the existing interface. Accordingly, we have tried to implement the operator oct_t* oct_assign_variable() from octagon's lower level primitives, i.e. from the API of the library without oct_t* oct_assign_variable() itself. Retrospectively, it is not the best approach to deal with the problem since there are other operators in PIPS that are more interesting to implement using the octagons, but it is already complex. In fact, we encounter three problems:

To make it short, we need an operator to rename variables to solve the first two problems. For the third problem, we should find another way to approximate the result using only the API.

Finally, we notice that though POLYLIB is used in $C^3$, the only used part is the implementation of the Chernikova algorithm. The variable assignment is one of reasons that stop us from exploiting more effectively this library.


previous_group previous up next next_group
Previous: 4. A Third Issue: Up: 1. The Need for Next: 6. A Fifth Issue:
Nguyen Que Duong
2006-09-16