Abstract. A properly encapsulated data representation can be revised for refactoring or other purposes without affecting the correctness of client programs and extensions of a clas...
Library writers wish to provide a guarantee not only that each procedure in the library performs correctly in isolation, but also that the procedures perform correctly when run in ...
There are many algorithms for concurrent garbage collection, but they are complex to describe, verify, and implement. This has resulted in a poor understanding of the relationships...
Martin T. Vechev, David F. Bacon, Perry Cheng, Dav...
Traits support the factoring out of common behaviour, and its integration into classes in a manner that coexists smoothly with inheritance-based structuring mechanisms. We designed...
Most modern programming systems such as Java allow us to link independently developed components together dynamically. This makes it possible to develop and deploy software on a pe...
Two object-oriented programming language paradigms— dynamic, prototype-based languages and multi-method languages— provide orthogonal benefits to software engineers. These two...
This paper presents our ongoing research towards a safe system evolution. Our approach is based on data-centric, objectoriented systems. Within those systems we utilise (i) multi-...
In Java 2 and Microsoft .NET Common Language Runtime (CLR), trusted code has often been programmed to perform accessrestricted operations not explicitly requested by its untrusted ...
Marco Pistoia, Robert J. Flynn, Larry Koved, Vugra...
Abstract. In aspect-oriented programming, pointcuts are used to describe crossstructure. Pointcuts that abstract over irrelevant implementation details are clearly desired to bette...