skip to main content
article
Free Access

Implementing jalapeño in Java

Authors Info & Claims
Published:01 October 1999Publication History
Skip Abstract Section

Abstract

Jalapeño is a virtual machine for Java™ 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, Jalapeño reduces the boundary-crossing overhead and opens up more opportunities for optimization.

To get Jalapeño started, a boot image of a working Jalapeño 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 any JVM. This program uses reflection to convert the boot image into Jalapeño's object format.

A special MAGIC class allows unsafe casts and direct access to the hardware. Methods of this class are recognized by Jalapeño'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 Jalapeño. However, we also discovered some of the language's limitations.

References

  1. 1 Bowen Alpern, Dick At~anasio, John J. Barton, Michael G. Burke, Perry Cheng, Jong-Deok Choi, Anthony Cocchi, Stephen Fink, David Grove, Michael Hind, Susan Flynn Hummel, Derek Lieber, Vassily Litvinov, Ton Ngo, Mark Mergen, Vivek Sarkar, Mauricio J. Serrano, Janicc Shepherd, Stephen Smith, V. C. Sreedhar, Harini Srinivasan, and John Whaley. The Jalepefio virtual machine. IBM Systems Journal, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2 Bowen Alpern, Mark Charney, Jong-Deok Choi, Anthony Cocchi, and Derek Lieber. Dynamic hnking on a shared-memory microprocessor. In International con- ~erence on Parallel Architectures and Compiler Techniques, October 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3 Bowen Alpern, Anthony Cocchi, Derek Lieber, Mark Mergen, and Vivek Sarkar. J~lapefio -- a Compiler- Supported Java Virtual Machine for Servers. In A CM SIGPLAN 1999 Workshop on Compiler Support }or System Software (WCSSS'99), May 1999. (Also available as INRIA report No. 0228, March 1999.).Google ScholarGoogle Scholar
  4. 4 David F. Bacon, Ravi Konuru, Chet Murthy, and Mauricio Serrano. Thin locks: featherweight synchronization for Java. In SIGPLAN '98 Conference on Programming Language Design and Implementation, pages 258-268, June 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5 Michael G. Burke, Jong-Deok Choi, Stephen Fink, David Grove, Michael Hind, Vivek Sarkar, Mauricio J. Serrano, V. C. $reedhar, Harini Srinivasan, and John Whaley. The Jalapefio Dynamic Optimizing Compiler for Java. In A CM Java Grande Conference, June 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6 John Chapin. Personal communication re. the Rivet project at MIT. See http://sdg.lcs.mit.edu/rivet.html for further information.Google ScholarGoogle Scholar
  7. 7 John Duimovich. Personal communication.Google ScholarGoogle Scholar
  8. 8 James Goshng, Bill Joy, and Guy Steele. The Java Language Specification. The Java Series. Addison-Wesley, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9 The java Hotspot Performance Engine Architecture. White paper available at http://j ava. sun.corn/products/h otspot/whitepaper.html.Google ScholarGoogle Scholar
  10. 10 IBM Corporation. AIX Version ,~.3 Technical References, 1998.Google ScholarGoogle Scholar
  11. 11 Dan Ingels, Ted Kaehler, John Maloney, Scott Wallace, and Alan Kay. The Story of Squeak, A Practical Smalltalk Written in Itself. In Proceedings of the 1997 A CM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOP- SLA '97), pages 318-326, October 1997. Google ScholarGoogle Scholar
  12. 12 Java development kit 1.1, see http://j ava. sun. corn/marketing/collar er al/j dk_ so. ht ml.Google ScholarGoogle Scholar
  13. 13 Richard Jones and Rafael Lins. Garbage Collection: Algorithms }or Automatic Dynamic Memory Management. John Wiley & Sons, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14 Tim Lindholm and Frank Yellin. The Java Virtual Machine Specij~cation. The Java Series. Addison-Wesley, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15 Cathy May, Ed Sflha, Rick Simpson, and Hank Warren. The PowerPC Architecture. Morgan Kaufmann Publishers, Inc., San Francisco, California, 1994.Google ScholarGoogle Scholar
  16. 16 Tamiya Onodera and Kiyokuni Kawachiya. A study of locking objects with bimodal fields. In A CM Conference on Object-Oriented Programming Systems, Languages, and Applications, November 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 17 James M. Stichnoth, Guei-Yuan Lueh, and Michal Cierniak. Support for garbage collection at every instruction in a java compiler, in SIGPLAN 'Y9 Conference on Programming Language Design and Implementation, pages 326-336, May 1999. Google ScholarGoogle Scholar
  18. 18 Antero Taivalsaari. implementing a Java Virtual Machine in the Java programming language. Technical B.eport SMLI TR-98-64, Sun Microsystems, March 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Implementing jalapeño in Java

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              • Published in

                cover image ACM SIGPLAN Notices
                ACM SIGPLAN Notices  Volume 34, Issue 10
                Oct. 1999
                460 pages
                ISSN:0362-1340
                EISSN:1558-1160
                DOI:10.1145/320385
                Issue’s Table of Contents
                • cover image ACM Conferences
                  OOPSLA '99: Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
                  October 1999
                  462 pages
                  ISBN:1581132387
                  DOI:10.1145/320384

                Copyright © 1999 ACM

                Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 1 October 1999

                Check for updates

                Qualifiers

                • article

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader