Является ли C ++ полным языком Тьюринга? - PullRequest
3 голосов
/ 02 августа 2020

Является ли C ++ полным языком по Тьюрингу?

Очевидно, что так оно и есть, но как это доказать на практике?

Есть ли минимально воспроизводимый пример, показывающий, что это так?

Ответы [ 2 ]

4 голосов
/ 02 августа 2020

Да, из Википедии Полнота по Тьюрингу

Чтобы показать, что что-то является полным по Тьюрингу, достаточно показать, что это может быть использовано для моделирования некоторого Тьюрингового- полная система. Например, императивный язык является полным по Тьюрингу, если он имеет условное ветвление (например, операторы «if» и «goto» или инструкция «переход при нулевом значении»; см. Компьютер с одним набором инструкций) и способность изменять произвольные объем памяти (например, возможность поддерживать произвольное количество элементов данных).

Затем императивные языки перечисляет C ++ как таковой.

0 голосов
/ 02 августа 2020

Я не специалист по теории вычислений, но в соответствии с эмпирическим законом язык объявляется полным по Тьюрингу, если он поддерживает условное ветвление, т.е. он должен поддерживать операторы if и инструкцию go -to. Таким образом, для большинства языков существует функция Turning-complete.

Ref. https://en.m.wikipedia.org/wiki/Turing_completeness

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...