3 ms·
I think Starlark (formerly known as Skylark) [1] is a practical example of a Turing Incomplete language. As far as I know, this language doesn't allow recursion
by ceronman 6y ago
I think Starlark (formerly known as Skylark) [1] is a practical example of a Turing Incomplete language. As far as I know, this language doesn't allow recursion or even while loops. Only Python like for loops over bounded collections are allowed.
The language is very similar to Python so it's extremely easy to learn for many people.
This language is used as a configuration language for the Bazel build system [2]. Ensuring that scripts will run is a very nice property for configuration languages, giving a nice balance between flexibility and sanity.
I would love to have a similar configuration language but based on Clojure instead of Python.
[1] https://docs.bazel.build/versions/master/skylark/language.html https://docs.bazel.build/versions/master/skylark/language.ht...
[2] https://bazel.build/ https://bazel.build/
- laurentlb 6y agoRegarding Starlark, there's a discussion on this topic: https://github.com/bazelbuild/starlark/issues/97 https://github.com/bazelbuild/starlark/issues/97 (note that Neil, the author of the blog post, commented there too) My experience working on build systems and Bazel is that recursion is rarely useful (and most of the use-cases are for things that should be discouraged). Interestingly, Meson advertizes "non-Turing complete DSL" a feature on their front-page.