В математической логике и теоретической информатике a зарегистрировать машину - это общий класс абстрактных машин, используемых аналогично машине Тьюринга. Все модели эквиваленты Тьюринга.
Регистровая машина получает его название связано с использованием одного или нескольких «регистров ». В отличие от ленты и головки, используемых машиной Тьюринга, модель использует несколько регистров с уникальной адресацией, каждый из которых содержит одно положительное целое число.
. Существует как минимум четыре подкласса. найденный в литературе, здесь перечислены от наиболее примитивных до наиболее похожих на компьютер :
Любая правильно определенная модель регистровой машины эквивалентна Тьюрингу. Скорость вычислений очень зависит от специфики модели.
В практической информатике аналогичная концепция, известная как виртуальная машина, иногда используется для минимизации зависимости от базовой машинной архитектуры. Такие машины также используются для обучения. Термин «регистровая машина» иногда используется в учебниках для обозначения виртуальной машины.
Регистровая машина состоит из:
Две тенденции появились в начале 1950-х годов - первая характеризовала компьютер как машину Тьюринга, вторая - определяла компьютерные модели - модели с последовательными последовательностями команд и условными переходами - с мощностью машины Тьюринга, то есть так называемой эквивалентности Тьюринга. Необходимость в этой работе возникла в контексте двух «сложных» проблем: неразрешимой проблемы слов, поставленной Эмилем Постом - его проблемой «тега» - и очень «сложной» проблемы Гильберта. задачи - 10-й вопрос вокруг диофантовых уравнений. Исследователи искали модели, эквивалентные Тьюрингу, которые были бы менее «логичными» по своей природе и более «арифметическими» (ср. Мелзак (1961) стр. 281, Шепердсон-Стерджис (1963) стр. 218).
Первая тенденция - к характеристике компьютеров - по-видимому, возникла у Ганса Гермеса (1954), Розы Петер (1958) и (1959), вторая тенденция с Hao Wang (1954, 1957) и, как отмечалось выше, продолженная (1961), Joachim Lambek (1961), Marvin Minsky (1961), 1967), и (1963).
Последние пять имен перечислены в этом порядке Юрием Матиясевичем. Он продолжает:
Похоже, что Ламбек, Мелзак, Мински, Шепердсон и Стерджис независимо друг от друга предвосхитили ту же идею в одно и то же время. См. Примечание о приоритете ниже.
История начинается с модели Ванга.
Работа Вана вытекала из статьи Эмиля Поста (1936) и привела Ванга к его определению своего B-машина Вана - двухсимвольная модель вычислений машины Пост-Тьюринга с четырьмя атомарными инструкциями:
К этим четыре и Ван (1954, 1957), а затем CY Ли (1961) добавил еще одну инструкцию из набора Поста {ERASE}, а затем безусловный переход Поста {JUMP_to_instruction_z} (или, чтобы упростить задачу, условный переход JUMP_IF_blank_to_instruction_z, или и то, и другое. Ли назвал эту модель "W-машины" :
Ван выразил надежду, что его модель будет «сближением» (стр. 63) теории машин Тьюринга и Практический мир компьютера.
Работа Ванга оказала большое влияние. Мы находим его ссылки Мински (1961) и (1967), Мелзаком (1961), Шепердсоном и Стерджисом (1963). Действительно, Шепердсон и Стерджис ( 1963), отмечают, что:
Мартин Дэвис в конечном итоге преобразовал эту модель в (2-символьную) машину Пост-Тьюринга.
Трудности с моделью Ванга / Пост-Тьюринга :
Кроме этого была проблема: модель Ванга (шесть инструкций машины Пост-Тьюринга с 7 инструкциями) все еще оставалась однопленочным устройством типа Тьюринга, каким бы красивым ни был ее последовательный поток команд программы. И Мелзак (1961), и Шепердсон и Стерджис (1963) наблюдали это (в контексте определенных доказательств и исследований):
Действительно, как показывают примеры из примеров машины Тьюринга, машины Пост-Тьюринга и частичной функции, работа может быть «сложной».
Так почему бы не «разрезать ленту» так, чтобы каждая была бесконечно длинной (чтобы уместить любое целое число), но с левым концом, и назвать эти три ленты «Пост-Тьюрингом» (т.е. ленты типа Ванга) "? Отдельные головки будут перемещаться влево (для уменьшения) и вправо (для увеличения). В определенном смысле головки обозначают" вершины стопки "сцепленных меток. Или у Минского (1961) и Хопкрофт и Уллман (1979, стр. 171 и далее), лента всегда пуста, за исключением отметки на левом конце - ни при каких обстоятельствах голова не печатается и не стирается.
Мы просто должны быть осторожны, чтобы писать наши инструкции, чтобы испытать на прочность o и прыжок происходит до того, как мы уменьшаем значение, иначе наша машина «упадет с конца» или «упадет на конец» - у нас будет экземпляр частичной функции. Перед декрементом наша машина всегда должна задавать вопрос: «Лента / счетчик пуста? Если да, то я не могу декрементировать, иначе могу».
Мински (1961) и Шепердсон-Стерджис (1963) доказывают, что только несколько лент - всего одна - все еще позволяют машине быть эквивалентом Тьюринга, ЕСЛИ данные на ленте представлены как число Гёделя (или какое-то другое однозначно кодируемое-декодируемое число); это число будет увеличиваться по мере продолжения вычислений. В версии с одной лентой с кодировкой числа Гёделя счетчик должен иметь возможность (i) умножать число Гёделя на константу (числа "2" или "3") и (ii) делить на константу (числа "2" или «3») и переходите, если остаток равен нулю. Минский (1967) показывает, что потребность в этом причудливом наборе инструкций может быть уменьшена до {INC (r), JZDEC (r, z)} и вспомогательных инструкций {CLR (r), J (r)}, если доступны две ленты.. Однако простая геделизация все еще требуется. Аналогичный результат появляется у Элго-Робинсона (1964) в отношении их модели RASP.
Модель Мелзака (1961) существенно отличается. Он взял свою собственную модель, перевернул ленты вертикально, назвал их «дырами в земле», которые нужно заполнить «счетчиками гальки». В отличие от «приращения» и «декремента» Мински, Мелзак допускал правильное вычитание любого количества камешков и «добавление» любого количества камешков.
Он определяет косвенную адресацию для своей модели (стр. 288) и приводит два примера ее использования (стр. 89); его «доказательство» (стр. 290-292) того, что его модель является эквивалентом Тьюринга, настолько схематично, что читатель не может сказать, предполагал ли он, что косвенная адресация является требованием для доказательства.
Наследие модели Мелзака - это упрощение Ламбека и повторное появление его мнемонических условностей в книге Кука и Рекхоу, 1973 г.
Ламбек (1961) взял троичную модель Мелзака и раздробил ее до двух унарных инструкций - X +, X-, если возможно, иначе переход - в точности те две, которые предложил Мински (1961)..
Однако, как и модель Мински (1961), модель Ламбека выполняет свои инструкции по умолчанию последовательным образом - и X +, и X- несут идентификатор следующей инструкции, а X- также несет переход -в инструкцию, если нулевой тест прошел успешно.
RASP или машина с хранимой программой с произвольным доступом начинается как машина счетчика с его «программа обучения» помещается в его «регистры». Аналогично «регистру команд» конечного автомата, но независимо от него, по крайней мере, один из регистров (называемых «программным счетчиком» (ПК)) и один или несколько «временных» регистров поддерживают запись и работают с номер текущей инструкции. ТАБЛИЦА инструкций конечного автомата отвечает за (i) выборку текущей программной инструкции из соответствующего регистра, (ii) анализ программной инструкции, (iii) выборку операндов, указанных в программной инструкции, и (iv) выполнение программной инструкции..
За исключением проблемы: если эта машина, подобная компьютеру, машина фон Неймана, основанная на шасси счетчика, не будет эквивалентом Тьюринга. Он не может вычислить все, что можно вычислить. По сути, модель ограничена размером инструкций своего (очень) конечного автомата. RASP на основе счетной машины может вычислять любую примитивную рекурсивную функцию (например, умножение), но не все рекурсивные функции mu (например, функцию Аккермана ).
Элгот – Робинсон исследуют возможность разрешения их модели RASP «самовосстановить» свои программные инструкции. Это была старая идея, предложенная Буркс-Голдстайном-фон Нейманом (1946-7) и иногда называемая «вычисляемым goto». Мелзак (1961) конкретно упоминает «вычисляемый goto» по имени, но вместо этого предлагает свою модель с косвенной адресацией.
Вычисляемый переход: Программа команд RASP, которая изменяет "адрес перехода" в инструкции программы с условным или безусловным переходом.
Но это не решает проблему (если не прибегать к числам Гёделя ). Что необходимо, так это метод для получения адреса программной инструкции, которая лежит (далеко) «за / выше» верхней границы регистра команд конечного автомата и ТАБЛИЦЫ.
Мински (1967) намекает на проблему в своем исследовании счетной машины (он называет их «программными компьютерными моделями»). снабженный инструкциями {CLR (r), INC (r) и RPT ("a" умножает на инструкции от m до n)}. Он не говорит нам, как решить проблему, но он действительно отмечает, что:
Но Элгот и Робинсон решают проблему: они дополняют свой P 0 RASP индексированным набором инструкций - несколько более сложной (но более гибкой) формой косвенной адресации. Их модель P '0 обращается к регистрам, добавляя содержимое «базового» регистра (указанного в инструкции) к «индексу», явно указанному в инструкции (или наоборот, меняя местами «базовый» и "индекс"). Таким образом, инструкции индексации P '0 имеют на один параметр больше, чем инструкции без индексации P 0 :
К 1971 году Хартманис упростил индексацию до косвенного обращения для использования в своей модели RASP.
Косвенная адресация: Регистр указателя предоставляет конечному автомату адрес целевого регистра, необходимый для инструкции. Другими словами: содержимое регистра-указателя - это адрес "целевого" регистра, который будет использоваться инструкцией. Если регистр-указатель не ограничен, RAM и подходящий RASP, построенный на его шасси, будут эквивалентны по Тьюрингу. Целевой регистр может служить как исходный, так и целевой регистр, как указано в инструкции.
Обратите внимание, что конечный автомат не должен явно указывать адрес этого целевого регистра. Он просто говорит остальной части машины: достаньте мне содержимое регистра, на который указывает мой регистр-указатель, а затем выполните с ним xyz. Он должен явно указать по имени, с помощью своей инструкции, этот регистр-указатель (например, «N», «72» или «PC» и т. Д.), Но ему не обязательно знать, какой номер фактически содержит регистр-указатель ( возможно, 279 431).
Cook and Reckhow (1973) цитируют Хартманиса (1971) и упрощают его модель до того, что они называют машиной с произвольным доступом (RAM - т.е. машина с косвенным обращением и гарвардская архитектура ). В каком-то смысле мы вернулись к Мелзаку (1961), но с гораздо более простой моделью, чем модель Мелзака.
Мински работал в лаборатории Линкольна Массачусетского технологического института и публиковал там свои работы; его статья была получена для публикации в Annals of Mathematics 15 августа 1960 г., но не опубликована до ноября 1961 г. Хотя получение произошло за год до того, как работа Мелзака и Ламбека была получена и опубликована (получена, соответственно, в мае и 15 июня). 1961 г. и опубликованы параллельно в сентябре 1961 г.). Что (i) оба были канадцами и были опубликованы в Canadian Mathematical Bulletin, (ii) ни один из них не имел ссылки на работу Мински, потому что она еще не была опубликована в рецензируемом журнале, но (iii) Мелзак ссылается на Ванга, а ссылки на Ламбек Мелзак заставляет предположить, что их работа происходила одновременно и независимо.
Почти то же самое случилось с Шепердсоном и Стерджисом. Их статья была получена в декабре 1961 года - всего через несколько месяцев после получения работы Мелзака и Ламбека. Опять же, у них было мало (максимум 1 месяц) или не было никакой пользы от рецензирования работ Мински. Они внимательно отметили в сносках, что статьи Ершова, Капхенгста и Питера «недавно появились» (с. 219). Они были опубликованы намного раньше, но появились на немецком языке в немецких журналах, поэтому возникают проблемы с доступностью.
Последняя статья Шепердсона и Стерджиса не появлялась в рецензируемом журнале до 1963 года. И, как они справедливо и честно отмечают в своем Приложении А, «системы» Капхенгста (1959), Ершова (1958)), Питер (1958), все настолько похожи на результаты, полученные позже, что их нельзя отличить от следующих:
Действительно, Шеферсон и Стерджис приходят к выводу
В порядке публикации даты работа Капхенгста (1959), Ершова (1958), Петра (1958) были первыми.
Справочные тексты: Следующая библиография исходных документов включает в себя ряд текстов, которые будут использоваться в качестве фона. Математику, которая привела к появлению множества статей об абстрактных машинах в 1950-х и 1960-х, можно найти в van Heijenoort (1967) - сборнике оригинальных работ, охватывающих 50 лет от Фреге (1879) до Гёделя (1931). Дэвис (редактор) «Неразрешимое» (1965) несет эстафету вперед, начиная с Гёделя (1931) и кончая постскриптумом Гёделя (1964) (стр. 71); оригинальные статьи Алана Тьюринга (1936-7) и Эмиля Поста (1936) включены в The Undecidable. Математика Черча, Россера и Клини, представленная в виде перепечаток оригинальных статей из «Неразрешимого», получила дальнейшее развитие в Клини (1952), обязательном тексте для всех, кто стремится глубже понять математику, лежащую в основе машин. И Клини (1952), и Дэвис (1958) упоминаются в ряде статей.
Для хорошего обращения со счетной машиной см. Мински (1967), глава 11 «Модели, подобные цифровым компьютерам» - он называет счетную машину «программным компьютером». Недавний обзор можно найти у ван Эмде Боаса (1990). Недавнее рассмотрение модели Мински (1961) / Ламбека (1961) можно найти в Boolos-Burgess-Jeffrey (2002); они реинкарнируют «модель счётов» Ламбека, чтобы продемонстрировать эквивалентность машин Тьюринга и частично рекурсивных функций, и обеспечивают введение на уровне выпускников как абстрактных машинных моделей (контр- и тьюринговых), так и математики теории рекурсии. Начиная с первого издания Boolos-Burgess (1970), эта модель появилась практически с такой же обработкой.
Статьи : Статьи начинаются с Ванга (1957) и его резкого упрощения машины Тьюринга. Тьюринг (1936), Клини (1952), Дэвис (1958) и, в частности, Пост (1936) цитируются в Wang (1957); в свою очередь, на Ванга ссылаются Мелзак (1961), Мински (1961) и Шепердсон-Стерджис (1961-3), когда они независимо сводят ленты Тьюринга к «счетчикам». Мелзак (1961) дает косвенное указание на свою модель счетчика гальки в отверстиях, но не продолжает эту обработку. Работа Элго-Робинсона (1964) определяет RASP - подобную компьютеру машину с хранимыми программами с произвольным доступом - и, по-видимому, является первой, которая исследовала отказ машины ограниченного счетчика для вычисления мю-рекурсивных функций. Эта неудача - за исключением драконовского использования чисел Гёделя в манере Мински (1961)) - приводит к их определению «индексированных» инструкций (то есть косвенной адресации) для их модели RASP. Элгот – Робинсон (1964) и более того Хартманис (1971) исследуют RASP с помощью самомодифицирующихся программ. Хартманис (1971) указывает набор инструкций косвенно, цитируя лекции Кука (1970). Для использования в исследованиях вычислительной сложности Кук и его аспирант Реккоу (1973) предоставляют определение RAM (их модель и мнемонические условные обозначения аналогичны модели Мелзака, но не содержат ссылок на него в статье). Стрелочные машины являются ответвлением Knuth (1968, 1973) и независимо от Schönhage (1980).
По большей части статьи содержат математику за пределами уровня бакалавриата - в частности, примитивные рекурсивные функции и рекурсивные функции mu, элегантно представленные в Kleene (1952) и менее. подробно, но тем не менее полезно, в Boolos-Burgess-Jeffrey (2002).
Все тексты и документы, кроме четырех, отмеченных звездочкой, были засвидетельствованы. Эти четыре написаны на немецком языке и упоминаются в Шепердсоне-Стерджисе (1963) и Элгот-Робинсоне (1964); Шепердсон-Стерджис (1963) предлагает краткое обсуждение своих результатов в Приложении А. Шепердсона-Стерджиса. Терминология по крайней мере в одной статье (Kaphengst (1959), кажется, восходит к Берке-Голдстайну-фон Нейману (1946-7) анализ компьютерной архитектуры.
Автор | Год | Ссылка | Машина Тьюринга | Машина счетчика | RAM | RASP | Указатель | Косвенная адресация | Самомодифицирующаяся программа |
---|---|---|---|---|---|---|---|---|---|
Goldstine von Neumann | 1947 | X | X | ||||||
Kleene | 1952 | X | |||||||
* Гермес | 1954, 5 | ? | |||||||
Ван | 1957 | X | X | намеков | намеков | ||||
* Питер | 1958 | ? | |||||||
Дэвис | 1958 | X | X | ||||||
* Ершов | 1959 | ? | |||||||
* Капхенгст | 1959 | ? | X | ||||||
Мелзак | 1961 | X | X | намекает | |||||
Ламбек | 1961 | X | |||||||
Минский | 1961 | X | |||||||
Шепердсон и Стерджис | 1963 | X | намеки | ||||||
Элгот и Робинсон | 1964 | X | X | X | |||||
Дэвис - Неразрешимый | 1965 | X | X | ||||||
ван Хейеноорт | 1967 | X | |||||||
Мински | 1967 | X | намекает | намекает | |||||
Кнут h | 1968, 73 | X | X | X | X | ||||
Хартманис | 1971 | X | X | ||||||
Cook Reckhow | 1973 | X | X | X | X | ||||
Schonhage | 1980 | X | X | X | |||||
van Emde Боас | 1990 | X | X | X | X | X | X | ||
Boolos Burgess; Boolos, Burgess Jeffrey | 1970–2002 | X | X | X |
Примечания
Источники
На Викискладе есть средства массовой информации, относящиеся к Регистрационным машинам. |