Elsevier

Science of Computer Programming

Volume 80, Part B, 1 February 2014, Pages 223-263
Science of Computer Programming

Static safety guarantees for a low-level multithreaded language with regions

https://doi.org/10.1016/j.scico.2013.06.005Get rights and content
Under an Elsevier user license
open archive

Highlights

  • Low-level language with hierarchical regions and reader/writer locks.

  • Formal type and effect system with effect inference.

  • Formalism and type safety proof: memory safety and race freedom.

  • Design and integration into Cyclone.

  • Performance evaluation against C using challenging benchmarks.

Abstract

We present the design of a formal low-level multithreaded language with advanced region-based memory management and thread synchronization primitives, where well-typed programs are memory safe and race free. In our language, regions and locks are combined in a single hierarchy and are subject to uniform ownership constraints imposed by this hierarchical structure: deallocating a region causes its sub-regions to be deallocated. Similarly, when a region is read/write-protected, then its sub-regions inherit the same access rights. We discuss aspects of the integration and implementation of the formal language within Cyclone and evaluate the performance of code produced by the modified Cyclone compiler against highly optimized C programs using pthreads. Our results show that the performance overhead for guaranteed race freedom and memory safety is in most cases acceptable.

Keywords

Safe multithreading
Type and effect systems
Region-based memory management
Cyclone

Cited by (0)