Abstract Interpretation of Functional Programs using an Attribute Grammar System

https://doi.org/10.1016/j.entcs.2009.09.044Get rights and content
Under a Creative Commons license
open access

Abstract

We describe an algorithm for abstract interpretation of an intermediate language in a Haskell compiler, itself also written in Haskell. It computes approximations of possible values for all variables in the program, which can be used for optimizing the object code. The analysis is done by collecting constraints on variables, which are then solved by fixpoint iteration. The set of constraints grows while solving, as possible values of unknown functions become known. The constraints are collected by decorating the abstract syntax tree with an attribute grammar based preprocessor for Haskell. An introduction to this preprocessor is also given.

Cited by (0)