FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Handbook of logic in computer science (vol. 2)
Formal parametric polymorphism
Theoretical Computer Science - A collection of contributions in honour of Corrado Bo¨hm on the occasion of his 70th birthday
Computation and reasoning: a type theory for computer science
Computation and reasoning: a type theory for computer science
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Cayenne—a language with dependent types
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Dependent types in practical programming
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Logic for Parametric Polymorphism
TLCA '93 Proceedings of the International Conference on Typed Lambda Calculi and Applications
Outline of a Proof Theory of Parametricity
Proceedings of the 5th ACM Conference on Functional Programming Languages and Computer Architecture
Intensionality, Extensionality, and Proof Irrelevance in Modal Type Theory
LICS '01 Proceedings of the 16th Annual IEEE Symposium on Logic in Computer Science
Journal of Functional Programming
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Combining programming with theorem proving
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Formal certification of a compiler back-end or: programming a compiler with a proof assistant
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Simple unification-based type inference for GADTs
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Foundational Typed Assembly Language with Certified Garbage Collection
TASE '07 Proceedings of the First Joint IEEE/IFIP Symposium on Theoretical Aspects of Software Engineering
TLCA'01 Proceedings of the 5th international conference on Typed lambda calculi and applications
Formal verification of a c compiler front-end
FM'06 Proceedings of the 14th international conference on Formal Methods
Dependent types and program equivalence
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Singleton types here, singleton types there, singleton types everywhere
Proceedings of the 4th ACM SIGPLAN workshop on Programming languages meets program verification
Irrelevance in type theory with a heterogeneous equality judgement
FOSSACS'11/ETAPS'11 Proceedings of the 14th international conference on Foundations of software science and computational structures: part of the joint European conferences on theory and practice of software
Equational reasoning about programs with general recursion and call-by-value semantics
PLPV '12 Proceedings of the sixth workshop on Programming languages meets program verification
TLDI '12 Proceedings of the 8th ACM SIGPLAN workshop on Types in language design and implementation
Equality proofs and deferred type errors: a compiler pearl
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
We introduce Erasure Pure Type Systems, an extension to Pure Type Systems with an erasure semantics centered around a type constructor ¬ indicating parametric polymorphism. The erasure phase is guided by lightweight program annotations. The typing rules guarantee that well-typed programs obey a phase distinction between erasable (compile-time) and non-erasable (run-time) terms. The erasability of an expression depends only on how its value is used in the rest of the program. Despite this simple observation, most languages treat erasability as an intrinsic property of expressions, leading to code duplication problems. Our approach overcomes this deficiency by treating erasability extrinsically. Because the execution model of EPTS generalizes the familiar notions of type erasure and parametric polymorphism, we believe functional programmers will find it quite natural to program in such a setting.