Affiliation:
1. Microsoft Research, Redmond, WA, USA
2. Technion, Haifa, Israel
Abstract
Garbage collectors are notoriously hard to verify, due to their low-level interaction with the underlying system and the general difficulty in reasoning about reachability in graphs. Several papers have presented verified collectors, but either the proofs were hand-written or the collectors were too simplistic to use on practical applications. In this work, we present two mechanically verified garbage collectors, both practical enough to use for real-world C# benchmarks. The collectors and their associated allocators consist of x86 assembly language instructions and macro instructions, annotated with preconditions, postconditions, invariants, and assertions. We used the Boogie verification generator and the Z3 automated theorem prover to verify this assembly language code mechanically. We provide measurements comparing the performance of the verified collector with that of the standard Bartok collectors on off-the-shelf C# benchmarks, demonstrating their competitiveness.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference26 articles.
1. An on-the-fly mark and sweep garbage collector based on sliding views
2. A parallel, incremental, mostly concurrent garbage collector for servers
3. Boogie: A Modular Reusable Verifier for Object-Oriented Programs
4. Local reasoning about a copying garbage collector
5. Sam Borman. Sensible sanitation -- understanding the IBM Java garbage collector part 1: Object allocation. IBM developer Works August 2002. Sam Borman. Sensible sanitation -- understanding the IBM Java garbage collector part 1: Object allocation. IBM developer Works August 2002.
Cited by
18 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献