pgo
PGo is a source to source compiler from Modular PlusCal specs into Go programs. (by DistCompiler)
Examples
A collection of TLA⁺ specifications of varying complexities (by tlaplus)
pgo | Examples | |
---|---|---|
2 | 7 | |
167 | 1,224 | |
2.4% | 1.4% | |
3.7 | 8.5 | |
about 1 month ago | 8 days ago | |
TLA | TLA | |
Apache License 2.0 | GNU General Public License v3.0 or later |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
pgo
Posts with mentions or reviews of pgo.
We have used some of these posts to build our list of alternatives
and similar projects.
-
Is “x' = f(x)” a programming paradigm?
Maybe you'd be interested in PGo, though it's nothing like you asked for ;-), but at least it's in similar domain. They had a talk at the TLA+ Conference.
-
TLA+ in OMSCS?
There are research efforts underway to auto-generate code from TLA+ specifications but they are still in their infancy.
Examples
Posts with mentions or reviews of Examples.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-03-03.
-
Suggestions for model checking?
I need to write a small case study using TLA+. Where can I find some distributed/concurrent algorithm or system that is not too complex and hasn't been specified yet? There are so many examples already covered in the official repository alone that I'm out of ideas.
-
Formal definitions of "events" and "messages" in distributed systems?
However, for example, Lesslie Lamport elegantly modeled distributed transactions without introducing the concepts of events or messages, focusing only on the state of the participants.
-
Beginner Question on Model Checking
I am very new to TLA+ and I am trying to learn it through the book Specifying Systems by Leslie Lamport. I am currently working on the InnerFIFO example from Chapter 4. I attempted to use the TLC model checker on this example. So, I created a new model and specified the following value to the constant Message - {"hello", "world"}. Upon running the model checker I get the following error -
-
Why is the IDE telling me my actions will never be enabled? How should a mutable array of booleans be represented?
I did not use Pluscal. I did have to EXTENDS TLC to use the Print function, based on this example: https://github.com/tlaplus/Examples/blob/master/specifications/SpecifyingSystems/AsynchronousInterface/PrintValues.tla
-
Generate (message) sequence diagrams from TLA+ state traces
Adding a vector clock is relatively straightforward (see e.g. https://github.com/tlaplus/Examples/commit/ee10c6ed1c65f1002c8ad402edceeffcf1a833e). For PlusCal, the vector clock can be computed from the PC variable: https://github.com/tlaplus/CommunityModules/blob/master/modules/ShiViz.tla
-
Where do I find examples of informal specs (RFCs) AND their formal versions (in TLA+ ideally) ?
The TLA+ github has several examples.
-
Model Check Constant Functions
I found this here as well: https://github.com/tlaplus/Examples/tree/master/specifications/SpecifyingSystems/CachingMemory
What are some alternatives?
When comparing pgo and Examples you can also consider the following projects:
BlockingQueue - Tutorial "Weeks of debugging can save you hours of TLA+". Each git commit introduces a new concept => check the git history!
CommunityModules - TLA+ snippets, operators, and modules contributed and curated by the TLA+ community
DrTLAPlus - Dr. TLA+ series - learn an algorithm and protocol, study a specification
advent-of-tla - AoC goals in TLA+
TLAplus - TLA+ questions, answers, and experiments
ewd998 - Distributed termination detection on a ring, due to Shmuel Safra:
panicparse - Crash your app in style (Golang)
tlsd - Generate (message) sequence diagrams from TLA+ state traces