also see Blockstack's Clarity language (https://docs.blockstack.org/references/language-overview) for another example of a non-Turing-complete language. Clarity bans loops altogether, which is theoretically exactly the same as only allowing "bounded loops", since any bounded loop can be written as, well, not a loop. :)