java is an object oriented language that has grown in popularity since its release in 1996 and is particularly interesting because it uses a bytecode intermediate language to represent programs, so that the same progr...
详细信息
java is an object oriented language that has grown in popularity since its release in 1996 and is particularly interesting because it uses a bytecode intermediate language to represent programs, so that the same program can be run unchanged on machines with different underlying instruction sets. To measure dynamic bytecode usage it was necessary to modify the source code of Kaffe, a java Virtual Machine. A selection of programs was measured to compare the way different applets and applications use the bytecodes, and it was found that very similar patterns of usage appear in all cases. For the test suite studied most of the bytecodes were used at least once during execution. However a small subset of the bytecodes was executed with very high frequency. 40% of instructions executed either pushed local variables or constants onto the operand stack, merely telling the useful instructions which operands to use. This result questions the stack based design for the intermediate representation of java programs, since the bytecodes only occupy on average twelve percent of a class file, an intermediate representation that is less compact, but executes more efficiently might be possible.
JWeb is a development environment for complex WWW applications. It consists of the development environment and the execution environment. JWeb may serve as a training tool, as a fast prototyping tool, and as a tool fo...
详细信息
JWeb is a development environment for complex WWW applications. It consists of the development environment and the execution environment. JWeb may serve as a training tool, as a fast prototyping tool, and as a tool for fast development and deployment of complex, high quality, Web applications.
javaScript is a relatively simple, object-based, interpreted scripting language that can be used to make Web pages more attractive, useful, and interactive. Its typical uses include scrolling text message in a text bo...
详细信息
javaScript is a relatively simple, object-based, interpreted scripting language that can be used to make Web pages more attractive, useful, and interactive. Its typical uses include scrolling text message in a text box or in the status line of the Web browser, displaying random images or text, and changing the color of a Web page. In general, javaScript offers some interesting possibilities for HTML authors with limited computing ability to add interest and increased functionally to their Web pages.
Understanding program dependencies in a computer program is essential for many software engineering activities including program slicing, testing, debugging, reverse engineering, and maintenance. In this paper, we pre...
详细信息
Understanding program dependencies in a computer program is essential for many software engineering activities including program slicing, testing, debugging, reverse engineering, and maintenance. In this paper, we present a dependence-based representation called multithreaded dependence graph, which extends previous dependence-based representations, to represent program dependencies in a concurrent java program. We also discuss some important applications of a multithreaded dependence graph in a maintenance environment for concurrent java programs.
java class files are often distributed as jar files, which are collections of individually compressed class files (and possibility other files). Jar files are typically about 1/2 the size of the original class files d...
详细信息
java class files are often distributed as jar files, which are collections of individually compressed class files (and possibility other files). Jar files are typically about 1/2 the size of the original class files due to compression. I have developed a wire-code format for collections of java class files. This format is typically 1/2 to 1/5 of the size of the corresponding compressed jar file (1/4 to 1/10 the size of the original class files).
This paper introduces a new parallel performance profiling system for the Bulk Synchronous Parallel (BSP) model. The profiling system, called BSP Pro, consists of a performance profiling tool, BSP Profiler, and a perf...
详细信息
This paper introduces a new parallel performance profiling system for the Bulk Synchronous Parallel (BSP) model. The profiling system, called BSP Pro, consists of a performance profiling tool, BSP Profiler, and a performance visualisation tool, BSP Visualiser. The aim of BSP Pro is to assist in the analysis and improvement of BSP program performance by minimising load imbalance among processes. BSP Pro is different from other systems, such as the profiling tools within the Oxford BSP toolset, in terms of both its features and its implementation. It uses BSP Profiler to trace and generate more comprehensive profiling information resulting from BSP program executions. The profiling information is then visualised and shown as performance profiling graphs using BSP Visualiser. The visualising component of BSP Pro is fully developed in java and utilises java graphics to expose and highlight process load imbalance in both computation and interprocess communication.
This paper gives an overview of Ajanta, a java-based system for mobile-agent programming. We outline the Ajanta architecture, and discuss the basic elements that comprise an agent-based application. Ajanta's progr...
详细信息
ISBN:
(纸本)0769502229
This paper gives an overview of Ajanta, a java-based system for mobile-agent programming. We outline the Ajanta architecture, and discuss the basic elements that comprise an agent-based application. Ajanta's programming environment is defined in terms of a set of primitive operations for agent creation, dispatch, migration and remote control. Agents can access server resources using a proxy-based access control mechanism. We describe a scheme for agent migration based on the composition of some basic migration patterns which incorporate exception handling mechanisms. Finally, we present two agent based distributed applications implemented using the Ajanta system. One is a middleware which supports file sharing over the Internet and the other is a distributed calendar manager.
While java has provided a mechanism for concurrent programming implemented as language constructs, it is too rudimentary for most programmers and has certain limitations that make programs unnecessarily complex and pr...
详细信息
While java has provided a mechanism for concurrent programming implemented as language constructs, it is too rudimentary for most programmers and has certain limitations that make programs unnecessarily complex and prevent fine-grained concurrency. We have implemented java4P, and extension of the javalanguage, that offers a simpler concurrency model and overcomes java's limitations. Threads are no longer associated with thread objects, allowing concurrency at any level of granularity. Thread creation is made implicit and syncronisation is achieve through method guards. Synchronisation specification is separated from the functional specification to provide a parallel programming model closer to sequential programming.
An increasing number of call centers have begun using java in their daily operations owing to the many benefits it has to offer. Unlike most desktop computing which requires networked workstations fully loaded with a ...
详细信息
An increasing number of call centers have begun using java in their daily operations owing to the many benefits it has to offer. Unlike most desktop computing which requires networked workstations fully loaded with a range of software, java focuses on client/server technology and network based processing. Using java, call centers can realize substantial cost savings and serve customers in more ways. Because java applications are unfettered by ties to specific operating systems, call centers can break the costly equipment upgrade cycle by continuing to use existing hardware as they move incrementally toward java computing. Software administration are also simplified because java applications reside on central server instead of on each desktop.
A high-performance implementation of a java Virtual Machine requires a compiler to translate java bytecodes into native instructions, as well as an advanced garbage collector (e.g., copying or generational). When the ...
详细信息
A high-performance implementation of a java Virtual Machine requires a compiler to translate java bytecodes into native instructions, as well as an advanced garbage collector (e.g., copying or generational). When the java heap is exhausted and the garbage collector executes, the compiler must report to the garbage collector all live object references contained in physical registers and stack locations. Typical compilers only allow certain instructions (e.g., call instructions and backward branches) to be GC-safe;if GC happens at some other instruction, the compiler may need to advance execution to the next GC-safe point. Until now, no one has ever attempted to make every compiler-generated instruction GC-safe, due to the perception that recording this information would require too much space. This kind of support could improve the GC performance in multithreaded applications. We show how to use simple compression techniques to reduce the size of the GC map to about 20% of the generated code size, a result that is competitive with the best previously published results. In addition, we extend the work of Agesen, Detlefs, and Moss, regarding the so-called `JSR Problem' (the single exception to java's type safety property), in a way that eliminates the need for extra runtime overhead in the generated code.
暂无评论