(Go: >> BACK << -|- >> HOME <<)

TLA+: Difference between revisions

Content deleted Content added
→‎top: Tweaks. Improve or revert as appropriate.
Citation bot (talk | contribs)
m Alter: template type, isbn. Add: series, volume, isbn, chapter-url, journal. Removed parameters. | You can use this bot yourself. Report bugs here. | User-activated.
Line 7:
| paradigm = [[Action language|Action]]
| year = {{Start date and age|1999|04|23}}<ref name="tlaplus-original">
{{cite journalbook
| last = Lamport
| first = Leslie
Line 74:
| accessdate = 8 May 2015}}
</ref> and its use likened to [[Technical drawing|drawing blueprints]] for software systems;<ref name="wired">
{{cite webjournal
| last = Lamport
| first = Leslie
| authorlink = Leslie Lamport
| title = Why We Should Build Software Like We Build Houses
| journal = Wired
| publisher = [[Wired (magazine)|Wired]]
| date = 25 January 2013
Line 96 ⟶ 97:
| publisher = [[Addison-Wesley]]
| date = 18 June 2002
| chapter-url = http://research.microsoft.com/en-us/um/people/lamport/tla/book.html
| isbn = 978-0-321-14306-X8}}
</ref>
 
Line 111 ⟶ 112:
| volume = 11
| pages = 43–63
| publisher = [[Springer Verlag]]
| date = 2012
| url = http://research.microsoft.com/en-us/um/people/lamport/pubs/proof.pdf
Line 138:
| publisher = [[Springer Netherlands]]
| date = 1995
| doi = 10.1007/978-0-585-37463-5}}| isbn = 978-0-7923-3586-3
}}
</ref>
 
Line 191 ⟶ 192:
 
TLA specifications mostly consisted of ordinary non-temporal mathematics, which Lamport found less cumbersome than a purely temporal specification. TLA provided a mathematical foundation to the specification language TLA<sup>+</sup>, introduced with the paper "Specifying Concurrent Systems with TLA<sup>+</sup>" in 1999.<ref name="tlaplus-original"/> Later that same year, Yuan Yu wrote the TLC [[model checker]] for TLA<sup>+</sup> specifications; TLC was used to find errors in the [[cache coherence]] protocol for a [[Compaq]] multiprocessor.<ref name="tlcoriginal">
{{cite journalbook
| last1 = Yu
| first1 = Yuan
Line 201 ⟶ 202:
| title = Model checking TLA<sup>+</sup> specifications
| journal = Correct Hardware Design and Verification Methods
| volume = 1703
| pages = 54–66
| publisher = [[Springer-Verlag]]
Line 206 ⟶ 208:
| doi = 10.1007/3-540-48153-2_6
| url = http://research.microsoft.com/en-us/um/people/lamport/pubs/yuanyu-model-checking.pdf
| accessdate = 14 May 2015}}| series = Lecture Notes in Computer Science
| isbn = 978-3-540-66559-5
}}
</ref>
 
Line 218 ⟶ 222:
| date = 18 June 2002
| url = http://research.microsoft.com/en-us/um/people/lamport/tla/book.html
| isbn = 978-0-321-14306-X8}}
</ref> [[PlusCal]] was introduced in 2009,<ref name="pluscal-original">
{{cite journalbook
| last = Lamport
| first = Leslie
Line 233 ⟶ 237:
| url = http://research.microsoft.com/en-us/um/people/lamport/pubs/pluscal.pdf
| doi = 10.1007/978-3-642-03466-4_2
| accessdate = 10 May 2015 }}| isbn = 978-3-642-03465-7
}}
</ref> and the TLA<sup>+</sup> proof system (TLAPS) in 2012.<ref name="tlaps-survey"/> TLA<sup>+2</sup> was announced in 2014, adding some additional language constructs as well as greatly increasing in-language support for the proof system.<ref name="tla2guide" /> Lamport is engaged in creating an updated TLA<sup>+</sup> reference, "The TLA<sup>+</sup> Hyperbook". The incomplete work is [http://research.microsoft.com/en-us/um/people/lamport/tla/hyperbook.html available] from his official website. Lamport is also creating [http://lamport.azurewebsites.net/video/videos.html The TLA+ Video Course], described therein as "a work in progress that consists of the beginning of a series of video lectures to teach programmers and software engineers how to write their own TLA+ specifications".
 
Line 297 ⟶ 302:
| publisher = [[Addison-Wesley]]
| date = 18 June 2002
| chapter-url = http://research.microsoft.com/en-us/um/people/lamport/tla/book.html
| isbn = 978-0-321-14306-X8}}
</ref>
 
Line 312 ⟶ 317:
| publisher = [[Addison-Wesley]]
| date = 18 June 2002
| chapter-url = http://research.microsoft.com/en-us/um/people/lamport/tla/book.html
| isbn = 978-0-321-14306-X8}}
</ref>
 
Line 399 ⟶ 404:
| accessdate = 14 May 2015}}
</ref> TLA<sup>+</sup> was used to write formal proofs of correctness for [[Paxos (computer science)#Byzantine Paxos|Byzantine Paxos]] and components of the [[Pastry (DHT)|Pastry distributed hash table]].<ref name="tlaps-survey">
{{cite journalbook
| last1 = Cousineau
| first1 = Denis
Line 421 ⟶ 426:
| doi = 10.1007/978-3-642-32759-9_14
| url = http://research.microsoft.com/en-us/um/people/lamport/pubs/tlaps.pdf
| accessdate = 14 May 2015}}| series = Lecture Notes in Computer Science
| isbn = 978-3-642-32758-2
}}
</ref>
 
[[Amazon Web Services]] has used TLA<sup>+</sup> since 2011. TLA<sup>+</sup> model checking uncovered bugs in [[DynamoDB]], [[Amazon S3|S3]], [[Amazon Elastic Block Store|EBS]], and an internal distributed lock manager; some bugs required state traces of 35 steps. Model checking was also used to verify aggressive optimizations. In addition, TLA<sup>+</sup> specifications were found to hold value as documentation and design aids.<ref name="awsorig"/><ref name="awschose">
{{cite journalbook
| last = Chris
| first = Newcombe
Line 436 ⟶ 443:
| date = 2014
| doi = 10.1007/978-3-662-43652-3_3
| isbn = 978-3-662-43651-6
}}
}}
</ref>