2007 · 12 citations · 20 references
ComputingComputer EngineeringComputer ScienceCompilersFormal MethodsProgramming LanguagesCompiler ConstructionDeductive VerificationProof AssistantsType CheckingType SystemsVerificationConservative Garbage CollectionCoqGarbage Collection InteractionProof-carrying CodeSafety Verification Of Generated Code
Type-directed certifying compilation and typed assembly language (TAL) aim to minimize the trusted computing base of safe languages by directly type-checking low-level machine code. However, the safety of TAL still heavily relies on its safe interaction with the underlying garbage collector. Based on a variant of foundational proof-carrying code (FPCC), we introduce a general methodology for combining foundational TAL with a certified garbage collector. We demonstrate the practicality of this approach by linking a typical TAL with a conservative garbage collector. This includes proving the safety of the collector, the soundness of TAL, and the safe interaction between TAL programs and the garbage collector. Our work is fully mechanized in the Coq proof assistant and the certified programs can be shipped immediately as FPCC packages.
20
An axiomatic basis for computer programming
C. A. R. Hoare · Communications of the ACM · 1969 · 3.9K citations · Full text
Separation logic: a logic for shared mutable data structures
John Reynolds · 2003 · 2.2K citations
From system F to typed assembly language
Greg Morrisett, David Walker, Karl Crary et al. · ACM Transactions on Programming Languages and Systems · 1999 · 587 citations · Full text