|
|
|
Karakoy, Sevtap Otles (2000) Evaluating the Expressiveness of a Multimethod Object-Oriented Programming Language. Technical Report TR98-12, Department of Computer Science, Iowa State University.
Abstract
Evaluating the Expressiveness of
a Multimethod Object-Oriented
Programming Language
Sevtap Otles Karakoy
TR # 98-12
July 16, 1998
Abstract
Although most popular object oriented languages use single dispatch,
multiple dispatch programming languages offer more expressiveness over
single dispatch languages. We developed an interpreter for a
multimethod object-oriented language, TSTBC, to study the
expressiveness of these languages.
Compared with other multimethod languages, TSTBC features: objects
that can act as classes, instances, and first-class generic functions,
as well as method update. TSTBC has scoped inheritance, and the
inheritance relation of an object is set at the time of its
creation. The generic functions can be extended in the scope they are
declared in, but only way to extend a generic function in a nested
scope is to create a new generic function, assign the old generic
function's methods to the new generic function and extend the new
generic function.
Keywords: Multimethods, generic functions, object-oriented programming
languages, encapsulation, information hiding, block structure,
subtyping, inheritance, TSTBC 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; 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.
Copyright (c) Sevtap Otles Karakoy, 1998.
Contact site administrator at: ssg@cs.iastate.edu
|