Open bramvdbogaerde opened 2 years ago
We'll definitely need to split this :-)
Bullets 1 & 3 are also related to previous issues tagged with "Abstract Domain" (e.g., #24, #22, ...), so we might want to take all of those into account when we start refactoring the implementation of these abstract domains.
Not sure what bullet 4 is about. The flexibility (e.g., for the given example with if
-expressions) is already enabled by the monadic style. Does this boil down then to having more monad transformers to make it easier to construct those monads?
We might want to split this issue into multiple different issues, but I hope to give an overview of the ways in which one might want to extend MAF.
SchemeLattice
and therefore need to be implemented for particular abstract domains and analyses for which they might not even make much sense.if expression
, another might want to keep them as separate states that need to be explored further. Currently, the big step semantics somewhat accommodate for this by defining the semantics in a monadic style. Changing the behaviour of the intra-analysis therefore often comes down to changing the monad. However, a more generic set of monads might be introduced so that the burden of implementing a compatible monad with only slightly different semantics is lessened.