Using Java']Java reflection to automate extension language parsing

被引:0
|
作者
Parson, D [1 ]
机构
[1] Bell Labs, Lucent Technol, Murray Hill, NJ 07974 USA
关键词
D O I
10.1145/331963.331974
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 runtime 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.
引用
收藏
页码:67 / 80
页数:14
相关论文
共 50 条
  • [41] Jam - Designing a Java']Java extension with mixins
    Ancona, D
    Lagorio, G
    Zucca, E
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2003, 25 (05): : 641 - 712
  • [42] Telecommunication service management implementation using CORBA, Java']Java and computational reflection
    Gonçalves, PRR
    Sobral, JBM
    Westphall, CB
    PROCEEDINGS OF 1999 SYMPOSIUM ON PERFORMANCE EVALUATION OF COMPUTER AND TELECOMMUNICATION SYSTEMS, 1999, : 400 - 406
  • [43] Efficient and Flexible Key/Value Datastore System using Java']Java Reflection
    Choi, Wookhwan
    Shin, Junghoon
    Lee, Sangjun
    Shin, Sung Y.
    INFORMATION-AN INTERNATIONAL INTERDISCIPLINARY JOURNAL, 2011, 14 (05): : 1721 - 1732
  • [44] Kava - Using byte code rewriting to add behavioural reflection to Java']Java
    Welch, I
    Stroud, RJ
    6TH USENIX CONFERENCE OF OBJECT-ORIENTED TECHNOLOGIES AND SYSTEMS (COOTS 01), 2001, : 119 - 130
  • [45] JTL - the Java']Java tools language
    Cohen, Tal
    Gil, Joseph
    Maman, Itay
    ACM SIGPLAN NOTICES, 2006, 41 (10) : 89 - 108
  • [46] Java']Java: A language for software engineering
    Waldo, J
    PROCEEDINGS OF THE 1997 INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 1997, : 630 - 630
  • [47] Java']Java as universal language - Reply
    Lewis, T
    COMPUTER, 1997, 30 (04) : 7 - 7
  • [48] Java']Java as a programming language for Internet
    Iyengar, JV
    PROCEEDINGS OF THE TWENTY-SEVENTH ANNUAL MEETING OF THE WESTERN DECISION SCIENCES INSTITUTE, 1998, : 399 - 399
  • [49] Java']Java as a first programming language
    Churcher, N
    Tempero, E
    1998 INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: EDUCATION & PRACTICE, PROCEEDINGS, 1998, : 390 - 393
  • [50] Language discrimination by Java']Java sparrows
    Watanabe, Shigeru
    Yamamoto, Erico
    Uozumi, Midori
    BEHAVIOURAL PROCESSES, 2006, 73 (01) : 114 - 116