The PlusCal Algorithm Language
نویسنده
چکیده
Algorithms are different from programs and should not be described with programming languages. The only simple alternative to programming languages has been pseudo-code. PlusCal is an algorithm language that can be used right now to replace pseudo-code, for both sequential and concurrent algorithms. It is based on the TLA+ specification language, and a PlusCal algorithm is automatically translated to a TLA+ specification that can be checked with the TLC model checker and reasoned about formally.
منابع مشابه
PGo: Corresponding a high-level formal specification with its implementation
Distributed systems are difficult to design and implement correctly. There is a growing interest in specification languages for distributed systems, which can be checked exhaustively or proved to satisfy certain properties. For example, Amazon uses TLA+ and PlusCal in building its web services [14]. PlusCal is a formal specification language which has simple constructs for synchronization, nond...
متن کاملFormal Verification of Distributed Algorithms using PlusCal-2. (Vérification Formelle d'Algorithmes Distribués en PlusCal-2)
Designing sound algorithms for concurrent and distributed systems is subtle and challenging. These systems are prone to deadlocks and race conditions, which occur in particular interleavings of process actions and are therefore hard to reproduce. It is often nontrivial to precisely state the properties that are expected of an algorithm and the assumptions on the environment under which these pr...
متن کاملA High-Level Language for Modeling Algorithms and Their Properties
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 ...
متن کاملInternship Subject Proposal
Distributed algorithms are known for being tedious to design and assess. Since they are based on the interaction of several independent components, they are hard to envision for the sequential human brains. Deadlocks, race conditions and resource starvation are unfortunately common problems of distributed computing. Model checking is one of the most successful techniques to assess that a distri...
متن کاملTerminology of Combining the Sentences of Farsi Language with the Viterbi Algorithm and BI-GRAM Labeling
This paper, based on the Viterbi algorithm, selects the most likely combination of different wording from a variety of scenarios. In this regard, the Bi-gram and Unigram tags of each word, based on the letters forming the words, as well as the bigram and unigram labels After the breakdown into the composition or moment of transition from the decomposition to the combination obtained from th...
متن کامل