The MetaBETA Project
A Meta-Level Architecture for BETA
The aim of the MetaBETA project is to design and implement a
meta-level interface for the statically typed and compiled language BETA. A meta-level
interface extends the expressibility of a programming language to
allow programs to be written for the language and not just
in the language. Functionality that depends on the language
implementation is either impossible or very hard to express in most
languages, e.g., object distribution, persistence, source-code
interpreters, debuggers, source browsers. etc. The problem is that it
is impossible for a running program to access class information, or
overwrite the default implementation of language primitives, such as
object creation, destruction, and invocation. In other words, to
access meta-level information.
Most meta-level interfaces have been designed for dynamically
typed and semi-interpreted languages. Implementing a meta-level
interface for a statically typed and compiled language introduces
several new problems:
- Static type systems often makes it hard to express sufficiently
flexible meta-level interfaces
- A meta-level interface must enforce static typing constraints
- Only limited amount of source-code information is present at runtime
- Introducing a meta-level interface must not affect the efficiency
of the base-level language
To address these problems, our design is based on: (i) the meta-level
architecture, which introduces a runtime system for a compiled
language. The runtime system is viewed as a virtual machine that
implements the functionality of the programming language, and
therefore it provides a natural entity to be extended with a meta-level
interface. And (ii) the meta-level interface is based on a novel
language construct, a meta-reference called attribute
reference. Attribute references extend the expressive power of the
language by allowing the programmer to have typed references to
instance variables, which is essential for implementing a meta-level
interface.
Project Members:
Faculty:
Ph.D Students:
Papers:
- Generalising the BETA Type System.
S. Brandt and J. L. Knudsen.
To appear in Proceedings of the 10th European Conference on
Object-Oriented Programming (ECOOP), July 1996.
(postscript)
(info)
- MetaBETA: Model and Implementation.
R. W. Schmidt. Techical Report, Department of Computer Science,
University of Aarhus, April 1996.
(postscript)
(info)
- Dynamically Extensible Objects in a Class-Based Language.
R. W. Schmidt. Techical Report, Department of Computer Science,
University of Aarhus, Marts 1996.
(postscript)
(info).
To appear in Proceedings of
TOOLS Europe'97 Conference, May 1997.
(final version)
- Dynamic Reflection for a Statically Typed Language.
S. Brandt and R. W. Schmidt.
Techical Report, Department of Computer Science,
University of Aarhus,
November 1995.
(info)
- The Design of a Meta-Level Architecture for the BETA Language.
S. Brandt and R. W. Schmidt.
Presented at ECOOP Workshop on Advances in Metaobject Protocols
and Reflection (META'95), August 1995.
Extended version will appear in C. Zimmermann (Ed.)
Metaobject Protocols.
CRC Press Inc, Boca Rato, Florida. May 1996.
(postscript)
(info)
- Reflection in a Statically Typed and Object Oriented Language -
A Meta-Level Interface for BETA .
S. Brandt . Technical Report,
Department of Computer Science, University of Aarhus, July 1995
(postscript)
(info)
René W. Schmidt <rws@post4.tele.dk>
This page is optimized for black-and-white SPARC ELC Xterminals.