archives

BeCecil, A Core Object-Oriented Language with Block Structure and Multimethods: Semantics and Typing


Home 

About 

Browse 

Search 

Register 

Subscriptions 

Deposit Papers 

Help
    

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.

Full text available as:Postscript
Adobe PDF

Abstract

BeCecil, A Core Object-Oriented Language
with Block Structure and Multimethods:
Semantics and Typing
by
Craig Chambers and Gary T. Leavens
Abstract
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,
and subroutines;
D.3.m [Programming Languages] Miscellaneous - multimethods, generic functions,
type systems;
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.

Subjects:All uncategorized technical reports
ID code:00000145
Deposited by:Staff Account on 08 May 1997



Contact site administrator at: ssg@cs.iastate.edu