Algebra of programming
Finding circular attributes in attribute grammars
Journal of the ACM (JACM)
Compiling language definitions: the ASF+SDF compiler
ACM Transactions on Programming Languages and Systems (TOPLAS)
The GRIN Project: A Highly Optimising Back End for Lazy Functional Languages
IFL '96 Selected Papers from the 8th International Workshop on Implementation of Functional Languages
Making a fast curry: push/enter vs. eval/apply for higher-order languages
Journal of Functional Programming
Circular reference attributed grammars — their evaluation and applications
Science of Computer Programming
Iterative type inference with attribute grammars
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Hi-index | 0.00 |
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.