Article ID | Journal | Published Year | Pages | File Type |
---|---|---|---|---|
422147 | Electronic Notes in Theoretical Computer Science | 2009 | 17 Pages |
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.
Related Topics
Physical Sciences and Engineering
Computer Science
Computational Theory and Mathematics