Computer Languages
Denotational semantics: a methodology for language development
Denotational semantics: a methodology for language development
ORBIT: an optimizing compiler for scheme
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
The categorical abstract machine
Science of Computer Programming
TIM: A simple, lazy abstract machine to execute supercombinators
Proc. of a conference on Functional programming languages and computer architecture
Proc. of a conference on Functional programming languages and computer architecture
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Types in lambda calculi and programming languages (invited lecture)
Proceedings of the third European symposium on programming on ESOP '90
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Improving the three instruction machine
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Compilation of functional languages by program transformation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Notions of computation and monads
Information and Computation
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
Implementing functional languages
Implementing functional languages
The essence of functional programming
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Unboxed objects and polymorphic typing
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ESOP'92 Symposium proceedings on 4th European symposium on programming
Using Hindley-Milner type inference to optimise list representation
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Space-efficient closure representations
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Handbook of logic in computer science (vol. 2)
A generic account of continuation-passing styles
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Categorical combinators, sequential algorithms, and functional programming (2nd ed.)
Categorical combinators, sequential algorithms, and functional programming (2nd ed.)
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Monad transformers and modular interpreters
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Let-floating: moving bindings to give faster programs
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Functional back-ends within the lambda-sigma calculus
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Deriving Target Code as a Representation of Continuation Semantics
ACM Transactions on Programming Languages and Systems (TOPLAS)
Functional Programming and Parallel Graph Rewriting
Functional Programming and Parallel Graph Rewriting
Towards a Taxonomy of Functional Languages Implementations
PLILPS '95 Proceedings of the 7th International Symposium on Programming Languages: Implementations, Logics and Programs
Modeling Sharing and Recursion for Weak Reduction Strategies Using Explicit Substitution
PLILP '96 Proceedings of the 8th International Symposium on Programming Languages: Implementations, Logics, and Programs
Proceedings of ACM conference on Proving assertions about programs
Rabbit: A Compiler for Scheme
The Implementation of Functional Programming Languages (Prentice-Hall International Series in Computer Science)
Compilation of a specialized functional language for massively parallel computers
Journal of Functional Programming
Making a fast curry: push/enter vs. eval/apply for higher-order languages
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
Making a fast curry: push/enter vs. eval/apply for higher-order languages
Journal of Functional Programming
Higher-Order and Symbolic Computation
Sequent calculi and abstract machines
ACM Transactions on Programming Languages and Systems (TOPLAS)
Formally defining and iterating infinite models
MODELS'12 Proceedings of the 15th international conference on Model Driven Engineering Languages and Systems
A synthetic operational account of call-by-need evaluation
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
Hi-index | 0.00 |
We introduce a unified framework to describe, relate, compare, and classify functional language implementations. The compilation process is expressed as a succession of program transformations in the common framework. At each step, different transformations model fundamental choices. A benefit of this approach is to structure and decompose the implementation process. The correctness proofs can be tackled independently for each step and amount to proving program transformations in the functional world. This approach also paves the way to formal comparisons by making it possible to estimate the complexity of individual transformations or compositions of them. Our study aims at covering the whole known design space of sequential functional language implementations. In particular, we consider call-by-value, call-by-name, call-by-need reduction strategies as well as environment- and graph-based implementations. We describe for each compilation step the diverse alternatives as program transformations. In some cases, we illustrate how to compare or relate compilation techniques, express global optimizations, or hybrid implementations. We also provide a classification of well-known abstract machines.