learning:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
learning:start [2024/10/19 00:55] fponzilearning:start [2025/08/20 09:47] (current) fponzi
Line 5: Line 5:
 First things first:  First things first: 
  
- 1. Setup your IDE. Visual Studio code with [[../using/vscode.md|tlaplus plugin]] is recommended.  + 
- 2. If you have questions or if you feel stuck at any point, reach out to the [[../community.md|community]].+  Setup your IDE. Visual Studio code with tlaplus plugin [[using:vscode|tlaplus plugin]] is recommended.  
 +  If you have questions or if you feel stuck at any point, reach out to the [[:community|community]].
  
 Then as good kickstart to TLA+, start with [[https://www.youtube.com/watch?app=desktop&v=tw3gsBms-f8|Leslie Lamport — The Paxos algorithm or how to win a Turing Award. Part 1]] and [[https://www.youtube.com/watch?v=8-Bc5Lqgx_c|Part 2]]. It is a good introduction on TLA+ and uses Paxos and Consensus as an example. Then as good kickstart to TLA+, start with [[https://www.youtube.com/watch?app=desktop&v=tw3gsBms-f8|Leslie Lamport — The Paxos algorithm or how to win a Turing Award. Part 1]] and [[https://www.youtube.com/watch?v=8-Bc5Lqgx_c|Part 2]]. It is a good introduction on TLA+ and uses Paxos and Consensus as an example.
  
-After that, you can start digging into Lamport’s video course available on the [[https://lamport.azurewebsites.net/video/videos.html|website]]. If you prefer a written medium, [[https://lamport.azurewebsites.net/tla/book.html|Specyfing systems]]: by Leslie Lamport is still the reference book for TLA+ and its tools. It’s well written and easy to follow.+After that, you can start digging into Lamport’s video course available on the [[https://lamport.azurewebsites.net/video/videos.html|website]]. If you prefer a written medium, [[https://lamport.azurewebsites.net/tla/book.html|Specifying systems]]: by Leslie Lamport is still the reference book for TLA+ and its tools. It’s well written and easy to follow.
  
-After learning some TLA+, it might be helpful to start learning some Pluscal. Checkout the [[./pluscal.md|pluscal]] page for more info and some resources.+After learning some TLA+, it might be helpful to start learning some Pluscal. Checkout the [[learning:pluscal|pluscal]] page for more info and some resources.
  
-Don’t just learn the theory, start by solving some small exercises.+Don’t just learn the theory, start by solving some small [[learning:exercises|exercises]].
  
  
 ---- ----
  
-  * [[https://members.loria.fr/SMerz/papers/tla+logic2008.pdf|The Specification Language TLA+]]: Another good manuscript by Stephan Merz explaining TLA+ specification language: Sect. 2 introduces TLA+ by way of a first specification of the resource allocator and illustrates the use of the tlc model checker. The logic TLA is formally defined in Sect. 3, followed by an overview of TLA+ proof rules for system verification in Sect. 4. Section 5 describes the version of set theory that underlies TLA+, including some of the constructions most frequently used for specifying data. The resource allocator example is taken up again in Sect. 6, where an improved high-level specification is given and a step towards a distributed refinement is made. The fnal Sect. 7 contains some concluding remarks.+[[https://members.loria.fr/SMerz/papers/tla+logic2008.pdf|The Specification Language TLA+]]: Another good manuscript by Stephan Merz explaining TLA+ specification language: Sect. 2 introduces TLA+ by way of a first specification of the resource allocator and illustrates the use of the tlc model checker. The logic TLA is formally defined in Sect. 3, followed by an overview of TLA+ proof rules for system verification in Sect. 4. Section 5 describes the version of set theory that underlies TLA+, including some of the constructions most frequently used for specifying data. The resource allocator example is taken up again in Sect. 6, where an improved high-level specification is given and a step towards a distributed refinement is made. The final Sect. 7 contains some concluding remarks. 
 + 
 +===== Learn by Doing ==== 
 +Markus Kuppe does TLA+ trainings using the two following repositories: 
 + 
 +  * https://github.com/lemmy/BlockingQueue 
 +  * https://github.com/tlaplus-workshops/ewd998/  Distributed termination detection on a ring. 
 + 
 +The way to use them is to basically check the git history from the beginning and follow along. 
  
 ===== Resources ===== ===== Resources =====
  • learning/start.1729299314.txt.gz
  • Last modified: 2024/10/19 00:55
  • by fponzi