Машина Тьюринга против машины фон Неймана

фон

на архитектура фон-Неймана описывает компьютер хранимой программы, где инструкции и данные хранятся в памяти, и машина работает, изменяя свое внутреннее состояние, i.e инструкция работает с некоторыми данными и изменяет данные. Таким образом, по своей сути, в системе поддерживается состояние.

на архитектура машины Тьюринга строительство, манипулируя символами на ленте. Я. e лента с бесконечным числом прорезей существует, и в любой момент времени машина Тьюринга находится в определенном слоте. На основе символа в этом слоте, машина может изменить символ и перейти к другой слот. Все это детерминировано.


вопросы

  1. существует ли какая-либо связь между этими двумя моделями? Была ли модель фон Неймана основана на модели Тьюринга или вдохновлена ею?

  2. можем ли мы сказать, что модель Тьюринга является суперсетом фон Ньюмана модель?

  3. вписывается ли функциональное программирование в модель Тьюринга? Если да, то как? Я предполагаю функциональное программирование не соответствует модели фон Неймана.

5 ответов


машины Тьюринга теоретические концепции изобретен для математического исследования области вычислимых задач и получения способов описания этих вычислений.

архитектура фон-Неймана-это архитектура для построения фактическое компьютеры (где реализовать то, что машина Тьюринга теоретически описывает).

функциональное программирование основано на лямбда-исчисление, который является другом метод описания вычислений или - точнее - вычислимых функций. Хотя он использует совершенно другой подход, он одинаково силен для машины Тьюринга (говорят, что это turing complete).

каждая программа лямбда-исчисления (термин) T пишется только с использованием комбинации

  • переменные типа x
  • анонимные функции, такие как λx. T
  • приложения функции T T

несмотря на отсутствие гражданства, это достаточное для каждого вычисления компьютер может сделать. Машины Тьюринга и лямбда-термины могут эмулировать друг друга, а компьютер фон-Неймана может выполнить оба (кроме технических ограничений, таких как обеспечение бесконечного хранения, которое может потребоваться машине Тьюринга).

но из - за их безгосударственной и более абстрактной природы функциональные программы могут быть менее эффективными и менее " интуитивными" на компьютерах фон-Неймана по сравнению с императивных программ которые следуют за его стилем двоичного файла, памяти и обновления.


обычно один относится к Фон Нейман архитектура, в отличие от Гарварде архитектура. Первый имеет код и данные, хранящиеся таким же образом, в то время как последний имеет отдельные пути памяти и шины для кода и данных. Все современные настольные ПК-фон Нейман, большинство микроконтроллеров-Гарвард. Оба являются примерами реальных конструкций, которые пытаются подражать теоретической машине Тьюринга (что невозможно, потому что истинная машина Тьюринга требуется бесконечная память).


модель Тьюринга определяет вычислительные возможности, не углубляясь в реализацию, никто никогда не создаст компьютер, который будет выглядеть как машина Тьюринга буквально. (Кроме энтузиастов http://www.youtube.com/watch?v=E3keLeMwfHY).

модель Тьюринга не архитектура.

фон Нейман-это руководство по созданию компьютеров. В нем ничего не говорится о вычислительных возможностях. В зависимости от набора инструкций производимый компьютер может или, может быть, Тьюринг не завершен (средства могут решить те же задачи, что и машина Тьюринга)

функциональное программирование (лямбда-исчисление) - еще одна вычислительная модель, которая является полной Тьюринга, но не может быть изначально вписана в архитектуру фон Неймана.


Я не знаю, какая историческая связь существует между машинами Тьюринга и архитектурами фон Неймана. Я уверен, однако, что фон Нейман знал о машинах Тьюринга, когда разрабатывал архитектуру фон Неймана.

Что касается вычислительных возможностей, однако, машины Тьюринга и машины фон Неймана эквивалентны. Любой из них может эмулировать другой(IIRC, эмуляция программы фон Неймана на машине Тьюринга является операцией O (n^6)). Функциональное программирование, в форма лямбда-исчисления также эквивалентна. Фактически, все известные вычислительные структуры, по крайней мере, такие же мощные, как машины Тьюринга, эквивалентны:

  • машины Тьюринга
  • лямбда-исчисление (функциональное программирование)
  • машины фон Неймана
  • частичные рекурсивные функции

нет никакой разницы в наборе функций, которые могут быть вычислены с любой из этих моделей.

функциональное программирование выведено из лямбда-исчисления, поэтому оно не сопоставляется непосредственно с машинами Тьюринга или фон Немуана. Любой из них может запускать функциональные программы, hoewver, через эмуляцию. Я думаю, что картирование для машин Тьюринга, вероятно, более утомительно, чем картирование для машин фон Неймана, поэтому мой ответ на 3-й вопрос будет: "нет, на самом деле это хуже."


"модель" Тьюринга вообще не является архитектурной моделью. Это была просто несуществующая машина, которую Тьюринг предположил, чтобы служить средством для его доказательства решение проблемы.