At first glance, java monitors appear easy to use. However, a deeper analysis reveals that they are surprisingly tricky, suffer from subtle race conditions, and are actually a low-level synchronization tool in stark c...
详细信息
We discuss how the specification of the PLAN programminglanguage supports the design objectives of the language. The specification aims to provide a mathematically precise operational semantics that can serve as a st...
详细信息
java programs are routinely transmitted over low-bandwidth network connections as compressed class file archives (i.e., zip files and jar files). Since archive size is directly proportional to download time, it is des...
详细信息
java programs are routinely transmitted over low-bandwidth network connections as compressed class file archives (i.e., zip files and jar files). Since archive size is directly proportional to download time, it is desirable for applications to be as small as possible. This paper is concerned with the use of program transformations such as removal of dead methods and fields, inlining of method calls, and simplification of the class hierarchy for reducing application size. Such 'extraction' techniques are generally believed to be especially useful for applications that use class libraries, since typically only a small fraction of a library's functionality is used. By 'pruning away' unused library functionality, application size can be reduced dramatically. We implemented a number of application extraction techniques in Jax, an application extractor for java, and evaluate their effectiveness on a set of realistic benchmarks ranging from 27 to 2,332 classes (with archives ranging from 56,796 to 3,810,120 bytes). We report archive size reductions ranging from 13.4% to 90.2% (48.7% on average).
Several recent studies have introduced lightweight versions of java: reduced languages in which complex features like threads and reflection are dropped to enable rigorous arguments about key properties such as type s...
详细信息
Several recent studies have introduced lightweight versions of java: reduced languages in which complex features like threads and reflection are dropped to enable rigorous arguments about key properties such as type safety. We carry this process a step further, omitting almost all features of the full language (including interfaces and even assignment) to obtain a small calculus, Featherweight java, for which rigorous proofs are not only possible but easy. Featherweight java bears a similar relation to full java as the lambda-calculus does to languages such as ML and Haskell. It offers a similar computational 'feel', providing classes, methods, fields, inheritance, and dynamic typecasts, with a semantics closely following java's. A proof of type safety for Featherweight java thus illustrates many of the interesting features of a safety proof for the full language, while remaining pleasingly compact. The syntax, type rules, and operational semantics of Featherweight java fit on one page, making it easier to understand the consequences of extensions and variations. As an illustration of its utility in this regard, we extend Featherweight java with generic classes in the style of GJ (Bracha, Odersky, Stoutamire, and Wadler) and sketch a proof of type safety. The extended system formalizes for the first time some of the key features of GJ.
This paper describes the developer-documenter relationship in java™ API software development. The lack of trust between developer and documenter is highlighted in the issue of updating doc comments in java source code...
详细信息
The coupling of java3D and applet technologies has the potential to revolutionize web-based simulation visualization. Applets can enable the dynamic and distributed instantiation and elimination of viewers that until ...
详细信息
ISBN:
(纸本)9780780357808
The coupling of java3D and applet technologies has the potential to revolutionize web-based simulation visualization. Applets can enable the dynamic and distributed instantiation and elimination of viewers that until now was not possible. A visualizer based on these technologies is under development at the Air Force Research Laboratory's Information Directorate. Unlike existing visualizers that must be running at the simulation's start time, this tool allows users to come and go as they please - effectively allowing one to peer into the state of a simulation at a place, perspective, and time that is of specific interest to them. Intense 3D graphics have been difficult to program and distribute among heterogeneous environments until the inception of java3D. Sun Microsystems' java3D provides users the best acceleration their platform can support while the WWW provides the transmission and communication infrastructure. This paper discusses a government owned, browser-based simulation visualizer capable of displaying simulated entities to any number of distributed sites.
Customizing component functionality to application needs generally involves inheritance, known to suffer from the fragile base class problem: changes in a base class may cause preexisting inheritor classes to malfunct...
详细信息
This paper is focused on the performance analysis, comparison and optimization of the most important distributed object models for java: RMl (Remote Method Invocation) and RMI-IIOP (Remote Method Invocation over Inter...
详细信息
Program analysis is the process of collecting control and data-flow information from a program. Current automated program analysis tools employ front-ends that process a program at the source code level. Unfortunately...
详细信息
This paper describes the DELFT-java processor and the mechanisms required to dynamically translate JVM instructions into DELFT-java instructions. Using a form of hardware register allocation, we transform stack bottle...
详细信息
暂无评论