A High-Level Language for Modeling Algorithms and Their Properties

Sabina Akhtar, Stephan Merz, and Martin Quinson
Designers of concurrent and distributed algorithms usually express them using pseudo-code. In contrast, most verification techniques are based on more mathematically-oriented formalisms such as state transition systems. This conceptual gap contributes to hinder the use of formal verification techniques. Leslie Lamport introduced PlusCal, a high-level algorithmic language that has the look and feel of pseudo-code, but is equipped with a precise semantics and includes a high-level expression language based on set theory. PlusCal models can be compiled to TLA+ and verified using the model checker TLC. However, in practice the use of PlusCal requires good knowledge of TLA+ and of the translation from PlusCal to TLA+. In particular, the user needs to annotate the generated TLA+ model in order to define the properties to be verified and to introduce fairness hypotheses. Moreover, the PlusCal language enforces certain restrictions that often make it difficult to express distributed algorithms in a natural way. We propose a new version of PlusCal with the aim of overcoming these limitations, and of providing a language in which algorithms and their properties can be expressed naturally. We have implemented a compiler of our language to TLA+, supporting the verification of algorithms by finite-state model checking.
© Springer-Verlag 2010
Available as: PDF
  author =       {Sabina Akhtar and Stephan Merz and Martin Quinson},
  title =        {A High-Level Language for Modeling Algorithms and Their Properties},
  booktitle = {13th Brazilian Symposium on Formal Methods (SBMF 2010)},
  pages =     {49-63},
  year =      2010,
  editor =    {Jim Davies and Leila Silva and Adenilso da Silva Simao},
  volume =    6527,
  series =    {Lecture Notes in Computer Science},
  address =   {Natal, Brazil},
  publisher = {Springer},

Stephan Merz