ABSTRACT

This paper describes the methods and classes that we defined and the tools that we built to augment the C++ language so that it would better support the construction of an object- oriented operating system. To motivate the de- velopment of these facilities, we briefly describe Choices, an object-oriented operating system that runs on bare hardware, and its requirements for object-oriented language support. Together these facilities provide the automatic deletion of unreachable objects, first-class classes, dynami- cally loadable code for classes, and class-oriented debugging. Because of our experience building Choices, we advocate these features as useful, simplifying and unifying many aspects of object- oriented systems programming.