[Next] [Previous] [Top] [Contents] [Index]

"The Cecil Language: Specification and Rationale"

7 Conclusion


Cecil is a pure object-oriented language intended to support the rapid construction of reliable, extensible systems. It incorporates a relatively simple object model which is based on multiple dispatching. Cecil compliments this object model with a static type system that describes the interfaces to objects instead of their representations and a module system to group and encapsulate objects and methods. Cecil's type system distinguishes subtyping from code inheritance, but uses notation that strives to minimize the burden on the programmer of maintaining these separate object and type relationships. The type system supports explicitly and implicitly parameterized types and methods to precisely capture the relationships among argument types and result types in a convenient and concise way. Cecil supports both an exploratory programming style and a production programming style, in part by allowing a program to mature incrementally from a dynamically-typed system to a statically-typed system. Some areas of Cecil's design are the subject of current work, including the details of the parameterization mechanism in the static type system, the precise semantics of the module system, and a formal specification of the static and dynamic semantics of the language.