Ну, технически, не всегда. Согласно доказательству в Википедии , язык программирования должен иметь допустимую нумерацию. Практические и вменяемые языки программирования Тьюринга - все допустимые нумерации. А язык программирования с компоновкой Тьюринга является допустимой нумерацией, если есть возможность перевести эту и другую допустимую нумерацию.
Пример языка программирования, полного по Тьюрингу, который не является допустимой нумерацией:
Исходный код всегда содержит одну или две экранированные строки в двойных кавычках. Если входные данные пусты, выведите первую строку, если есть две строки, или выполните цикл навсегда, если он есть. В противном случае оцените последнюю строку в Python, используя исходные данные в качестве входных данных.
Это не допустимая нумерация, потому что, учитывая программу на Python, мы должны знать ее поведение, когда ввод пуст, чтобы перевести его на этот язык. Но мы можем никогда не узнать, является ли это бесконечным циклом, поскольку мы не можем решить проблему остановки. Мы знаем, что перевод всегда существует.
Невозможно писать квины на этом языке.