4th Annual Symposium on Theoretical Aspects of Computer Sciences on STACS 87
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
An abstract frame work for environment machines
Theoretical Computer Science
Back to direct style II: first-class continuations
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
ESOP'92 Selected papers of the symposium on Fourth European symposium on programming
The next 700 formal language descriptions
Lisp and Symbolic Computation - Special issue on continuations—part I
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Recursive functions of symbolic expressions and their computation by machine, Part I
Communications of the ACM
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
A Theory of Objects
The Definition of Standard ML
From Syntactic Theories to Interpreters: Automating the Proof of Unique Decomposition
Higher-Order and Symbolic Computation
Binding-time analysis for both static and dynamic expressions
New Generation Computing - Partial evaluation and program transformation
Definitional Interpreters Revisited
Higher-Order and Symbolic Computation
Memoization in Type-Directed Partial Evaluation
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
Extracting a Proof of Coherence for Monoidal Categories from a Proof of Normalization for Monoids
TYPES '95 Selected papers from the International Workshop on Types for Proofs and Programs
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Definitional interpreters for higher-order programming languages
ACM '72 Proceedings of the ACM annual conference - Volume 2
A functional correspondence between evaluators and abstract machines
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
Lambda: The Ultimate Imperative
Lambda: The Ultimate Imperative
LAMBDA: The Ultimate Declarative
LAMBDA: The Ultimate Declarative
Rabbit: A Compiler for Scheme
The calculi of lambda-nu-cs conversion: a syntactic theory of control and state in imperative higher-order programming languages
Functional runtime systems within the lambda-sigma calculus
Journal of Functional Programming
Journal of Functional Programming
Journal of Functional Programming
A functional correspondence between call-by-need evaluators and lazy abstract machines
Information Processing Letters
Making a fast curry: push/enter vs. eval/apply for higher-order languages
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
The Calculi of Lambda Conversion. (AM-6) (Annals of Mathematics Studies)
The Calculi of Lambda Conversion. (AM-6) (Annals of Mathematics Studies)
Lightweight fusion by fixed point promotion
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Theoretical Computer Science - Applied semantics: Selected topics
A syntactic correspondence between context-sensitive calculi and abstract machines
Theoretical Computer Science
A concrete framework for environment machines
ACM Transactions on Computational Logic (TOCL)
On one-pass CPS transformations
Journal of Functional Programming
Information Processing Letters
Essentials of Programming Languages, 3rd Edition
Essentials of Programming Languages, 3rd Edition
Defunctionalized interpreters for programming languages
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Science of Computer Programming
A rational deconstruction of landin's SECD machine
IFL'04 Proceedings of the 16th international conference on Implementation and Application of Functional Languages
The theory of calculi with explicit substitutions revisited
CSL'07/EACSL'07 Proceedings of the 21st international conference, and Proceedings of the 16th annuall conference on Computer Science Logic
Inter-deriving semantic artifacts for object-oriented programming
Journal of Computer and System Sciences
Semantics and algebraic specification
Invertible syntax descriptions: unifying parsing and pretty printing
Proceedings of the third ACM Haskell symposium on Haskell
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
An effective methodology for defining consistent semantics of complex systems
CEFP'09 Proceedings of the Third summer school conference on Central European functional programming school
From type checking by recursive descent to type checking with an abstract machine
Proceedings of the Eleventh Workshop on Language Descriptions, Tools and Applications
Three syntactic theories for combinatory graph reduction
LOPSTR'10 Proceedings of the 20th international conference on Logic-based program synthesis and transformation
IFL'10 Proceedings of the 22nd international conference on Implementation and application of functional languages
A correspondence between type checking via reduction and type checking via evaluation
Information Processing Letters
Defunctionalized interpreters for call-by-need evaluation
FLOPS'10 Proceedings of the 10th international conference on Functional and Logic Programming
Theoretical Computer Science
A functional approach to generic programming using adaptive traversals
Higher-Order and Symbolic Computation
Classical call-by-need sequent calculi: the unity of semantic artifacts
FLOPS'12 Proceedings of the 11th international conference on Functional and Logic Programming
A synthetic operational account of call-by-need evaluation
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
Three syntactic theories for combinatory graph reduction
ACM Transactions on Computational Logic (TOCL)
Deriving interpretations of the gradually-typed lambda calculus
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
We document an operational method to construct reduction-free normalization functions. Starting from a reduction-based normalization function from a reduction semantics, i.e., the iteration of a one-step reduction function, we successively subject it to refocusing (i.e., deforestation of the intermediate successive terms in the reduction sequence), equational simplification, refunctionalization (i.e., the converse of defunctionalization), and direct-style transformation (i.e., the converse of the CPS transformation), ending with a reduction-free normalization function of the kind usually crafted by hand. We treat in detail four simple examples: calculating arithmetic expressions, recognizing Dyck words, normalizing lambda-terms with explicit substitutions and call/cc, and flattening binary trees. The overall method builds on previous work by the author and his students on a syntactic correspondence between reduction semantics and abstract machines and on a functional correspondence between evaluators and abstract machines. The measure of success of these two correspondences is that each of the inter-derived semantic artifacts (i.e., man-made constructs) could plausibly have been written by hand, as is the actual case for several ones derived here.