Synchronization cannot be implemented as a library

  • Authors:
  • Geert Bosch

  • Affiliations:
  • AdaCore, New York, NY, USA

  • Venue:
  • Proceedings of the 2012 ACM conference on High integrity language technology
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Writing efficient programs for increasingly parallel computer architectures requires the use of hardware primitives, such as atomic read-modify-write instructions or transactional memory. While new libraries and language constructs are introduced to expose the new capabilities, we argue that they are implementation details best left hidden. High-level synchronization constructs, such as those provided by Java and Ada, are both sufficient and necessary for modern programming languages to take full advantage of today's and tomorrow's hardware. While defined in terms of mutual exclusion, we show that these constructs are general enough to allow an enhanced compiler to automatically generate the appropriate lock-free synchronization code for the target system. Language support for synchronization is necessary for efficient, reliable and portable programs.