
Computation and State Machines (2008) [pdf] - bechap
https://lamport.azurewebsites.net/pubs/state-machine.pdf
======
threatofrain
Is TLA+ is the culmination of Leslie Lamport's approach to describing state
machines?

[https://www.youtube.com/watch?v=p54W-XOIEF8&list=PLWAv2Etpa7...](https://www.youtube.com/watch?v=p54W-XOIEF8&list=PLWAv2Etpa7AOAwkreYImYt0gIpOdWQevD)

~~~
pron
Well, he's worked on it for ~25 years...

------
bluenose69
For HNers who use citation tools, a relevant RIS item for this may be as
follows (sorry, had to edit to try to get it to format reasonably)

    
    
        TY  - MANSCPT
        TI  - Computation and State Machines
        AU  - Lamport, Leslie
        AB  - I have long thought that computer science is about concepts, not languages. On a visit to the University of Lugano in 2006, the question arose of what that implied about how computer science should be taught. This is a first, tentative attempt at an answer.
        DA  - 2008/04//
        PY  - 2008
        UR  - https://www.microsoft.com/en-us/research/publication/computation-state-machines/
        ER  -

------
Varghammer
Didn't get it. State machines are the very first basics of any degree in
computer science. You learn that such models are the basis for any
computation. You also learn that no one uses such formalizations in practice
because they are way too complex.

~~~
nabla9
Maybe that's the problem. They teach you the core concept, then you graduate
believing that it's just a concept to know and hard to use, because you think
that programming with state machines forces you to think in small state
transitions and you can't abstract.

~~~
pron
Lamport doesn't talk about programming with state machines. He talks about
coming up with a mathematical model of computation that can be both simple and
with wide applicability (applies to both sequential, interactive and
concurrent programs).

In such a model, state transitions can be as small or as large as you choose
(e.g. sorting an array could be a single state change or multiple ones,
depending on your chosen level of abstraction). Lamport's Temporal Logic of
Actions (which forms the core, or at least the most interesting part of TLA+)
has the very mathematical notion of abstraction as a first-class construct,
i.e., A => B _iff_ B is an abstraction of A (where => is the logical
implication operator, which in TLA also means "refines" or "implements", i.e.,
the converse of abstraction).

