Treffer: The Dynamic Virtual Machine: A Platform for Dynamic Language Implementation

Title:
The Dynamic Virtual Machine: A Platform for Dynamic Language Implementation
Contributors:
The Pennsylvania State University CiteSeerX Archives
Collection:
CiteSeerX
Document Type:
Fachzeitschrift text
File Description:
application/pdf
Language:
English
Rights:
Metadata may be used without restrictions as long as the oai identifier remains attached to it.
Accession Number:
edsbas.8EDD6CC5
Database:
BASE

Weitere Informationen

poorly to changes in environment (OS, hardware, data profile) or intended use, scale poorly, and are difficult to debug, maintain, and enhance. As software gets larger and more complex, especially in the artificial intelligence research domains, software needs the ability to adapt to complex, dynamic environments. Motivation: We are developing an infrastructure to support the addition of advanced language features to the toolset available to programmers. We are focusing on reflection, dynamism,andmetaprogramming. Reflection refers to the ability of an application to inspect, at runtime, its internal state, both data and control. Examples include examining the class hierarchy at runtime, or using runtime profile information to find performance bottlenecks. Based on analysis of data gathered using runtime reflection, an application may want to dynamically adapt its behavior or internal structure – this is what we refer to as dynamism. Reflection and dynamism enable aformofprogramming called metaprogramming: writingprograms that reason about and modify the behavior of themselves and/or other programs. Previous Work: The most successful attempt at adding a high degree of reflection and dynamism to the programming infrastructure is the metaobject protocol (MOP) of the Common Lisp Object System (CLOS). As far as more mainstream languages go, C++ has very little reflection or dynamism, but Java tm has significant reflective capabilities. Java’s reflection API makes Fields, Methods, and Classes first class, though immutable, objects. Java also