|
| United States Worldwide |
|
The Kanban Group ('96-'00)![]()
the technology and applications of `just in time' or `dynamic' compiler technology.
Etymology
Kanban is the Japanese word used in connection with `just in
time' manufacturing. A kanban is a signboard or placard used to control the
production line.
See this book for more details.
Table of Contents
Current and recent work on JVMsThe Kanban group's primary focus is implementation techniques for JavaTM Virtual Machines (JVMs). Spotless, a JVM for the Palm Connected OrganizerThe Spotless system is an experimental Java system for the Palm Connected Organizer. It includes a JVM that supports the complete bytecode set and dynamic class loading, and class libraries and demo applications. In 1999, Spotless became the basis of the K Virtual Machine, core of Java 2 Micro Edition.The Tracing JVMThe Tracing JVM is a modified JVM which can be used to gather data on the behavior of Java applications. The Tracing JVM is based on a production-quality JVM (the Exact VM) in which the interpreter and object management system have been modified so that it can emit data about how objects, stacks, classes, etc., are being used in the execution of a Java application. The data are recorded in trace files which characterize some aspect of the execution behavior. Traces can be analyzed to learn about what the application is doing, used as input to simulators of new JVM implementations, etc. The trace-recording module of the Tracing JVM can be modified or substituted to record data in different ways, or to perform analyses while the JVM is running. It runs on the SolarisTM operating environment, versions 2.5.1, 2.6 and 2.7 (SPARCTM and Intel).JavaInJavaJavaInJava is a JVM written in the Java programming language. The system was built to examine the feasibility of constructing high-quality virtual machines in the Java programming language and to experiment with new virtual machine implementation techniques.Exact VM and HotSpotTMThe group has strong ties to the Sun Labs Virtual Machine for Research and HotSpotTM projects.Formal semantics of the JVMThe Java Virtual Machine is central to the system's aim of providing a secure program execution environment that operates identically on a wide variety of computing platforms. To be most effective in this role, the JVM needs a rigorous, complete description, to specify precisely the behavior required of implementations. In response, a number of researchers have produced formal accounts of the JVM that seek to define it in an unambiguous and comprehensible manner. Unfortunately, the size and complexity of the JVM means that many of these formal accounts must either restrict their scope substantially, or risk becoming unwieldy and intractable. This paper suggests an alternative approach to the specification of the JVM that seeks to ameliorate such problems by composing together a small set of "microinstructions" to produce the full bytecode set. These microinstructions are encapsulated as functions in the polymorphic functional language Haskell, using the familiar mechanisms of Hindley-Milner type inference to characterize the JVM's rather thorny verifier. In this way, it is hoped that a foundation will be laid for formal descriptions of the Java Virtual Machine that need not trade tractability for completeness.PepIn 1996 the group developed an experimental JVM implementation, which we called `Pep', to learn about the Java Virtual Machine and how to compile class files dynamically. Pep is written in Self. It reads class files and translates them to bytecodes for the Self Virtual Machine. The dynamic compilers in the Self Virtual Machine then optimize the code at run time.Performance analysis of Java programsTo build an efficient implementation of a language, first you have to understand the behavior of typical programs written in that language. To this end, a part of our task is to gather a variety of programs, and measure, then understand their behavior, using a variety of implementation techniques. An early example of this work, is our analysis of the Richards and DeltaBlue benchmarks.Background on Virtual Machines and Dynamic CompilationSmalltalkDynamic compilation was first applied in the context of the Smalltalk-80 language. The seminal paper in the field, by L. Peter Deutsch and Allan M. Schiffman, is Efficient implementation of the Smalltalk-80 system, published in the Proceedings of the 11th ACM Symposium on Principles of Programming Languages, Salt Lake City, Utah, Jan. 1984 (pp. 297-302). | ||||||||||||||||||||||