A novel representation of lists and its application to the function "reverse"
Information Processing Letters
A portable global optimizer and linker
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
The advantages of machine-dependent global optimization
Proceedings of the international conference on Programming languages and system architectures
Automatic isolation of compiler errors
ACM Transactions on Programming Languages and Systems (TOPLAS)
A single intermediate language that supports multiple implementations of exceptions
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Composing dataflow analyses and transformations
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Modern Compiler Implementation: In ML
Modern Compiler Implementation: In ML
A Retargetable C Compiler: Design and Implementation
A Retargetable C Compiler: Design and Implementation
C--: A Portable Assembly Language that Supports Garbage Collection
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
Machine Descriptions to Build Tools for Embedded Systems
LCTES '98 Proceedings of the ACM SIGPLAN Workshop on Languages, Compilers, and Tools for Embedded Systems
Basic-Block Graphs: Living Dinosaurs?
CC '98 Proceedings of the 7th International Conference on Compiler Construction
Journal of Functional Programming
Hi-index | 0.00 |
We are using ML to build a compiler that does low-level optimization. To support optimizations in classic imperative style, we built a control-flow graph using mutable pointers and other mutable state in the nodes. This decision proved unfortunate: the mutable flow graph was big and complex, and it led to many bugs. We have replaced it by a smaller, simpler, applicative flow graph based on Huet's [Huet, Gerard, 1997. The Zipper. Journal of Functional Programming, 7(5):549-554. Functional Pearl] zipper. The new flow graph is a success; this paper presents its design and shows how it leads to a gratifyingly simple implementation of the dataflow framework developed by [Lerner, Sorin, David Grove, and Craig Chambers. 2002. Composing dataflow analyses and transformations. Conference Record of the 29th Annual ACM Symposium on Principles of Programming Languages, in SIGPLAN Notices, 31(1):270-282].