Papers describing Qualifying Types and Bracket Methods
Qualifying Types with Bracket Methods in Timor [26]
https://www.jot.fm/issues/issue_2004_01/article1/
Journal of Object Technology
Abstract:
A new kind of type is described whose objects ("qualifiers") have bracket methods which can modify the run-time behaviour of other objects ("targets"). Bracket methods can qualify either specific methods of a target or can separately qualify their reader and writer methods, thus allowing general qualifiers to be developed for standard activities such as synchronisation, monitoring and protection. Qualifiers are associated with a target when it is created, in the form of a qualifier list. Individual qualifiers can be dynamically added to and removed from the list even while the target object is active.
Statically Qualified Types in Timor [27]
https://www.jot.fm/issues/issue_2005_09/article5/
Journal of Object Technology
Abstract:
Qualifying types in Timor represent a new kind of software component, instances of which can qualify the behaviour of other objects in a general way by means of special methods known as bracket methods. A bracket method "catches" invocations of methods of other objects ("targets") and its code can replace that of the target methods. They can use the special body statement to invoke the target method and thus provide code which serves as a prelude and/or a postlude for it, e.g. to synchronise, monitor or protect the object to which the target method belongs. In many cases bracket methods can be defined and implemented without having a direct knowledge of the types which they will later qualify. Hence we expect that they will provide a significant contribution to the emergence of a genuine software components industry, as envisaged by McIlroy more than three decades ago. Instances of qualifying types ("qualifiers") have a role analogous to adjectives in natural language which are used to qualify nouns (the "targets"), e.g. a "synchronised person" or a "protected list". Such adjectival qualification occurs in two forms in natural language. The first form is entirely dynamic. For example the nouns serving both as subject and as object of the following sentence are dynamically qualified by adjectives: "The nice old lady held the pretty little baby." The adjectives appear in noun phrases which are especially created for a particular sentence. This is loosely equivalent to using Timor qualifiers as described in our earlier papers, whereby qualifiers can be associated with objects as the latter are instantiated, and even later in the life of the object.
Call-out Bracket Methods in Timor [18]
http://www.jot.fm/issues/issue_2006_01/article1/
Journal of Object Technology
Abstract:
This paper extends the concept of qualifying types by describing how their implementations can include not only bracket methods which are applied when a method of a target object is invoked, but also further "call-out" bracket methods which can be applied to invocations by the target object of the methods of other objects. This additional technique can be used for example to provide enhanced synchronisation in qualifying types, as an aid to confining the activities of an object, and as a means of providing parallel activities associated with the sending and receiving of information, e.g. encryption and decryption, data compression.
Qualifying Types Illustrated by Synchronisation Examples [28]
Abstract:
Qualifying types represent a new approach to modifying the behaviour of instances of other types in a general way, in the form of components which can be designed and implemented without a prior knowledge of the types to be modified or their implementations. This paper illustrates the idea by showing how they can be used to program various standard synchronisation problems, including mutual exclusion, reader-writer synchronisation and several variants of the bounded buffer problem.