Clearly a general purpose programming language -
Turing equivalence is sufficient to decide it's a programming language, whether well-defined (C, Python, Haskell, etc.) or ad-hoc (e.g., bash + Linux utilities, PowerShell + Windows utilities, etc.).
AnnoyingUseful exceptions -
Until I read the Wikipedia article on Turing completeness, I'd never heard of useful Turing incomplete programming languages before. I, and I think most people reading PP&CG, would accept something like Charity as a programming language.
- SQL
- state machine languages, including all flavors of regex without code injection
- Until I read the Wikipedia article on Turing completeness, I'd never heard of useful almost Turing-complete programming languages before. I, and I think most people reading PP&CG, would accept something like Charity as a programming language.
Clearly not a general purpose programming language -
No ability to construct a branch and/or a loop control structure. This definition is woefully incomplete, e.g. it doesn't rule out grep or anything using just regex'es, which I don't thinksince the breadth of as complete programming languagesstate manipulation is also an issue.