Eiffel: the language
Introducing concurrency to a sequential language
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
Java Virtual Machine Specification
Java Virtual Machine Specification
Computer
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
iContract - The Java(tm) Design by Contract(tm) Tool
TOOLS '98 Proceedings of the Technology of Object-Oriented Languages and Systems
Adding Contracts to Java with Handshake
Adding Contracts to Java with Handshake
A Simple and Practical Approach to Unit Testing: The JML and JUnit Way
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Adding Design by Contract to the Ada Language
Ada-Europe '02 Proceedings of the 7th Ada-Europe International Conference on Reliable Software Technologies
OpenJIT Frontend System: An Implementation of the Reflective JIT Compiler Frontend
Proceedings of the 1st OOPSLA Workshop on Reflection and Software Engineering: Reflection and Software Engineering, Papers from OORaSE 1999
Lazy Contract Checking for Immutable Data Structures
Implementation and Application of Functional Languages
From Contracts Towards Dependent Types: Proofs by Partial Evaluation
Implementation and Application of Functional Languages
A Lightweight Container Architecture for Runtime Verification
Runtime Verification
MODELS '09 Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems
Contracts for first-class classes
Proceedings of the 6th symposium on Dynamic languages
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
Checking the conformance of java classes against algebraic specifications
ICFEM'06 Proceedings of the 8th international conference on Formal Methods and Software Engineering
Automatic generation of test models and properties from UML models with OCL constraints
Proceedings of the 12th Workshop on OCL and Textual Modelling
Contracts for First-Class Classes
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
jContractor is a purely library based approach to support Design By Contract specifications such as preconditions, postconditions, class invariants, and recovery and exception handling in Java. jContractor uses an intuitive naming convention, and standard Java syntax to instrument Java classes and enforce Design By Contract constructs. The designer of a class specifies a contract by providing contract methods following jContractor naming conventions. jContractor uses Java Reflection to synthesize an instrumented version of a Java class by incorporating code that enforces the present jContractor contract specifications. Programmers enable the run-time enforcement of contracts by either engaging the jContractor class loader or by explicitly instantiating objects using the jContractor object factory. Programmers can use exactly the same syntax for invoking methods and passing object references regardless of whether contracts are present or not. Since jContractor is purely library-based, it requires no special tools such as modified compilers, modified JVMs, or pre-processors.