In layman's terms, a system is Turing-complete if that system can compute as much as any general-purpose computer or computer language1. It means that you can model things like conditional logic (if/else), arithmetic, state, transitions, looping and recursion, input and output.

Most computer languages are intentionally Turing-complete – Java, C++, JavaScript are designed so that they can run arbitrary programs. But some systems are surprisingly Turing complete. Through some feature or escape hatch, they can be made to run any program (of course, there's no guarantee that they will run them in a reasonable time). Here are some accidentally Turing-complete systems.

Languages that aren't meant to be Turing-Complete

Video Games


1More formally, a system is Turing-complete if it can be used to simulate any Turing machine.