Understanding Russell–a first attempt
Proc. of the international symposium on Semantics of data types
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The Expressiveness of Simple and Second-Order Type Structures
Journal of the ACM (JACM)
Deriving Target Code as a Representation of Continuation Semantics
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Denotational Description of Programming Languages: An Introduction
The Denotational Description of Programming Languages: An Introduction
A Theory of Programming Language Semantics
A Theory of Programming Language Semantics
A types-as-sets semantics for milner-style polymorphism
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Syntactic accidents in program analysis: on the impact of the CPS transformation
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Macros as multi-stage computations: type-safe, generative, binding macros in MacroML
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
A foundation for embedded languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
A First-Order One-Pass CPS Transformation
FoSSaCS '02 Proceedings of the 5th International Conference on Foundations of Software Science and Computation Structures
A first-order one-pass CPS transformation
Theoretical Computer Science
Syntactic accidents in program analysis: on the impact of the CPS transformation
Journal of Functional Programming
CPS transformation of flow information
Journal of Functional Programming
CPS transformation of flow information, Part II: administrative reductions
Journal of Functional Programming
Higher-Order and Symbolic Computation
Hi-index | 0.00 |
We show how a programming language designer may embed the type structure of a programming language in the more robust type structure of the typed lambda calculus. This is done by translating programs of the language into terms of the typed lambda calculus. Our translation, however, does not always yield a well-typed lambda term. Programs whose translations are not well-typed are considered meaningless, that is, ill-typed. We give a conditionally type-correct semantics for a simple language with continuation semantics. We provide a set of static type-checking rules for our source language, and prove that they are sound and complete: that is, a program passes the typing rules if and only if its translation is well-typed. This proves the correctness of our static semantics relative to the well-established typing rules of the typed lambda-calculus.