AbstractWe 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
AbstractLogical relations are a fundamental and powerful tool for reasoning about programs in langua...
Functional programming languages such as Haskell are fundamentally different from imperative languag...
Attribute Grammars (AGs) are a formalism for defining tree-based computations. Trees are extended wi...
We describe an algorithm for abstract interpretation of an intermediate language in a Haskell compil...
AbstractWe describe an algorithm for abstract interpretation of an intermediate language in a Haskel...
technical reportAn attribute grammar combines the standard context-free grammar that defines the syn...
The functional programming language Haskell is examined from the point of view of proving programs c...
Attribute coupled grammars and their descriptional composition were advocated by Ganzinger and Giege...
International audienceEvaluation of attributes w.r.t. an attribute grammar can be obtained by induct...
AbstractEvaluation of attributes w.r.t. an attribute grammar can be obtained by inductively computin...
Programming languages are the main tools used to describe models of the real world and algorithms wh...
Functional programming languages such as Haskell are fundamentally different from imperative languag...
A programming language is an essential ingredient for writing concise, maintainable, and error-free ...
Ideally complexity is managed by composing a system out of quite a few, more or less independent, an...
Two mappings from attribute grammars to lazy functional programs are defined. One of these mappings ...
AbstractLogical relations are a fundamental and powerful tool for reasoning about programs in langua...
Functional programming languages such as Haskell are fundamentally different from imperative languag...
Attribute Grammars (AGs) are a formalism for defining tree-based computations. Trees are extended wi...
We describe an algorithm for abstract interpretation of an intermediate language in a Haskell compil...
AbstractWe describe an algorithm for abstract interpretation of an intermediate language in a Haskel...
technical reportAn attribute grammar combines the standard context-free grammar that defines the syn...
The functional programming language Haskell is examined from the point of view of proving programs c...
Attribute coupled grammars and their descriptional composition were advocated by Ganzinger and Giege...
International audienceEvaluation of attributes w.r.t. an attribute grammar can be obtained by induct...
AbstractEvaluation of attributes w.r.t. an attribute grammar can be obtained by inductively computin...
Programming languages are the main tools used to describe models of the real world and algorithms wh...
Functional programming languages such as Haskell are fundamentally different from imperative languag...
A programming language is an essential ingredient for writing concise, maintainable, and error-free ...
Ideally complexity is managed by composing a system out of quite a few, more or less independent, an...
Two mappings from attribute grammars to lazy functional programs are defined. One of these mappings ...
AbstractLogical relations are a fundamental and powerful tool for reasoning about programs in langua...
Functional programming languages such as Haskell are fundamentally different from imperative languag...
Attribute Grammars (AGs) are a formalism for defining tree-based computations. Trees are extended wi...