Re:TLA+ Action Properties
by hwayne on Wednesday March 31, 2021 @03:13PM
(#26651695)
We're seeing more people create DSLs that compile to TLA+. For example, salt lets you write TLA+ specs in Clojure: https://github.com/Viasat/salt
[ Parent
| on HN ]
That's interesting, are there more examples of such languages?
The other one I know about is PGo, which is a bidirectional go-pluscal compiler: https://github.com/UBC-NSS/pgo
Re:TLA+ Action Properties
by michael_j_ward on Wednesday March 31, 2021 @05:33PM
(#26653443)
wow, that feels extremely more approachable.
Are there downsides to using that?
I haven't used salt, but the thing to understand is that even when the syntax used is Clojure, the semantics is TLA+'s. So, for example, if you use a Clojure function syntax to define a TLA+ operator, that will not behave like a Clojure function, but like a TLA+ operator, which behaves very differently from Clojure functions. So the symbols on the screen might be more familiar, but their meaning will be different from their meaning in Clojure. I think that is more confusing, which would be a downside, but if you find that more approachable -- great, use that.