LEADER 03835nam 22006015 450 001 9910300360703321 005 20200701232114.0 010 $a9781484238295 010 $a148423829X 024 7 $a10.1007/978-1-4842-3829-5 035 $a(CKB)4100000007003230 035 $a(MiAaPQ)EBC5553277 035 $a(DE-He213)978-1-4842-3829-5 035 $a(CaSebORM)9781484238295 035 $a(PPN)231465165 035 $a(OCoLC)1062396977 035 $a(OCoLC)on1062396977 035 $a(EXLCZ)994100000007003230 100 $a20181011d2018 u| 0 101 0 $aeng 135 $aurcnu|||||||| 181 $ctxt$2rdacontent 182 $cc$2rdamedia 183 $acr$2rdacarrier 200 10$aPractical TLA+ $ePlanning Driven Development /$fby Hillel Wayne 205 $a1st ed. 2018. 210 1$aBerkeley, CA :$cApress :$cImprint: Apress,$d2018. 215 $a1 online resource (234 pages) 300 $aIncludes index. 311 08$a9781484238288 311 08$a1484238281 327 $aPart I: The Semantics of TLA+ and PlusCal -- 1. An Example -- 2. PlusCal -- 3. Operators and Functions -- 4. Constants, Models, and Imports -- 5. Concurrency -- 6. Temporal Logic -- Part II: Applying TLA+ -- 7. Algorithms -- 8. Data Structures -- 9. State Machines -- 10. Ambiguity and Feature Interation -- 11. Case Study: MapReduce -- Appendix A: Mathematics -- Appendix B: PT library -- Appendix C: PlusCal to TLA+. 330 $aLearn how to design complex, correct programs and fix problems before writing a single line of code. This book is a practical, comprehensive resource on TLA+ programming with rich, complex examples. Practical TLA+ shows you how to use TLA+ to specify a complex system and test the design itself for bugs. You?ll learn how even a short TLA+ spec can find critical bugs. Start by getting your feet wet with an example of TLA+ used in a bank transfer system, to see how it helps you design, test, and build a better application. Then, get some fundamentals of TLA+ operators, logic, functions, PlusCal, models, and concurrency. Along the way you will discover how to organize your blueprints and how to specify distributed systems and eventual consistency. Finally, you?ll put what you learn into practice with some working case study applications, applying TLA+ to a wide variety of practical problems: from algorithm performance and data structures to business code and MapReduce. After reading and using this book, you'll have what you need to get started with TLA+ and how to use it in your mission-critical applications. You will: Read and write TLA+ specifications Check specs for broken invariants, race conditions, and liveness bugs Design concurrency and distributed systems Learn how TLA+ can help you with your day-to-day production work. 606 $aProgramming languages (Electronic computers) 606 $aComputer programming 606 $aSoftware engineering 606 $aProgramming Languages, Compilers, Interpreters$3https://scigraph.springernature.com/ontologies/product-market-codes/I14037 606 $aProgramming Techniques$3https://scigraph.springernature.com/ontologies/product-market-codes/I14010 606 $aSoftware Engineering$3https://scigraph.springernature.com/ontologies/product-market-codes/I14029 615 0$aProgramming languages (Electronic computers) 615 0$aComputer programming. 615 0$aSoftware engineering. 615 14$aProgramming Languages, Compilers, Interpreters. 615 24$aProgramming Techniques. 615 24$aSoftware Engineering. 676 $a005.13 700 $aWayne$b Hillel$4aut$4http://id.loc.gov/vocabulary/relators/aut$01060603 801 0$bUMI 801 1$bUMI 906 $aBOOK 912 $a9910300360703321 996 $aPractical TLA+$92514559 997 $aUNINA