Let's say that I want to restrict certain features of a common programming language--for instance, C--such that the result is decidable, and thus no longer Turing-complete. What language features, at minimum, would I need to remove to make a given programming language decidable?
For the purpose of this question, let's assume the following:
- The original language in question is imperative.
- We're not restricting memory in any meaningful way.
- The result isn't hideously crippled (e.g. no subsets of C that only consist of