The Lana project has been initiated to develop system support for short-distance wireless (SDW) applications. This project employs a language-based approach. Lana in general supports concurrent programs.
The Lana project has been initiated to develop system support for short-distance wireless (SDW) applications. This project employs a language-based approach. Lana in general supports concurrent programs.
We present javaMod, a true module system constructed on top of a java-like language. More in detail, this means that basic modules are collections of java classes and specify in their interface the imported and export...
详细信息
Software wrapper and glue technology is used to build the architecture for distributed systems. This paper proposes a simple framework using agents to act as interfaces among processes interacting and cooperating to s...
详细信息
In the context of direct and reflection based extension mechanisms for the Jinni 2000 java based Prolog system, we discuss the design and the implementation of a reflection based Prolog to java interface. While the pr...
详细信息
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.
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...
详细信息
We investigate continuation-passing style transforms that pass two continuations. Altering a single variable in the translation of λ-abstraction gives rise to different control operators: first-class continuations;dy...
详细信息
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.
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.
java has integrated multithreading to a far greater extent than most programminglanguages. It is also one of the only languages that specifies and requires safety guarantees for improperly synchronized programs. It t...
详细信息
ISBN:
(纸本)1581133596
java has integrated multithreading to a far greater extent than most programminglanguages. It is also one of the only languages that specifies and requires safety guarantees for improperly synchronized programs. It turns out that understanding these issues is far more subtle and difficult than was previously thought. The existing specification makes guarantees that prohibit standard and proposed compiler optimizations;it also omits guarantees that are necessary for safe execution of much existing code. Some guarantees that are made (e.g., type safety) raise tricky implementation issues when running unsynchronized code on SMPs with weak memory models. This paper reviews those issues. It proposes a new core semantics for java that allows for aggressive compiler optimization and addresses the safety and multithreading issues. Due to space constraints, certain side issues are addressed only in the full version of the semantics.
暂无评论