Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers
I**S
Excellent, both in writing and in content
This is a very good introduction to temporal reasoning, with a language designed to encourage habits essential for describing large systems readably. The book will benefit both novice and expert readers, and also people that do not plan to specify systems themselves, but need to understand the process, so that they can communicate with those that will. The material is presented precisely in simple mathematics, introduced as needed. The writing is engaging, not at all boring nor boilerplate, which has been a challenge for many other authors.To convince yourself, you can start by reading the PDF version online, available by the author here: http://research.microsoft.com/en-us/um/people/lamport/tla/book.htmlCompared to the relevant papers by Lamport and coauthors, the book is geared more towards beginners and users. It is not a collection of all the results, but has a complementary purpose. In particular, composition of open systems and timing constraints are developed in more detail outside this book.
B**N
Takes the mystery out of concurrency and distributed computing
One of the best books I have ever read on any topic. Even if you don't care about the subject matter (modeling and model-checking), the blazing clarity and simplicity will delight you. Classically reductionist, it boils all the complexity of systems (including distributed, concurrent, parallel, Byzantine systems, the kinds of things that send most practitioners running away in horror) down to a handful of primitives in ordinary Boolean logic. Another one of those books (like SICP and VCLADF and the Feynman lectures) that a high-schooler can understand but the average PhD would benefit from.
G**2
Well written and really a good way to spend time thinking
This is a really interesting book about design. But, by reading it, I finally learned how computers work. Well written and really a good way to spend time thinking. Lots of thinking time necessary.The book itself is targeted to people who engineer software. I am an elementary school special education teacher. So this is not in my area of expertise. Nonetheless, there is a LOT to learn here for any person who likes detailed thinking and the insights those thoughts produce.
K**R
Highly recommended if you're interested in rigorous system specification approaches
For a long time, I've been thinking about ways to improve the reliability of the software we write. We use many techniques to strive for this goal, sometimes in a roundabout way, but the ultimate approach would be mathematical proofs of correctness.Of the approaches I've read over the years, Lamport's TLA+ comes the closest to this promise a system specification that's workable. This book provides a great introduction with practical, real-world examples.
M**L
Best book on concurrency and computer systems design
How is it possible that nobody has reviewed this book yet?This has been an eye opener book for concurrency and distributed software design. I learned more with this book (and the TLA+ toolbox) than with the "classic" from Lynch on distributed algorithms. I do not know if Lynch book also improves qualitatively when used with the Tempo toolbox. I guess it is worth trying.The book is challenging but it is really well-written. I'll recommend the book to anyone that wants to challenge his understanding of computer systems (hardware, software, concurrency, etc). You will never evaluate your designs so naively.I would like to have a new edition of this book that covers TLA+2.BTW, You can get the pdf from Lamport web page.
B**N
Good introduction to TLA and formal methods
Very simple and accessible book on formal methods
Trustpilot
1 month ago
2 months ago