• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Type-safe Stack Traversal for Garbage Collector Implementation (2008)

Cached

  • Download as a PDF

Download Links

  • [www.cs.brown.edu]
  • [cs.washington.edu]
  • [cs.brown.edu]
  • [www.cs.brown.edu]
  • [www.cs.washington.edu]
  • [www.cs.brown.edu]

  • Save to List
  • Add to Collection
  • Correct Errors
  • Monitor Changes
by Colin Stebbins Gordon
  • Summary
  • Active Bibliography
  • Co-citation
  • Clustered Documents
  • Version History

Versions

  • Version 0
  • Version 1

Version History

Metadata Version 1

User correction supplied by mph

DatumValueSource
TITLE Type-safe Stack Traversal for Garbage Collector Implementation SVM HeaderParse 0.2
AUTHOR NAME Colin Stebbins Gordon user correction
AUTHOR AFFIL ; Brown University user correction
AUTHOR ADDR ; Undergraduate Honors Thesis ’08 Providence, RI USA user correction
ABSTRACT Garbage collectors are an important part of many modern language runtimes. Essentially all tools for developing and debugging programs using garbage collection assume the correctness of the collector, and therefore provide no means for detecting garbage collector errors. As a result it is especially important that garbage collector implementations be free of errors. This goal is even more challenging in the face of the typical implementation strategy for collectors: implementation in C, making error-prone inferences from complex bit patterns, where an error could result in dereferencing an invalid pointer or corrupting program data. One approach to reducing errors in collector implementation is to improve both the type-safety and memory-safety of garbage collector implementations. Prior work [8, 17] in this direction has focused on the use of modern type systems to statically detect errors in the collector code at compile time, but has practical shortcomings. The prior work replaces the standard machine stack with a heap allocated data structure to avoid unsafe walks of the native stack. Traversal of the runtime stack is normally not possible in higher-level languages because they trade the flexibility of arbitrary memory access — typically used to gather a root set from a runtime stack — for the safety of being unable to cause memory access errors. We present a method for addressing the safe stack traversal problem at the compiler level, by lifting actual machine stack frames up to the level of explicit data structures in Standard ML, such that complete stack traversal can be performed with minimal unsafe code. We implement a garbage collector in the ML Kit [14] using the techniques described and provide details on key parts of the implementation. SVM HeaderParse 0.2
YEAR 2008 user correction
CITATIONS 17 found ParsCit 1.0
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University