BeCecil, a Core Object-Oriented Language
with Block Structure and Multimethods:
Semantics and Typing
Craig Chambers and Gary Leavens
We present and analyze the semantics and static type system for
BeCecil, a theoretical (core) language with multimethods. BeCecil is
a simple and orthogonal version of object-oriented languages like
Cecil, CLOS, and Dylan. BeCecil has a new, simple mechanism for
information hiding, which allows subclassing and yet can preserve
representation invariants. BeCecil is also block-structured; within a
block, one can extend a generic function with new multimethods, which
may come from other generic functions. The inheritance relationships
of objects may be extended in any block, and are statically scoped.
The type system separates classes from types, and inheritance from
subtyping. Subtype relationships are also extensible and statically
scoped. These features combine to make BeCecil unusually expressive,
while still allowing static typechecking.
This report, minus the appendices, appeared in the proceedings of the
The Fourth International Workshop on Foundations of Object-Oriented
Languages (FOOL 4), Paris, France, January 1997.
To get the PostScript file, click
here.
Cecil/Vortex
Project