The definition of Standard ML
An ad hoc approach to the implementation of polymorphism
ACM Transactions on Programming Languages and Systems (TOPLAS)
MIPS RISC architectures
Unboxed values as first class citizens in a non-strict functional language
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Compiling with continuations
Unboxed objects and polymorphic typing
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On the type structure of standard ML
ACM Transactions on Programming Languages and Systems (TOPLAS)
Manifest types, modules, and separate compilation
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A type-theoretic approach to higher-order modules with sharing
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Compiling polymorphism using intensional type analysis
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A formal model and specification language for procedure calling conventions
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A type-based compiler for standard ML
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Compiling standard ML for efficient execution on modern machines
Compiling standard ML for efficient execution on modern machines
Unboxed values and polymorphic typing revisited
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Optimizing ML with run-time code generation
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Fast, effective dynamic compilation
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
VCODE: a retargetable, extensible, very fast dynamic code generation system
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
TIL: a type-directed optimizing compiler for ML
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
A simple applicative language: mini-ML
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Principal type-schemes for functional programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Semantics for Higher-Order Functors
ESOP '94 Proceedings of the 5th European Symposium on Programming: Programming Languages and Systems
Towards a theory of type structure
Programming Symposium, Proceedings Colloque sur la Programmation
Compiling Polymorphism Using Intensional Type Analysis
Compiling Polymorphism Using Intensional Type Analysis
Bridging the gulf: a common intermediate language for ML and Haskell
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
From system F to typed assembly language
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On the runtime complexity of type-directed unboxing
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Compiling standard ML to Java bytecodes
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Typed cross-module compilation
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Intensional polymorphism in type-erasure semantics
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Implementing typed intermediate languages
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Transparent modules with fully syntatic signatures
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Efficient and safe-for-space closure conversion
ACM Transactions on Programming Languages and Systems (TOPLAS)
Fully reflexive intensional type analysis
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Kava: a Java dialect with a uniform object model for lightweight classes
Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande
Type-based hot swapping of running modules (extended abstract)
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Intensional analysis of quantified types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Representation Analysis for Coercion Placement
SAS '02 Proceedings of the 9th International Symposium on Static Analysis
Formalization of generics for the .NET common language runtime
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Constructed product result analysis for Haskell
Journal of Functional Programming
Inlining as staged computation
Journal of Functional Programming
Intensional polymorphism in type-erasure semantics
Journal of Functional Programming
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type-Safe Code Transformations in Haskell
Electronic Notes in Theoretical Computer Science (ENTCS)
Typed common intermediate format
DSL'97 Proceedings of the Conference on Domain-Specific Languages on Conference on Domain-Specific Languages (DSL), 1997
A type-preserving closure conversion in haskell
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
Typed closure conversion preserves observational equivalence
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Functional in-place update with layered datatype sharing
TLCA'03 Proceedings of the 6th international conference on Typed lambda calculi and applications
Hi-index | 0.00 |
Statically typed languages with Hindley-Milner polymorphism have long been compiled using inefficient and fully boxed data representations. Recently, several new compilation methods have been proposed to support more efficient and unboxed multi-word representations. Unfortunately, none of these techniques is fully satisfactory. For example, Leroy's coercion-based approach does not handle recursive data types and mutable types well. The type-passing approach (proposed by Harper and Morrisett) handles all data objects, but it involves extensive runtime type analysis and code manipulations.This paper presents a new flexible representation analysis technique that combines the best of both approaches. Our new scheme supports unboxed representations for recursive and mutable types, yet it only requires little runtime type analysis. In fact, we show that there is a continuum of possibilities between the coercion-based approach and the type-passing approach. By varying the amount of boxing and the type information passed at runtime, a compiler can freely explore any point in the continuum---choosing from a wide range of representation strategies based on practical concerns. Finally, our new scheme also easily extends to handle type abstractions across ML-like higher-order modules.