Bikini Bottom Twitter
Ahoy, me buckos! Welcome to Bikini Bottom Twitter! Your digital reef for the latest salty gossip and treasure tales! And while you're at it, be sure to drop by the Krusty Krab for a delicious Krabby Patty so I can get yer mon- err I mean, 'cause they're the best treat under the sea!
Rule 1 - This is Bikini Bottom Twitter, all posts should be Spongebob related in "(Old-School) Twitter-like" form
Rule 2 - Political posts, as long as it follows rule 1, will be permitted, so long as you behave yourselves.
Bikini Bottom Municipal Code §33-07: Anti-Tankie Ordinance Residents are prohibited from circulating tankie ideology or other authoritarian propaganda on Bikini Bottom Twitter. Offenders will be permanently banned from BPT by the BBPD faster than Plankton is ejected from The Krusty Krab.
Rule 3 - Please no reposts within the last couple days, at least
Rule 4 - All posts should be at least above a "Squirdward-krusty-krab-shift" level of effort
Rule 5 - Be chill, be a Patrick not a squidward.
view the rest of the comments
Any turing complete computation system can be made to simulate another turing complete system.
~~All~~ Most modern programming languages are turing complete.
The Wikipedia article you linked literally has a section called "Non-Turing-complete languages" that lists multiple non-turing-complete programming languages
This seems like an oxymoron. It's been a while since I learnt the definition in computer science, but I thought a programming language has to be turing-complete by definition?
If a language is not turing-complete, then it is not a programming language. That's why markup languages and query languages are not programming languages, though they are closely associated.
The main class of non-turing-complete programming languages that I think of are languages that don't allow infinite loops. Consider a variation of your favorite programming language where every looping construct had to have a maximum count. With each iteration, the count decrements, and when it reaches 0, the loop terminates^[What happens when a loop terminates in this manner is irrelevant to this discussion. The program could continue, an exception could be thrown, the program could immediately terminate, or something else so long as there's no escaping the requirement that the program terminates.]. This can be extended to recursion pretty trivially. This language would not be turing complete, because turing machines allow infinite loops. But on the other hand, a whole lot of what you might want to do with a programming language could still be done with this language, and it certainly would not be something you could characterize as a markup or query language.
As to whether this violates the definition of a programming language, I'm not aware of a widely agreed upon definition of what a programming language is. And languages like Rocq, Agda, Epigram, and Charity which require that programs terminate have long been described as programming languages with no push-back that I am aware of.
When I checked out the simple English version of the wiki page it mentioned that the language must also be able to actively change the state of the system and not just define it, which is subtlely different from just being about infinite recursive loops. I don't know thought that might be interesting to add to the conversation