Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Object-oriented programming with flavors
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Eiffel: the language
Typing the specialization interface
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
Object-oriented programming in the BETA programming language
Object-oriented programming in the BETA programming language
Objective ML: a simple object-oriented extension of ML
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Contract Soundness for object-oriented languages
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Jiazzi: new-age components for old-fasioned Java
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Modular mixin-based inheritance for application frameworks
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Object-Oriented Software Construction
Object-Oriented Software Construction
The Java Language Specification
The Java Language Specification
Contracts for higher-order functions
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Computer
Making Components Contract Aware
Computer
jContractor: A Reflective Java Library to Support Design by Contract
Reflection '99 Proceedings of the Second International Conference on Meta-Level Architectures and Reflection
APSEC '97 Proceedings of the Fourth Asia-Pacific Software Engineering and International Computer Science Conference
iContract - The Java(tm) Design by Contract(tm) Tool
TOOLS '98 Proceedings of the Technology of Object-Oriented Languages and Systems
Jam---designing a Java extension with mixins
ACM Transactions on Programming Languages and Systems (TOPLAS)
A first-class approach to genericity
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
DrScheme: a programming environment for Scheme
Journal of Functional Programming
Report on the programming language Euclid
ACM SIGPLAN Notices
Super and inner: together at last!
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
How the design of JML accommodates both runtime assertion checking and formal verification
Science of Computer Programming - Formal methods for components and objects pragmatic aspects and applications
An Overview of Anna, a Specification Language for Ada
IEEE Software
A functional I/O system or, fun for freshman kids
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Revised6 report on the algorithmic language scheme
Journal of Functional Programming
Contracts for first-class modules
DLS '09 Proceedings of the 5th symposium on Dynamic languages
Random testing for higher-order, stateful programs
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Nested and dynamic contract boundaries
IFL'09 Proceedings of the 21st international conference on Implementation and application of functional languages
Contracts as pairs of projections
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
The spec# programming system: an overview
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
Scheme with classes, mixins, and traits
APLAS'06 Proceedings of the 4th Asian conference on Programming Languages and Systems
Random testing for higher-order, stateful programs
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Gradual typing for first-class classes
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Chaperones and impersonators: run-time support for reasonable interposition
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Proceedings of the 28th Annual ACM Symposium on Applied Computing
Contracts for First-Class Classes
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
First-class classes add expressive power to class-based object-oriented languages. Most importantly, programmers can abstract over common scenarios with first-class classes. When it comes to behavioral software contracts, however, first-class classes pose significant challenges. In this paper, we present the first contract system for a programming language with first-class classes. The design has been implemented for Racket, which supports first-class classes and which implements mixins and traits as syntactic sugar. We expect that our experience also applies to languages with native mixins and/or traits.