ORBIT: an optimizing compiler for scheme
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
Continuation-passing, closure-passing style
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Control-flow analysis of higher-order languages of taming lambda
Control-flow analysis of higher-order languages of taming lambda
Compiling with continuations
Handbook of logic in computer science (vol. 2)
Soft typing with conditional types
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Selective and lightweight closure conversion
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A unified treatment of flow analysis in higher-order languages
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Intersection and union types: syntax and semantics
Information and Computation
Compiling standard ML for efficient execution on modern machines
Compiling standard ML for efficient execution on modern machines
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
What are principal typings and what are they good for?
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A modular, polyvariant and type-based closure analysis
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
A Typed Intermediate Language for Flow-Directed Compilation
TAPSOFT '97 Proceedings of the 7th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
SAS '96 Proceedings of the Third International Symposium on Static Analysis
Control-Flow Analysis and Type Systems
SAS '95 Proceedings of the Second International Symposium on Static Analysis
LICS '95 Proceedings of the 10th Annual IEEE Symposium on Logic in Computer Science
Rabbit: A Compiler for Scheme
Rank 2 Type Systems and Recursive Definitions
Rank 2 Type Systems and Recursive Definitions
From system F to typed assembly language
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Implementing typed intermediate languages
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
From system F to typed assembly language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Type-based analysis of uncaught exceptions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Typed compilation of inclusive subtyping
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Type-based analysis and applications
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Functioning without closure: type-safe customized function representations for standard ML
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Inferring annotated types for inter-procedural register allocation with constructor flattening
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
Flow-Directed Closure Conversion for Typed Languages
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
Faithful Translations between Polyvariant Flows and Polymorphic Types
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
Design and Correctness of Program Transformations Based on Control-Flow Analysis
TACS '01 Proceedings of the 4th International Symposium on Theoretical Aspects of Computer Software
Representation Analysis for Coercion Placement
SAS '02 Proceedings of the 9th International Symposium on Static Analysis
Program Representation Size in an Intermediate Language with Intersection and Union Types
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
Modular control-flow analysis with rank 2 intersection types
Mathematical Structures in Computer Science
A conjunctive type system for useless-code elimination
Mathematical Structures in Computer Science
A calculus with polymorphic and polyvariant flow types
Journal of Functional Programming
From Polyvariant flow information to intersection and union types
Journal of Functional Programming
TIL: a type-directed, optimizing compiler for ML
ACM SIGPLAN Notices - Best of PLDI 1979-1999
Static typing for a faulty lambda calculus
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
We present a new framework for transforming data representations in a strongly typed intermediate language. Our method allows both value producers (sources) and value consumers (sinks) to support multiple representations, automatically inserting any required code. Specialized representations can be easily chosen for particular source/sink pairs.The framework is based on these techniques:1. Flow annotated types encode the "flows-from" (source) and "flows-to" (sink) information of a flow graph.2. Intersection and union types support (a) encoding precise flow information, (b) separating flow information so that transformations can be well typed, (c) automatically reorganizing flow paths to enable multiple representations.As an instance of our framework, we provide a function representation transformation that encompasses both closure conversion and inlining. Our framework is adaptable to data other than functions.