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).