Learn More
C++ uses inheritance as a substitute for subtype polymorphism. We give examples where this makes the type system too innexible. We then describe a conservative language extension that allows a programmer to deene an abstract type hierarchy independent of any implementation hierarchies, to retroactively abstract over an implementation, and to decouple(More)
Please send us your comments about the paper. In particular, tell us what bores you, what mysties you, and what you think is wrong. If you want to reference this paper, it is University of Illinois tech report UIUCDCS 91-1696. Abstract Reusing the products of the software development process is an important way to reduce software costs and to make(More)
The <italic>Choices</italic> operating system architecture [3, 4, 15] uses class hierarchies and object-oriented programming to facilitate the construction of customized operating systems for shared memory and networked multiprocessors. The software is being used in the Tapestry Parallel Computing Laboratory at the University of Illinois to study the(More)
1. I n t r o d u c t i o n This paper describes the design for an operating system family called Choices being built for the Embedded Operating System (EOS) project at the University of Illinois at Urbana-Champaign. Choices embodies the notion of customized operating systems that are tailored for particular hardware configurations or for particular(More)
In Java, an interface specifies public abstract methods and associated public constants. Conformance of a class to an interface is by name. We propose to allow structural conformance to interfaces as well: Any class that provides an implementation for each method in an interface conforms structurally to the interface, and any instance of the class can be(More)
We outline the design and detail the implementation of a language extension for abstracting types and for decoupling subtyping and inheritance in C++. This extension gives the user more of the flexibility of dynamic typing while retaining the efficiency and security of static typing. After a brief discussion of syntax and semantics of this language(More)
This paper presents three principles for the design and construction of object-oriented operating systems. These principles are based on the design of Choices, an object-oriented operating system that is implemented on the Encore Multimax shared memory multiprocessor. Choices is written entirely in C++, an object-oriented language that supports inheritance(More)
This paper describes the object-oriented design and implementation of a family of stream-oriented le systems under UNIX and under an object-oriented operating system called Choices. A class hierarchy provides an object-oriented taxonomy of the algorithms and data structures used in the design of this family. The family includes the System V le system, the(More)