A Safe Runtime System in Cyclone

  • space04.pdf (with Dan Wang; Appeared at SPACE'04; 20040112-SPACE04.ppt)

    In this paper we outline the implementation of a simple Scheme interpreter and a copying garbage collector that manages the memory allocated by the interpreter. The entire system including the garbage collector is implemented in Cyclone, a safe dialect of C, which supports safe and explicit memory management. We describe the high-level design of the system, report preliminary benchmarks, and compare our approach to other Scheme systems. Our preliminary benchmarks demonstrate that one can build a system with reasonable performance when compared to other approaches that guarantee safety. More importantly we can signi cantly reduce the amount of unsafe code needed to implement the system. Our benchmarks also identify some key algorithmic bottlenecks related to our approach that we hope to address in the future.

    Although most of the theoretical ideas in this work are not by themselves novel, there are a few interesting variations and combinations of the existing literature we will discuss. However, the primary motivation and goal is to build a realistic working system that puts all the existing theory to test against existing systems which rely on larger amounts of unsafe code in their implementation.

The documents contained in these directories are included by the contributing authors as a means to ensure timely dissemination of scholarly and technical work on a non-commercial basis. Copyright and all rights therein are maintained by the authors or by other copyright holders, notwithstanding that they have offered their works here electronically. It is understood that all persons copying this information will adhere to the terms and constraints invoked by each author's copyright. These works may not be reposted without the explicit permission of the copyright holder.