A java virtual machine (JVM) must sometimes check whether a value of one type can be can be treated as a value of another type. The overhead for such dynamic type checking can be a significant factor in the running ti...
详细信息
Increasing interest is being shown in the use of java for scientific applications. The java Grande benchmark suite was designed with such applications primarily in mind. The perceived lack of performance of java still...
详细信息
ISBN:
(纸本)1581133596
Increasing interest is being shown in the use of java for scientific applications. The java Grande benchmark suite was designed with such applications primarily in mind. The perceived lack of performance of java still deters many potential users, despite recent advances in just-in-time (JIT) and adaptive compilers. There are however few benchmark results available comparing java to more traditional languages such as C and Fortran. To address this issue, a sub-set of the java Grande Benchmarks have been re-written in C and Fortran allowing direct performance comparisons between the three languages. The performance of a range of java execution environments, C and Fortran compilers have been tested across a number of platforms using the suite. These demonstrate that on some platforms (notably Intel Pentium) the performance gap is now quite small.
Many critics of the javalanguage have pointed performance deficiencies as a barrier to acceptable support of Collaborative Multimedia Systems. This paper presents four MCRLab products, fully written in java that supp...
详细信息
ISBN:
(纸本)9781581133943
Many critics of the javalanguage have pointed performance deficiencies as a barrier to acceptable support of Collaborative Multimedia Systems. This paper presents four MCRLab products, fully written in java that support collaboration amongst a group of users, and successfully demonstrate that java collaboration frameworks are not only possible but also can perform at acceptable levels of quality, if designed correctly.
Design by Contract, proposed by Meyer for the programminglanguage Eiffel, is a technique that allows run-time checks of specification violation and their treatment during program execution. Jass, java with assertions...
详细信息
The Lambada framework provides facilities for fluid interoperation between Haskell (currently both Hugs and GHC using non-Haskell98 extensions) and java. Using Lambada, we can call java methods from Haskell, and have ...
详细信息
The ability to extend a language with new syntactic forms is a powerful tool. A sufficiently flexible macro system allows programmers to build from a common base towards a language designed specifically for their prob...
详细信息
The ability to extend a language with new syntactic forms is a powerful tool. A sufficiently flexible macro system allows programmers to build from a common base towards a language designed specifically for their problem domain. However, macro facilities that are integrated, capable, and at the same time simple enough to be widely used have been limited to the Lisp family of languages to date. In this paper we introduce a macro facility, called the java Syntactic Extender (JSE), with the superior power and ease of use of Lisp macro systems, but for java, a language with a more conventional algebraic syntax. The design is based on the Dylan macro system, but exploits java's compilation model to offer a full procedural macro engine. In other words, syntax expanders may be implemented in, and so use all the facilities of, the full javalanguage.
We present Jiazzi, a system that enables the construction of large-scale binary components in java. Jiazzi components can be though of as generalizations of java packages with added support for external linking and se...
详细信息
We present Jiazzi, a system that enables the construction of large-scale binary components in java. Jiazzi components can be though of as generalizations of java packages with added support for external linking and separate compilation. Jiazzi components are practical because they are constructed out of standard java source code. Jiazzi requires neither extensions to the javalanguage nor special conventions for writing java source code that will go inside a component. Our components are expressive because Jiazzi supports cyclic component linking and mixins, which are used together in an open class pattern that enables the modular addition of new features to existing classes. This paper describes Jiazzi, how it enhances java with components, its implementation, and how type checking works. An implementation of Jiazzi is available for download.
The lack of direct support for multidimensional arrays in java™ has been recognized as a major deficiency in the language's applicability to numerical computing. The typical approach to adding multidimensional arr...
详细信息
ISBN:
(纸本)1581133596
The lack of direct support for multidimensional arrays in java™ has been recognized as a major deficiency in the language's applicability to numerical computing. The typical approach to adding multidimensional arrays to java has been through class libraries that implement these structures. It has been shown that the class library approach can achieve very high-performance for numerical computing, through the use of compiler techniques and efficient implementations of aggregate array operations. Because of the inconvenience of accessing array elements through method invocations, it is advocated by many that class libraries for multidimensional arrays should be combined with new language syntax to facilitate manipulation of those multidimensional arrays. Another approach that has been discussed in the literature is that of relying exclusively on the JVM to recognize those arrays of arrays that are being used to simulate multidimensional arrays. This approach can also deliver good performance, but it does not improve the existing interfaces for numerical computing. There is yet a third approach: extending the javalanguage with new syntactic constructs for multidimensional arrays and directly compiling those constructs to bytecode. The new constructs provide a more convenient interface for numerical computing, without requiring a matching class library. This paper is a comparative discussion of the three approaches to adding multidimensional arrays to java mentioned above. We present a description of the three approaches, listing the pros and cons of each. We give a more detailed description of the third approach - language constructs translated to bytecode - as it is a new contribution. We compare each of the approaches with regards to functionality, impact on the language and virtual machine specification, implementation efforts, and typical achievable performance. We show that the best choice depends on the relative importance attached to the above metrics.
This paper discusses the motivation for a simple package designed to incorporate user interactivity into a first course in computer science. The package enables novice programmers to build programs with GUI-like inter...
详细信息
This paper discusses the motivation for a simple package designed to incorporate user interactivity into a first course in computer science. The package enables novice programmers to build programs with GUI-like interactivity while maintaining good design principles. An advantage of this package is that it is easy to implement using the Swing class. Therefore, it can be used as a case study to illustrate java features.
A look into the less obvious limitations of some concepts in the programminglanguagejava is made. In addition, some fundamental yet typical misunderstandings are discussed as well. This tutorial focuses on two langu...
详细信息
A look into the less obvious limitations of some concepts in the programminglanguagejava is made. In addition, some fundamental yet typical misunderstandings are discussed as well. This tutorial focuses on two language features that exist in java since its advent, namely the implications of reference semantics or object copying and comparison and the use of exceptions for error indication and error handling.
暂无评论