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 printf calls).
What language features would I need to remove from a real programming language to make it decidable?
computability;programming languages;undecidability;halting problem;turing completeness