Abstract

JMTk is a memory management toolkit written in Java for the JikesRVM Java Virtual Machine. JMTk provides reusable components for the development of allocation and garbage collection algorithms, and an efficient implementation of a rapidly growing number of memory management schemes, and is a significant enabler for memory management research. A portable version of JMTk would allow the growing body of memory management research done using it to be repeated in different language environments, and to study the different performance characteristics of algorithms across programming languages without the variation in implementation techniques that clouds such issues today. This thesis describes a project that has ported JMTk for use in C/C++ based language runtimes. The project has used the gcj ahead-of-time java compiler and a source transformation technique to produce a version of JMTk that can efficiently perform memory management for traditionally compiled systems. It is currently running in a testbed environment, where it provides interesting comparisons between accurate and conservative garbage collection techniques. The source transformation tool is currently in use by a team at Purdue, to integrate JMTk into the OVM Java Virtual machine. This thesis also describes partially completed work to incorporate JMTk into the runtime of the Glasgow Haskell Compiler (ghc), and describes the difficulties that were encountered in the process, and an approach that should enable the work to be completed in the future. The thesis describes the architecture and construction of the ported system, the source code transformation process used, and evaluates the performance of the final product. It also explores possible future extensions of the techniques used, looks at the issues surrounding working with complex software such as the ghc runtime, and provides a brief evaluation of Java as a system programming language. The key contribution of this thesis is therefore the availability of JMTk to researchers and developers of language runtimes, and a convincing demonstration of the use of Java in a new application domain.

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.