Verified compilation of Concurrent Managed Languages

Saved in:
Bibliographic Details
Title: Verified compilation of Concurrent Managed Languages
Authors: Jagannathan,Suresh, Vitek,Jan
Contributors: Purdue University West Lafayette United States
Publication Year: 2017
Collection: Defense Technical Information Center: DTIC Technical Reports database
Subject Terms: Computer Programming and Software, COMPUTER PROGRAM VERIFICATION, methodology, PROGRAMMING LANGUAGES, reasoning, Program verification, compiler design, concurrency, memory models, theorem proving, garbage collection, java memory model
Description: The goal of the Havoc project was to explore new proof techniques and methodologies that would enable scalable and modular verification of modern concurrent programming languages like Java or C# . The efforts undertaken during the lifetime of this effort focused on (a) new proof techniques, specifically the use of refinement methods and tactics to simplify reasoning about interferences in proving invariants about concurrent code; (b) incorporating precise notions of memory models, both at the processor and language level, to enable compilation to exploit and be faithful to language definitions and processor features; (c) new designs for compiler intermediate representations that facilitate mechanized proofs and verification; and (d) a realistic case study that combines these ideas to prove the correctness of a state-of-the-art concurrent garbage collector.
Document Type: text
File Description: text/html
Language: English
Relation: http://www.dtic.mil/docs/citations/AD1043395
Availability: http://www.dtic.mil/docs/citations/AD1043395
http://oai.dtic.mil/oai/oai?&verb=getRecord&metadataPrefix=html&identifier=AD1043395
Rights: Approved For Public Release
Accession Number: edsbas.401E9BC9
Database: BASE
Description
Abstract:The goal of the Havoc project was to explore new proof techniques and methodologies that would enable scalable and modular verification of modern concurrent programming languages like Java or C# . The efforts undertaken during the lifetime of this effort focused on (a) new proof techniques, specifically the use of refinement methods and tactics to simplify reasoning about interferences in proving invariants about concurrent code; (b) incorporating precise notions of memory models, both at the processor and language level, to enable compilation to exploit and be faithful to language definitions and processor features; (c) new designs for compiler intermediate representations that facilitate mechanized proofs and verification; and (d) a realistic case study that combines these ideas to prove the correctness of a state-of-the-art concurrent garbage collector.