The Computer Journal
Garbage collection in an uncooperative environment
Software—Practice & Experience
Algebra of programming
Scrap your boilerplate: a practical design pattern for generic programming
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
Compiling Haskell by Program Transformation: A Report from the Trenches
ESOP '96 Proceedings of the 6th European Symposium on Programming Languages and Systems
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
A static semantics for Haskell
Journal of Functional Programming
Secrets of the Glasgow Haskell Compiler inliner
Journal of Functional Programming
LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
Attribute grammars fly first-class: how to do aspect oriented programming in Haskell
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Attribute grammars fly first-class: how to do aspect oriented programming in Haskell
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
A generic deriving mechanism for Haskell
Proceedings of the third ACM Haskell symposium on Haskell
A certified framework for compiling and executing garbage-collected languages
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Iterative type inference with attribute grammars
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Stepwise evaluation of attribute grammars
Proceedings of the Eleventh Workshop on Language Descriptions, Tools and Applications
Visitor-based Attribute Grammars with Side Effect
Electronic Notes in Theoretical Computer Science (ENTCS)
A lean specification for GADTs: system F with first-class equality proofs
Higher-Order and Symbolic Computation
TLDI '12 Proceedings of the 8th ACM SIGPLAN workshop on Types in language design and implementation
The kennedy-warren algorithm revisited: ordering attribute grammars
PADL'12 Proceedings of the 14th international conference on Practical Aspects of Declarative Languages
Layout-sensitive language extensibility with SugarHaskell
Proceedings of the 2012 Haskell Symposium
SBLP'12 Proceedings of the 16th Brazilian conference on Programming Languages
UUAG meets AspectAG: how to make attribute grammars first-class
Proceedings of the Twelfth Workshop on Language Descriptions, Tools, and Applications
The Intel labs Haskell research compiler
Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
Lazy stateless incremental evaluation machinery for attribute grammars
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
In this paper we describe the architecture of the Utrecht Haskell Compiler (UHC). UHC is a new Haskell compiler, that supports most (but not all) Haskell 98 features, plus some experimental extensions. It targets multiple backends, including a bytecode interpreter backend and a whole-program analysis backend, both via C. The implementation is rigorously organized as stepwise transformations through some explicit intermediate languages. The tree walks of all transformations are expressed as an algebra, with the aid of an Attribute Grammar based preprocessor. The compiler is just one materialization of a framework that supports experimentation with language variants, thanks to an aspect-oriented internal organization.