Type-directed partial evaluation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
A compiled implementation of strong reduction
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Proceedings of the ESPRIT Working Group 8533 on Prospects for Hardware Foundations: NADA - New Hardware Design Methods, Survey Chapters
Term rewriting for normalization by evaluation
Information and Computation - Special issue: ICC '99
Normalization by Evaluation for Typed Lambda Calculus with Coproducts
LICS '01 Proceedings of the 16th Annual IEEE Symposium on Logic in Computer Science
Intuitionistic model constructions and normalization proofs
Mathematical Structures in Computer Science
Making a fast curry: push/enter vs. eval/apply for higher-order languages
Journal of Functional Programming
Strongly reducing variants of the Krivine abstract machine
Higher-Order and Symbolic Computation
The Four Colour Theorem: Engineering of a Formal Proof
Computer Mathematics
A Compiled Implementation of Normalization by Evaluation
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
On the implementation of construction functions for non-free concrete data types
ESOP'07 Proceedings of the 16th European conference on Programming
Embedding pure type systems in the lambda-pi-calculus modulo
TLCA'07 Proceedings of the 8th international conference on Typed lambda calculi and applications
Proving equalities in a commutative ring done right in coq
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
Full reduction at full throttle
CPP'11 Proceedings of the First international conference on Certified Programs and Proofs
Hi-index | 0.00 |
We show how testing convertibility of two types in dependently typed systems can advantageously be implemented instead untyped normalization by evaluation, thereby reusing existing compilers and runtime environments for stock functional languages, without peeking under the hood, for a fast yet cheap system in terms of implementation effort. Our focus is on performance of untyped normalization by evaluation. We demonstrate that with the aid of a standard optimization for higher order programs (namely uncurrying), the reuse of native datatypes and pattern matching facilities of the underlying evaluator, we may obtain a normalizer with little to no performance overhead compared to a regular evaluator.