Abstract types have existential type
ACM Transactions on Programming Languages and Systems (TOPLAS)
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Eiffel: the language
Compiling polymorphism using intensional type analysis
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Practical Approach to Programming With Assertions
IEEE Transactions on Software Engineering
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Principals in programming languages: a syntactic proof technique
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Behavioral contracts and behavioral subtyping
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
The Definition of Standard ML
Contracts for higher-order functions
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Composable and compilable macros:: you want it when?
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
APSEC '97 Proceedings of the Fourth Asia-Pacific Software Engineering and International Computer Science Conference
Contracts: From Analysis to C++ Implementation
TOOLS '99 Proceedings of the Technology of Object-Oriented Languages and Systems
Interlanguage migration: from scripts to programs
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Operational semantics for multi-language programs
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Typed contracts for functional programming
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Contracts as pairs of projections
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Crossing state lines: adapting object-oriented frameworks to functional reactive languages
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Proceedings for the 1st workshop on Script to Program Evolution
Flapjax: a programming language for Ajax applications
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Adding types to untyped languages
Proceedings of the 5th ACM SIGPLAN workshop on Types in language design and implementation
Object views: fine-grained sharing in browsers
Proceedings of the 19th international conference on World wide web
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ESOP'11/ETAPS'11 Proceedings of the 20th European conference on Programming languages and systems: part of the joint European conferences on theory and practice of software
Space-efficient gradual typing
Higher-Order and Symbolic Computation
The interaction of contracts and laziness
PEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation
Gradual typing for first-class classes
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.00 |
The analogy between types and contracts raises the question of how many features of static type systems can be expressed as dynamic contracts. An important feature missing in prior work on contracts is parametricity, as represented by the polymorphic types in languages like Standard ML. We present a contract counterpart to parametricity. We explore multiple designs for such a system and present one that is simple and incurs minimal execution overhead. We show how to extend the notion of contract blame to our definition. We present a form of inference that can often save programmers from having to explicitly instantiate many parametric contracts. Finally, we present several examples that illustrate how this system mimics the feel and properties of parametric polymorphism in typed languages.