Contents
What is PlusCal? Obtaining PlusCal Papers About PlusCal Version History The Specification of the Translator
An algorithm language is for writing algorithms, just as a programming language is for writing programs. The introduction to the PlusCal manual (see below) explains how algorithms differ from programs, and how PlusCal differs from programming languages.
begin/do and end instead of
the braces { and }. There are separate
versions of the manual for the two syntaxes, which are briefly
compared in both versions.
Click HERE to download the c-version of the manual.
Click HERE to download the p-version of the manual.
Click HERE to download a TLA+ specification of the PlusCal to TLA+ translation.
The PlusCal translator is available as part of the TLA+ tool set.
BEGIN/END TRANSLATION comments.
Version 1.6 of July 2011
- Small change to the syntax for specifying fairness.
- Previously defined macros may now be called inside a macro definition.
Version 1.5 of March 2011
- Added a new way of specifying fairness, with:
* A fair keyword and + modifier
for specifying weak and
strong process fairness.
* + and - label modifiers for adjusting
an atomic action's fairness.
- Improved the TLA+ translation to:
* Eliminate the pc variable if it's
obviously unnecessary.
* Eliminate stuttering-on-termination when
obviously never executed.
- Added a -version option for maintining backwards compatability.
Version 1.4 of June 2010
- Added the options statement and the -lineWidth
option.
Version 1.3 of February 2008
- Added await as a synonym for when.
Version 1.2 of August 2007
- Introduced defaultInitValue for uninitialized variables.
Version 1.1 of October 2006
- Added several options, including ones for adding missing labels.
- Added the c-syntax.
-version 1.4 option. (The -writeAST
option does not work in the Toolbox.)