The Design of a Meta-Level Architecture for the BETA Language - Abstract
Søren Brandt and René W. Schmidt
Computer Science Department, Aarhus University
Ny Munkegade, DK-8000 Aarhus C, Denmark
Email: {sbrandt,rws}@cs.au.dk
Abstract
The design of a meta-level architecture for a compiled and statically
typed object-oriented programming language is presented. The
architecture provides compiled languages with sufficient runtime
information to implement a full-blown typed meta-level interface,
including both introspective and introcessory capabilities. The
central component of the meta-level architecture is the runtime
system. It is viewed as a virtual machine implementing the
functionality of the programming language, and therefore provides a
natural entity to be extended with a meta-level interface.
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 not only have references to objects, but also to have typed
references to instance variables. The meta-level interface provides
access to type-information and reifies language primitives, such as
object invocation and creation. Efficiency of the meta-level
architecture is provided by careful design of the meta-level interface
and by runtime code modifications. As an example, is it shown
how an interactive programming environment can be constructed in the
language itself, on top of the meta-level interface.
Click here to retrieve the whole document in
PostScript (123Kb).