Mace: language support for building distributed systems

  • Authors:
  • Charles Edwin Killian;James W. Anderson;Ryan Braud;Ranjit Jhala;Amin M. Vahdat

  • Affiliations:
  • University of California: San Diego, La Jolla, CA;University of California: San Diego, La Jolla, CA;University of California: San Diego, La Jolla, CA;University of California: San Diego, La Jolla, CA;University of California: San Diego, La Jolla, CA

  • Venue:
  • Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Building distributed systems is particularly difficult because of the asynchronous, heterogeneous, and failure-prone environment where these systemsmust run. Tools for building distributed systems must strike a compromise between reducing programmer effort and increasing system efficiency. We present Mace, a C++ language extension and source-to-source compiler that translates a concise but expressive distributed system specification into a C++ implementation. Mace overcomes the limitations of low-level languages by providing a unified framework for networking and event handling, and the limitations of high-level languages by allowing programmers to write program components in a controlled and structured manner in C++. By imposing structure and restrictions on how applications can be written, Mace supports debugging at a higher level, including support for efficient model checking and causal-path debugging. Because Mace programs compile to C++, programmers can use existing C++ tools, including optimizers, profilers, and debuggers to analyze their systems.