Evaluating the Expressiveness of a Multimethod Object-Oriented Programming Language

Thumbnail Image
Karakoy, Sevtap
Major Professor
Committee Member
Journal Title
Journal ISSN
Volume Title
Research Projects
Organizational Units
Organizational Unit
Computer Science

Computer Science—the theory, representation, processing, communication and use of information—is fundamentally transforming every aspect of human endeavor. The Department of Computer Science at Iowa State University advances computational and information sciences through; 1. educational and research programs within and beyond the university; 2. active engagement to help define national and international research, and 3. educational agendas, and sustained commitment to graduating leaders for academia, industry and government.

The Computer Science Department was officially established in 1969, with Robert Stewart serving as the founding Department Chair. Faculty were composed of joint appointments with Mathematics, Statistics, and Electrical Engineering. In 1969, the building which now houses the Computer Science department, then simply called the Computer Science building, was completed. Later it was named Atanasoff Hall. Throughout the 1980s to present, the department expanded and developed its teaching and research agendas to cover many areas of computing.

Dates of Existence

Related Units

Journal Issue
Is Version Of

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 © Sevtap Otles Karakoy, 1998.