James Leslie Keedy

Learn More
  • R Morrison, Architectures In Atkinson, +6 authors M P Atkinson
  • 1990
Persistent programming is concerned with creating and manipulating data in a manner that is independent of its lifetime. The persistence abstraction yields a number of advantages in terms of orthogonal design and programmer productivity. One major advantage is that the abstraction integrates the database view of information with the programming language(More)
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(More)
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(More)
This paper considers whether Hoare's monitor proposal for structuring operating systems could usefully be applied in the design of substantial operating systems for medium or large computers. Attention is drawn to problems which might arise in terms of the structural form of monitors, the approach to resource scheduling, and the monitor approach to(More)
In an object oriented system different types of objects may have one or more attributes in common. For example different types of objects in a library system might be "loanable" or "catalogued". The first part of the paper introduces a distinction between object types and attribute types, showing that there are advantages in treating them as separate(More)
Recent proposals for adding parameterised types to Java have left a number of important practical issues undiscussed. In this paper we present the language Genja which is a new generic extension of Java oriented towards practical support for generic collection types. We discuss design alternatives related to extending the power of unconstrained genericity,(More)
Inheritance mechanisms are used to express many different programming concepts. In this paper we analyse these inheritance concepts to determine the requirements for an inheritance mechanism which is to support the concepts well. On the basis of this analysis we identify weaknesses in current mechanisms, particularly in the areas of modelling and signature(More)