George Neuner wrote on 02/13/2017 01:39 PM:

However, for a particular protocol, or class of protocols you identify,
you might be able to come up with a DSL that expresses everything, and
which is easier to verify.  You might also have a DSL layer that almost
exactly matches the formal specification for the protocol (though it's
usually not that easy, and specs usually get fuzzy on important details).
A generic state machine generator / combinator might be a useful
starting point.  Is there anything like that available for Racket?

I don't know of an off-the-shelf reusable one. Implementing a simple FSM in a Scheme descendant is often (usually?) best a call graph of state procedures, each with `case` or other branching on event, and doing tail calls to transition.

Shriram did use a simple FSM as an example for an introduction to macros:
https://cs.brown.edu/~sk/Publications/Papers/Published/sk-automata-macros/paper.pdf

In the early days of Java, I made a DSL with rich state-ish dynamic modeling semantics, which generated Java code, and I included an example of TCP connection behavior, but I never used it for real-world problems. I've been wanting to do more on this, as a Racket syntax extension suitable for real-world high-performance work, but not yet had an excuse that simultaneously paid bills. :)

--
You received this message because you are subscribed to the Google Groups "Racket 
Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-dev/82c99b9e-3aa2-d69c-f799-fb5d880d9f07%40neilvandyke.org.
For more options, visit https://groups.google.com/d/optout.

Reply via email to