Questions: Turing Machine Completeness

5 questions to test your understanding

Score: 0 / 5
Question 1 Multiple Choice

Python and Brainfuck (a minimal esoteric programming language with only 8 instructions) are both Turing-complete. What is the correct implication of this fact?

APython can compute everything faster than Brainfuck because it has more built-in operations
BAny function computable by a Python program is also computable by a Brainfuck program, and vice versa — they are equivalent in what they can compute in principle
CBrainfuck must be extended with Python libraries before it can achieve full Turing-complete power
DPython is a computational superset of Brainfuck because it has more expressive syntax
Question 2 Multiple Choice

A company wants to build a static analysis tool that automatically detects ALL security vulnerabilities in arbitrary Python programs. What does Turing completeness imply?

AThe tool is achievable with sufficiently advanced heuristics and machine learning techniques
BIt is mathematically impossible to build such a tool in general — Python's Turing completeness means the halting problem and Rice's theorem apply, making general-purpose correctness analysis undecidable
CThe tool is feasible for programs up to a certain size; undecidability only applies to infinite programs
DPython's dynamic typing is the limiting factor; a statically-typed Turing-complete language would permit such a tool
Question 3 True / False

Every Turing-complete programming language can in principle compute the same class of functions, making them equivalent in computational power.

TTrue
FFalse
Question 4 True / False

A computational system with mainly conditional branching but no form of unbounded memory (or its equivalent) can be Turing-complete.

TTrue
FFalse
Question 5 Short Answer

Why does Turing completeness make it mathematically impossible — not just practically difficult — to build a general analyzer that determines whether any arbitrary program in a Turing-complete language will halt?

Think about your answer, then reveal below.