Vincent F. Russo

Learn More
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 UrbanaChampaign. Choices embodies the notion of customized operating systems that are tailored for particular hardware configurations or for particular applications. Within one large(More)
Reusing the products of the software development process is an important way to reduce software costs and to make programmers and designers more e cient. Object-oriented programming permits the reuse of design as well as programs. This paper describes two techniques for reusing design and how these reusable designs are developed. Abstract classes are(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)
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)
c++ uscs inheritance as a substitute for subtype polymorphism. We give examples where this makes tbe type system too inflexible. We then describe a conservative language extension 1.1111.1 allows a programmer to define an abstract. type hierarchy independent of any implementation hierarchies, to retroactively abstract over an implementation, and to decouple(More)
The programming of the interrupt handling mechanisms, process switching primitives, scheduling mechanisms, and synchronization primitives of an operating system for a multiprocessor require both efficient code in order to support the needs of high-performance or real-time applications and careful organization to facilitate maintenance. Although many(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)