In this paper, we provide a rigorous framework for language and platform independent design and analysis of exception handling mechanisms in modern programming languages and their implementations. To illustrate the pr...
详细信息
In this paper, we provide a rigorous framework for language and platform independent design and analysis of exception handling mechanisms in modern programming languages and their implementations. To illustrate the practicality of the method we develop it for the exception handling mechanism of java and show that its implementation on the java virtual machine (JVM) is correct. For this purpose we define precise abstract models for exception handling in java and in the JVM and define a compilation scheme of java to JVM code which allows us to prove that, in corresponding runs, java and the JVM throw the same exceptions and with equivalent effect. Thus, the compilation scheme can, with reasonable confidence, be used as a standard reference for java exception handling compilation.
java was designed for network programming. This imposes certain requirements on its virtualmachine instruction set architecture and on designs that support java. The purpose of this study is to carry out a behavioral...
详细信息
java was designed for network programming. This imposes certain requirements on its virtualmachine instruction set architecture and on designs that support java. The purpose of this study is to carry out a behavioral analysis of the different aspects of java instruction set architecture. This will help in establishing the hardware requirements for executing java bytecodes. First, the bytecode interpreter was instrumented to include performance counters and statistics collectors. Then performance metrics were collected through benchmarking. Analyzing these data helps to identify performance-critical aspects that are candidates for hardware support, while less critical aspects can be left for software implementations. In this first part of our two-part paper, we study access patterns for data types, addressing modes, and instruction encoding. Recommendations for architectural requirements for java processors will be made throughout this study. (C) 2000 Elsevier Science B.V. All rights reserved.
This survey describes research directions in techniques to improve the performance of programs written in the java programming language. The standard technique for java execution is interpretation, which provides for ...
详细信息
This survey describes research directions in techniques to improve the performance of programs written in the java programming language. The standard technique for java execution is interpretation, which provides for extensive portability of programs. A java interpreter dynamically executes java bytecodes, which comprise the instruction set of the java virtual machine (JVM). Execution time performance of java programs can be improved through compilation, possibly at the expense of portability. Various types of java compilers have been proposed, including Just-In-Time (JIT) compilers that compile bytecodes into native processor instructions on the fly;direct compilers that directly translate the java source code into the target processor's native language;and bytecode-to-source translators that generate either native code or an intermediate language, such as C, from the bytecodes. Additional techniques, including bytecode optimization, dynamic compilation, and executing java programs in parallel, attempt to improve java run-time performance while maintaining java's portability. Another alternative for executing java programs is a java processor that implements the JVM directly in hardware. In this survey, we discuss the basic features, and the advantages and disadvantages, of the various java execution techniques. We also discuss the various java benchmarks that are being used by the java community for performance evaluation of the different techniques. Finally, we conclude with a comparison of the performance of the alternative java execution techniques based on reported results.
As network-enabled embedded devices and java grow in their popularity, embedded system researchers start seeking ways to make these devices java-enabled. However, it is a challenge to apply java technology to these de...
详细信息
The java virtual machine (JVM) was designed as the target for java compilers, but there is no reason why it cannot be used as the target for other languages. We describe the implementation of a compiler which translat...
详细信息
The java virtual machine (JVM) was designed as the target for java compilers, but there is no reason why it cannot be used as the target for other languages. We describe the implementation of a compiler which translates a lazy, weakly-typed functional program into java class files. We compare the performance of our compiler to the only other known compiler from a lazy functional Language to the JVM. The results are broadly similar, suggesting that to get a significant performance speed-up using this compilation paradigm will come only from increasing the performance of the JVM, rather than enhancing the compiler itself. Copyright (C) 1999 John Wiley & Sons, Ltd.
This paper presents a technique for backpatching instructions in an SMP environment. This technique is used by the Jalapeno virtualmachine to support dynamic class loading in java. There is a small runtime overhead t...
详细信息
ISBN:
(纸本)9780769504254
This paper presents a technique for backpatching instructions in an SMP environment. This technique is used by the Jalapeno virtualmachine to support dynamic class loading in java. There is a small runtime overhead the first time a backpatch site is executed. Thereafter, it executes at the same speed as equivalent sites not requiring back-patching.
In java, some memory updates are necessarily visible to some threads but never to others. A definition of java memory consistency must take this fact into consideration to capture the semantics of non-terminating syst...
详细信息
ISBN:
(纸本)3540650660
In java, some memory updates are necessarily visible to some threads but never to others. A definition of java memory consistency must take this fact into consideration to capture the semantics of non-terminating systems, such as a java operating system. This paper presents a programmer-centered formal definition of java memory behavior that captures those semantics. Our definition is employed to prove that it is impossible to provide fundamental process coordination in java, such as critical sections and producer/consumer coordination, without the use of the synchronized and volatile constructs. However, we introduce a form of synchronization that is weaker than volatiles and would suffice to solve some of these problems in java.
Software written in the java programming language is platform independent, remotely executable and downloadable on demand In this paper, we describe a toolkit developed in java for the purpose of visualizing and analy...
详细信息
ISBN:
(纸本)0819424285
Software written in the java programming language is platform independent, remotely executable and downloadable on demand In this paper, we describe a toolkit developed in java for the purpose of visualizing and analyzing biomedical images. It is comprised of a number of class libraries that enable selection, viewing, manipulation and analysis of biomedical images. java's class libraries and special features such as interfaces, multithreading etc., are extensively used in the design and implementation of the toolkit. The current version of the visualization toolkit supports viewing of JPEG and GIF images only. A medical image viewer developed using this toolkit can be used by doctors in hospitals, offices or at any other locations using a java-enabled web browser running on a variety of hardware/software platforms.
暂无评论