Types and programming languages
Types and programming languages
The Definition of Standard ML
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
Theoretical Computer Science - Applied semantics: Selected topics
A concrete framework for environment machines
ACM Transactions on Computational Logic (TOCL)
Information Processing Letters
Defunctionalized interpreters for programming languages
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Science of Computer Programming
A rewriting semantics for type inference
ESOP'07 Proceedings of the 16th European conference on Programming
Semantics Engineering with PLT Redex
Semantics Engineering with PLT Redex
From reduction-based to reduction-free normalization
AFP'08 Proceedings of the 6th international conference on Advanced functional programming
Towards deriving type systems and implementations for coroutines
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
From type checking by recursive descent to type checking with an abstract machine
Proceedings of the Eleventh Workshop on Language Descriptions, Tools and Applications
A logical correspondence between natural semantics and abstract machines
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
Hi-index | 0.89 |
We describe a derivational approach to proving the equivalence of different representations of a type system. Different ways of representing type assignments are convenient for particular applications such as reasoning or implementation, but some kind of correspondence between them should be proven. In this paper we address two such semantics for type checking: one, due to Kuan et al., in the form of a term rewriting system and the other in the form of a traditional set of derivation rules. By employing a set of techniques investigated by Danvy et al., we mechanically derive the correspondence between a reduction-based semantics for type checking and a traditional one in the form of derivation rules, implemented as a recursive descent. The correspondence is established through a series of semantics-preserving functional program transformations.