Gurevich's [26] Abstract State Machines (ASMs), characterized by the parallel execution of abstract atomic actions in a global state, have been equipped in [13] with a refinement by standard composition concepts f...
详细信息
ISBN:
(纸本)354042959X
Gurevich's [26] Abstract State Machines (ASMs), characterized by the parallel execution of abstract atomic actions in a global state, have been equipped in [13] with a refinement by standard composition concepts for structuring large machines that allows reusing machine components. Among these concepts are parameterized (possibly recursive) sub-ASMs. Here we illustrate their power for incremental and modular system design by unfolding, via appropriate ASM components, the architecture of the java Virtual Machine (JVM), resulting from the language layering in combination with the functional decomposition of the JVM into loader, verifier, and interpreter. We survey the ASM models for java and the JVM that appear in [34], together with the mathematical and experimental analysis they support.
By now, most people are familiar with the java 2 platform and how Sun has grouped java technologies into three editions (Standard, Micro and Enterprise Editions). Sun introduced the java 2, Micro Edition (J2ME) in Jun...
详细信息
ISBN:
(纸本)0769510507
By now, most people are familiar with the java 2 platform and how Sun has grouped java technologies into three editions (Standard, Micro and Enterprise Editions). Sun introduced the java 2, Micro Edition (J2ME) in June 1999 to address the needs of the consumer electronics and embedded devices community. Specifically, the J2ME was built for devices with limited power, network connectivity (often wireless), and graphical user interface capabilities. Today, the J2ME provides a java platform to an incredibly diverse set of devices. Generally speaking, this space covers devices with less computing capabilities than a personal computer, yet more capabilities than a smart card.
Mainstream object-oriented languages, such as C++ and java(1), provide only a restricted form of polymorphic methods, namely uni-receiver dispatch. In common programming situations, developers must work around this li...
详细信息
ISBN:
(纸本)188044612X
Mainstream object-oriented languages, such as C++ and java(1), provide only a restricted form of polymorphic methods, namely uni-receiver dispatch. In common programming situations, developers must work around this limitation. We describe how to extend the java Virtual Machine to support multi-dispatch and examine the complications that java imposes on multi-dispatch in practice. Our technique avoids changes to the java programming language itself, maintains source code and library compatibility, and isolates the performance penalty and semantic changes of multi-method dispatch to the program sections which use it. We have micro-benchmark and application-level performance results for a dynamic Most Specific Applicable (MSA) dispatcher, a framework-based Single Receiver Projections (SRP) dispatcher, and a tuned SRP dispatcher. Our general-purpose technique provides smaller dispatch latency than programmer-written double-dispatch code with equivalent functionality.
This paper is a progress report on our research into the problem of automatically identifying and using class invariants in object-oriented programs. We introduce an example of a class invariant in java, and review ap...
详细信息
ISBN:
(纸本)9781581134131
This paper is a progress report on our research into the problem of automatically identifying and using class invariants in object-oriented programs. We introduce an example of a class invariant in java, and review applications for class invariants in software engineering tools and in compiler optimization. We then focus on an elementary problem of definition: what is a class invariant? This question gives an interesting perspective on programminglanguage design. We conclude that there axe many reasonable categories of class invariants, and that the problem of finding good definitions cannot be solved by a thought experiment. The only way to choose good categories is to experiment with the analysis of real programs, to see which categories of class invariant axe actually useful. Our current research focuses on these experiments.
Enterprise javaBeans (EJB) technology has become a staple in distributed object and component architectures. However, like most technologies, EJB provides technology tradeoffs that must be weighted by the architect co...
详细信息
ISBN:
(纸本)0769510507
Enterprise javaBeans (EJB) technology has become a staple in distributed object and component architectures. However, like most technologies, EJB provides technology tradeoffs that must be weighted by the architect contemplating its use. Furthermore, like most technologies, EJB cannot save a poor system design. Design issues surrounding an enterprise system, in particular design issues of an EJB system, can be addressed at two levels. EJB design at the "macro" level is concerned with system architectural issues such as determining whether EJB technology is right for a project, how to model EJBs, and how to select an appropriate EJB server. EJB design from a "micro" level perspective concentrates on the use and organization of the various EJB types in an application. These "micro" issues include. when and where to use entity versus session beans, the granularity (fine or coarse) of EJBs, and the impact of the underlying database on bean design.
The java object serialization is designed generic to handle all possible objects, and performs a considerable amount of interpretation in determining the properties of objects before taking an appropriate action. In t...
详细信息
ISBN:
(纸本)0769511538
The java object serialization is designed generic to handle all possible objects, and performs a considerable amount of interpretation in determining the properties of objects before taking an appropriate action. In this paper we present a mechanism by which the java serialization is specialized using the partial evaluation techniques to reduce the amount of interpretation that happens at run-time. Our approach specializes the serialization code using the information about variables and arguments whose values or types are statically bound. To generate optimized code in a context-sensitive manner it performs an interprocedural binding-time analysis. The performance measurements show an average of 13% improvement in serialization with some cases showing as high as 18% improvement. Our approach is not restricted to serialization, rather we believe it gives a basis for a more general solution applicable to other aspects of java applications.
java has gained popularity in the commercial server arena, but the characteristics of java server applications are not well understood. In this research, we characterize the behavior of two java server benchmarks, Vol...
详细信息
ISBN:
(纸本)0780372301
java has gained popularity in the commercial server arena, but the characteristics of java server applications are not well understood. In this research, we characterize the behavior of two java server benchmarks, VolanoMark and SPECjbb2000, on a Pentium X system with the latest java Hotspot Server VM. We compare java server applications with SPECint2000 and also investigate the impact of multithreading by increasing the number of clients. java servers are seen to exhibit poor instruction access behavior, including high instruction miss rate, high ITLB miss rate, high BTB miss rate and, as a result, high I-stream stalls. With increasing number of threads, the instruction behavior improves, suggesting increased locality of access. But the resource stalls increase and eventually dwarf the diminishing I-stream stalls. With more clients, the instruction count per unit work increases and becomes a hindrance to the scalability of the servers.
Debugging of parallel programs is essentially a twofold task, since it involves debugging both the internal logic of the processes and the interactions between those processes. For the most part, the former can be tac...
详细信息
ISBN:
(纸本)0780371984
Debugging of parallel programs is essentially a twofold task, since it involves debugging both the internal logic of the processes and the interactions between those processes. For the most part, the former can be tackled using conventional sequential debuggers, but the latter are more problematical. It is contended that visualization techniques can be invaluable in this regard, and to this end the concept of a Parallel Execution Graph (PEG) has been devised For the javalanguage, which places much of the burden of thread synchronization on the shoulders of the programmer, execution visualization via a PEG can give enormous insight into program behavior, and can highlight hazards such as indeterminacy and deadlock. Among the other advantages to be gained from the use of PEGs are fine control over what information to include in a graph, and the ability to focus on relevant events via a viewpoint switching mechanism.
We investigate the problem of distributing communicating objects across wine-area environments. Our goals are to balance load, minimize network communication, and use resources efficiently. However applications runnin...
详细信息
ISBN:
(纸本)0769510779
We investigate the problem of distributing communicating objects across wine-area environments. Our goals are to balance load, minimize network communication, and use resources efficiently. However applications running in such environments are often dynamic and highly unpredictable. Furthermore, synchronous communication is usually too expensive to be used in disseminating load information. We therefore investigate policies that use local information to approximate desired global behaviors. Our results with java applications show that simple, local approaches al-e surprisingly effective in capturing load information and object relationships, and in making migration and clustering decisions based on profiled information.
This paper presents a new combined pointer and escape analysis for multithreaded programs. The algorithm uses a new abstraction called parallel interaction graphs to analyze the interactions between threads and extrac...
详细信息
ISBN:
(纸本)9781581133462
This paper presents a new combined pointer and escape analysis for multithreaded programs. The algorithm uses a new abstraction called parallel interaction graphs to analyze the interactions between threads and extract precise points-to, escape, and action ordering information for objects accessed by multiple threads. The analysis is compositional, analyzing each method or thread once to extract a parameterized analysis result that can be specialized for use in any context. It is also capable of analyzing programs. that use the unstructured form of multithreading present in languages such as java and standard threads packages such as POSIX threads. We have implemented the analysis in the MIT Flex compiler for java and used the extracted information to 1) verify that programs correctly use region-based allocation constructs, 2) eliminate dynamic checks associated with the use of regions, and 3) eliminate unnecessary synchronization. Our experimental results show that analyzing the interactions between threads significantly increases the effectiveness of the region analysis and region check elimination, but has little effect for synchronization elimination.
暂无评论