Implementing Jalapeno in Java']Java

被引:66
|
作者
Alpern, B
Barton, JJ
Hummel, SF
Ngo, T
Shepherd, JC
Attanasio, CR
Cocchi, A
Lieber, D
Mergen, M
Smith, S
机构
[1] IBM Corp, Thomas J Watson Res Ctr, Yorktown Heights, NY 10598 USA
[2] Hewlett Packard Labs, Palo Alto, CA 94304 USA
关键词
D O I
10.1145/320385.320418
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Jalapeno is a virtual machine for Java(TM) servers written in Java. A running Java program involves four layers of functionality: the user code, the virtual-machine, the operating system, and the hardware. By drawing the Java / non-Java boundary below the virtual machine rather than above it, Jalapeno reduces the boundary-crossing overhead and opens up more opportunities for optimization. To get Jalapeno started, a boot image of a working Jalapeno virtual machine is concocted and written to a file. Later, this file can be loaded into memory and executed. Because the boot image consists entirely of Java objects, it can be concocted by a Java program that runs in essay JVM. This program uses reflection to convert the boot image into Jalapeno's object format. A special MAGIC class allows unsafe casts and direct access to the hardware. Methods of this class are recognized by Jalapeno's three compilers, which ignore their bytecodes and emit special-purpose machine code. User code will not be allowed to call MAGIC methods so Java's integrity is preserved. A small non-Java program is used to start up a boot image and as an interface to the operating system. Java's programming features - object orientation, type safety, automatic memory management - greatly facilitated development of Jalapeno. However, we also discovered some of the langauge's limitations.
引用
收藏
页码:314 / 324
页数:11
相关论文
共 50 条
  • [1] Implementing assertions for Java']Java
    Payne, JE
    Schatz, MA
    Schmid, MN
    [J]. DR DOBBS JOURNAL, 1998, 23 (01): : 40 - &
  • [2] Implementing declarative concurrency in Java']Java
    Ramirez, R
    Santosa, AE
    Hong, LW
    [J]. EURO-PAR 2000 PARALLEL PROCESSING, PROCEEDINGS, 2000, 1900 : 700 - 708
  • [3] Implementing an efficient Java']Java interpreter
    Gregg, D
    Ertl, MA
    Krall, A
    [J]. HIGH-PERFORMANCE COMPUTING AND NETWORKING, 2001, 2110 : 613 - 620
  • [4] Implementing communication protocols in Java']Java
    Krupczak, B
    Calvert, KL
    Ammar, M
    [J]. IEEE COMMUNICATIONS MAGAZINE, 1998, 36 (10) : 93 - 99
  • [5] Implementing the pi-Calculus in Java']Java
    Li, Liwu
    [J]. JOURNAL OF OBJECT TECHNOLOGY, 2005, 4 (02): : 157 - 177
  • [6] Implementing multiple protection domains in Java']Java
    Hawblitzel, C
    Chang, CC
    Czajkowski, G
    Hu, DY
    von Eicken, T
    [J]. PROCEEDINGS OF THE USENIX 1998 ANNUAL TECHNICAL CONFERENCE, 1998, : 259 - 270
  • [7] Experience implementing a set language in Java']Java
    Johnson, LF
    Cutcliffe, W
    [J]. 2000 CANADIAN CONFERENCE ON ELECTRICAL AND COMPUTER ENGINEERING, CONFERENCE PROCEEDINGS, VOLS 1 AND 2: NAVIGATING TO A NEW ERA, 2000, : 12 - 15
  • [8] Implementing help systems for Java']Java applications
    Colvin, RD
    [J]. 45TH ANNUAL CONFERENCE ON IMAGINATION, INNOVATION AND COMMUNICATION, 1998, : 326 - 328
  • [9] On implementing high level concurrency in Java']Java
    Itzstein, GS
    Jasiunas, M
    [J]. ADVANCES IN COMPUTER SYSTEMS ARCHITECTURE, 2003, 2823 : 151 - 165
  • [10] Implementing Lyee-Calculus in Java']Java
    Fujita, H.
    Ktari, B.
    Mejri, M.
    [J]. KNOWLEDGE-BASED SYSTEMS, 2006, 19 (02) : 116 - 129