Chambers, Craig and Leavens, Gary T. (1997) BeCecil, A Core Object-Oriented Language with Block Structure and Multimethods: Semantics and Typing. Technical Report TR96-17a, Department of Computer Science, Iowa State University.
BeCecil, A Core Object-Oriented Language
with Block Structure and Multimethods:
Semantics and Typing
Craig Chambers and Gary T. 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.
Keywords: Multimethods, generic functions, object-oriented programming
languages, encapsulation, information hiding, static typechecking,
block structure, subtyping, inheritance, BeCecil language.
1994 CR Categories:
D.3.1 [Programming Languages] Formal Definitions and Theory - semantics;
D.3.2 [Programming Languages] Language Classifications
- object-oriented languages;
D.3.3 [Programming Languages] Language Constructs and Features
- abstract data types, control structures, procedures, functions,
D.3.m [Programming Languages] Miscellaneous - multimethods, generic functions,
F.3.2 [Logics and Meanings of Programs] Semantics of Programming Languages
- operational semantics;
F.3.3 [Logics and Meanings of Programs] Studies of Program Constructs
- control primitives, type structure.
This report also appears as a technical report
from the Department of Computer Science and Engineering,
University of Washington, Seattle, WA, numbered UW-CSE-96-12-02.
Contact site administrator at: email@example.com