4 ms·
You don't want general purpose languages for IDLs, full-stop. You need straightforward parsing, that is easy to standardize and implement, with some guarantees
by kortex 5y ago
You don't want general purpose languages for IDLs, full-stop. You need straightforward parsing, that is easy to standardize and implement, with some guarantees about bounded execution. That means no recursion, usually means no or limited loops, ideally single pass parsing, actual context-free grammar, etc.
- throwaway4good 5y ago"You need straightforward parsing, that is easy to standardize and implement, with some guarantees about bounded execution. " Surely you can find a general purpose language that gives you that ...
- deleted 5y ago[deleted]
- kortex 5y agoGeneral purpose languages like being turning complete, not as a main goal per se, but it's hard to be expressive and not be TC. TC means you can't statically determine execution behavior (halting problem). There's not a lot of things in this category. Some that come to mind are Cue and Dhall. Hashicorp HCL2 might also be, but I don't know if they are turning-complete off the top of my head. Some blog suggests it actually is TC, but I cannot corroborate. Starlark/bazel is TC. You can add Berkeley Packet Filters and BLooP to the list of TI languages: https://www.quora.com/What-is-an-example-of-a-Turing-incomplete-language https://www.quora.com/What-is-an-example-of-a-Turing-incompl... https://news.ycombinator.com/item?id=28915655 https://news.ycombinator.com/item?id=28915655 https://dhall-lang.org/# https://dhall-lang.org/# https://njoseph.me/mediawiki/DevOps/Terraform https://njoseph.me/mediawiki/DevOps/Terraform
- jvolkman 5y agoI believe Starlark being turing-complete would be a bug. The language takes steps to avoid it by disallowing recursion and only allowing iteration over finite sequences.