jckarter

everyone already knows i'm a dog

the swift programming language is my fault to some degree. mostly here to see dogs, shitpost, fix old computers, and/or talk about math and weird computer programming things. for effortposts check the #longpost pinned tag. asks are open.


email
mailto:joe@duriansoftware.com
discord
jckarter

jamesmunns
@jamesmunns

Hey cohost, what's your favorite language, library, or DSL for specifying state machines?

Hierarchical State Machine support would be great, but Finite State Machines are cool too.

Bonus points if it has some way (internal or external tool) to visualize the state machine as well.

EXTRA bonus points if this tool/lang/DSL is already used for specifying a communication protocol, say: a client/server interaction.

edit: I'm happy with ANY language or tool, including GUIs, HDLs, etc.


You must log in to comment.

in reply to @jamesmunns's post:

I don't know if this is in the spirit of your post, but AWS's managed state machine product has a visualizer I've found pretty useful. (The definition language, unfortunately, is an absolute trash fire.)

Might be worth looking at Alloy. It's deeply weird, but it's also really powerful. I think you could probably do the job with it, depending on what you mean by 'specify'. It comes with a nice visualizer.

TLA+ probably goes without saying as well. That's what I've used for specifying protocols with FSM models at either end. I kind of hate it, but it's got a fair amount of mindshare for this kind of job. Hillel Wayne's book + site make it much easier to engage with.