Dynamic Reflection for a Statically Typed Language

We present a runtime metalevel interface for BETA. BETA is a compiled and statically typed object-oriented programming language. The metalevel interface preserves the type safe properties of the language and supports static type checking. This is achieved through a novel language construct, the attribute reference , on top of which the metalevel interfacer is built. The metalevel interface is based on a simple conceptual model that reifies a few basic language primitives. For the implementation, a metalevel architecture based on a virtual machine view of the runtime system is introduced. In this model, an open implementation of compiled language is achieved by providening the runtime virtual machine with a metalevel interface supporting runtime reflection.

[1]  Ole Lehrmann Madsen,et al.  Object-Oriented Distributed Programming in BETA , 1993, ECOOP Workshop.

[2]  Satoshi Matsuoka,et al.  Object-oriented concurrent reflective languages can be implemented efficiently , 1992, OOPSLA '92.

[3]  相磯 秀夫,et al.  Smalltalk-80 : 言語詳解 , 1987 .

[4]  Adele Goldberg,et al.  SmallTalk 80: The Language , 1989 .

[5]  Satoshi Matsuoka,et al.  Object-Oriented Concurrent Reflective Languages can be Implemented Efficiently , 1992, OOPSLA.

[6]  Ole Lehrmann Madsen,et al.  Object-oriented programming in the BETA programming language , 1993 .

[7]  Jawahar Malhotra,et al.  Dynamic Extensibility in a Statically-Compiled Object-Oriented Language , 1993, ISOTAS.

[8]  Shigeru Chiba,et al.  A metaobject protocol for C++ , 1995, OOPSLA.

[9]  Satoshi Matsuoka,et al.  Compiling away the meta-level in object-oriented concurrent reflective languages using partial evaluation , 1995, OOPSLA.

[10]  Mario Tokoro,et al.  Metalevel Decomposition in AL-1/D , 1993, ISOTAS.

[11]  Richard C. H. Connor,et al.  START: A Linguistic Reflection Tool Using Hyper-Program Technology , 1994, POS.

[12]  J. Davenport Editor , 1960 .

[13]  Gregor Kiczales,et al.  Towards a new model of abstraction in software engineering , 1991, Proceedings 1991 International Workshop on Object Orientation in Operating Systems.

[14]  Jeff McAffer Meta-level Programming with CodA , 1995, ECOOP.

[15]  Kaj Grønbæk,et al.  Cooperative hypermedia systems: a Dexter-based architecture , 1994, CACM.

[16]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[17]  Ken Arnold,et al.  The Java Programming Language , 1996 .

[18]  Urs Hijlzle A Third-Generation SELF Implementation: Reconciling Responsiveness with Performance , 1998 .

[19]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[20]  Takashi Masuda,et al.  Designing an Extensible Distributed Language with a Meta-Level Architecture , 1993, ECOOP.

[21]  Gregor Kiczales,et al.  Operating systems: why object-oriented? , 1993, Proceedings Third International Workshop on Object Orientation in Operating Systems.