Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Pattern languages of program design 2
Developing Java beans
Essential JNI: Java Native Interface
Essential JNI: Java Native Interface
Practical programming in Tcl and Tk (2nd ed.)
Practical programming in Tcl and Tk (2nd ed.)
The Java programming language (2nd ed.)
The Java programming language (2nd ed.)
The Unified Modeling Language reference manual
The Unified Modeling Language reference manual
Anatomy of LISP
A Framework for Simulating Heterogeneous Virtual Processors
SS '99 Proceedings of the Thirty-Second Annual Simulation Symposium
A Tcl-based self-configuring embedded system debugger
TCLTK'97 Proceedings of the 5th conference on Annual Tcl/Tk Workshop 1997 - Volume 5
Hi-index | 0.00 |
An extension language is an interpreted programming language designed to be embedded in a domain-specific framework. The addition of domain-specific primitive operations to an embedded extension language transforms that vanilla extension language into a domain-specific language. The LUxWORKS processor simulator and debugger from Lucent uses Tcl as its extension language. After an overview of extension language embedding and LUxWORKS experience, this paper looks at using Java reflection and related mechanisms to solve three limitations in extension language - domain framework interaction. The three limitations are gradual accumulation of ad hoc interface code connecting an extension language to a domain framework, over-coupling of a domain framework to a specific extension language, and inefficient command interpretation. Java reflection consists of a set of programming interfaces through which a software module in a Java system can discover the structure of classes, methods and their associations in the system. Java reflection and a naming convention for primitive domain operations eliminate ad hoc interface code by supporting recursive inspection of a domain command interface and translation of extension language objects into domain objects. Java reflection, name-based dynamic class loading, and a language-neutral extension language abstraction eliminate language over-coupling by transforming the specific extension language into a run-time parameter. Java reflection and command objects eliminate inefficiency by bypassing the extension language interpreter for stereotyped commands. Overall, Java reflection helps to eliminate these limitations by supporting reorganization and elimination of handwritten code, and by streamlining interpretation.