What can the GC compute efficiently? A language for heap assertions at GC time

Christoph Reichenbach, Neil Immerman, Yannis Smaragdakis, Edward E. Aftandilian, Samuel Z. Guyer

Research output: Contribution to journalArticlepeer-review

Abstract

We present the DEAL language for heap assertions that are efficiently evaluated during garbage collection time. DEAL is a rich, declarative, logic-based language whose programs are guaranteed to be executable with good whole-heap locality, i.e., within a single traversal over every live object on the heap and a finite neighborhood around each object. As a result, evaluating DEAL programs incurs negligible cost: for simple assertion checking at each garbage collection, the end-to-end execution slowdown is below 2%. DEAL is integrated into Java as a VM extension and we demonstrate its efficiency and expressiveness with several applications and properties from the past literature. Compared to past systems for heap assertions, DEAL is distinguished by its very attractive expressiveness/efficiency tradeoff: it offers a significantly richer class of assertions than what past systems could check with a single traversal. Conversely, past systems that can express the same (or more) complex assertions as DEAL do so only by suffering ordersof-magnitude higher costs.

Original languageEnglish
Pages (from-to)256-269
Number of pages14
JournalACM SIGPLAN Notices
Volume45
Issue number10
DOIs
Publication statusPublished - 2010 Oct 1
Externally publishedYes
EventACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications - Reno/Tahoe, United States
Duration: 2010 Oct 172010 Oct 21
Conference number: 25
https://dl.acm.org/doi/proceedings/10.1145/1869459

Subject classification (UKÄ)

  • Computer Sciences

Free keywords

  • Dominance
  • Garbage collector
  • Heap assertions
  • Reachability

Fingerprint

Dive into the research topics of 'What can the GC compute efficiently? A language for heap assertions at GC time'. Together they form a unique fingerprint.

Cite this