Чіткий, повний доказ того, що мова є Тьюрінг Конкуте?


10

Я бачив веб-сайти, які хочуть "довести", що HTML5 + CSS є Turing завершеним.

Я бачив веб-сайти, які мають на меті "довести", що SQL є Turing завершеним.

Я бачив купу веб-сайтів, які хочуть "пояснити", що означає бути Тьюрінгом завершеним.

Достатньо!

Де я можу знайти книгу (написану експертом з теорії обчислюваності) або рецензовану статтю (у авторитетному журналі), яка свідчить про те, що "Ця мова XYZ здатна описати обчислювальну машину, яка має однакову обчислювальну потужність як машина Тюрінга "?


3
Жоден експерт не збирається писати такий документ, оскільки це було б безглуздо.
Андрій Бауер

Але є документи, які це роблять. Розглянемо схеми, що не чутливі до квазі-затримки, - це Тьюрінг-комплект, який має доказ конструкцією.
Ден Д.

2
Я з'їм свою шапку, якщо ви знайдете рецензований папір, який має детальний доказ того, що HTML5 + CSS, або SQL або PHP завершені.
Андрій Бауер

@andrej спробуйте це. достатньо близько? XSLT Версія 2.0 є Тюрінг-завершеною: Доказ на основі трансформації . можливо просто їжте свої овочі: p
vzn

дивіться також, що робить мову turing повною , programmers.se
vzn

Відповіді:


12

Кожна мова, яка може реалізувати два лічильника (тобто два регістри, які можуть зберігати два довільно великі цілі числа), і програма, зроблена з міченою послідовністю цих двох елементарних інструкцій, Turing завершена:С1,С2

  • ДОДАТИ до лічильника C i , інструкція GOTO I j1СiЯj
  • ПІДПРИЄМСТВО з лічильника C i, якщо C i > 0 та інструкція GOTO I j ; в іншому випадку (якщо C i = 0 ) інструкція GOTO I k1СiСi>0ЯjСi=0Як

Результат доведений у:

Марвін Л. Мінський, "Рекурсивна нерозв'язність проблеми поста та мітки та інших тем у теорії машин Тюрінга" (1961)

Не забувайте, що обчислювальна модель (у вашому випадку мова програмування + пристрій, який виконує програми, написані цією мовою ) може вважатись Тюрінгом повною, лише якщо вона підтримує доступ до необмеженого обсягу пам'яті (тобто простору) або може зберігати ( в якійсь формі) довільно великі цілі числа. Реалізація мови програмування на справжньому комп'ютері еквівалентна лінійному обмеженому автоматичному режиму .

Ви також можете знайти багато посилань на сторінках Вікіпедії про модель ОЗУ та модель RASP .

Нарешті, приємна книга, орієнтована на еквівалентність різних моделей обчислень:

"Моделі обчислень: вступ до теорії обчислюваності", автор Марібель Фернандес


"Не забувайте, що мову програмування можна вважати Тюрінгом повною, лише якщо вона підтримує доступ до нескінченної пам'яті" Отже, не може існувати реалізація мови Turing Complete? Це ваш висновок? Або ви хотіли сказати, що всі (більшість) мов, якими ми користуємось, є Turing Complete, оскільки цієї вимоги легко досягти? Обидва висновки справедливі з вашої відповіді, як зараз.
Бакуріу


@Bakuriu: справді речення дещо неоднозначне; Я маю на увазі лише те, що обчислювальну модель можна вважати Тюрінгом завершеною, якщо - в якійсь формі - вона дозволяє використовувати без обмеженого сховища. Більшість мов програмування є Turing завершеними, оскільки в їх (синтаксичних) специфікаціях вони не мають обмежень щодо розміру змінних чи покажчиків, але їх реалізація обмежена; див. для прикладу C <limit.h>. Тож навіть якщо у вас є комп'ютер з необмеженою пам'яттю, який виконує реалізацію C, ви не можете використовувати цю пам'ять, якщо ви не надасте "додатковий механізм", який не є частиною мови.
Vor

{ш.шш{0,1}}

3

Дві найбільш широко використовувані підручники з теорії обчислюваності та складності:

Майкл Сіпсер: Вступ до теорії обчислення , 2 / е, Cengage, 2005.

Джон Е Хопкрофт; Джефрі Д Уллман: Вступ до теорії автоматів, мов та обчислень , Аддісон-Веслі, 1979.

Існує також чудова монографія філософії для мирян, яка працює через технічні деталі теорії обчислень без формальних доказів.

Дуглас Гофштадтер: Гедель, Ешер, Бах , Основні книги, 1979.

Нарешті, найкращим вступом до обчислюваності може стати книга-головоломка відомого логіка:

Реймонд Смуллян: Дама чи тигр та інші логічні головоломки , Пінгвін, 1983. (Зараз у недорогий випуск Dover, 2009.)

(Він починається з купки головоломок, заснованих на парадоксі брехуна, а потім працює над побудовою самореференційного висловлювання під виглядом головоломки в стилі Шерлока Холмса про таємничу замкнену скриньку.)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.