Abstract
The goal of the Clouds project at Georgia Tech is the implementation of a fault-tolerant distributed operating system based on the notions of objects, actions, and processes, which will provide an environment for the construction of reliable applications. The Aeolus programming language developed from the need for an implementation language for those portions of the Clouds system above the kernel level. Aeolus has evolved with these purposes:
*to provide the power needed for systems programming without sacrificing readabiliy or maintainability;
*to provide abstractions of the Clouds notions of objects, actions, and processes as features within the language;
*to provide access to the recoverability and synchronization features of the Clouds system; and
*to serve as a testbed for the study of programming methodologies for action-object systems such as Clouds
Thus the main interest of Aeolus lies not in the language itself, but in what may be done with the language. We have avoided providing high-level features for programming actions with the intention of evolving designs for such features out of our experience with programming in Aeolus. These features will then be incorporated into an application language for the Clouds system.