stringtranslate.com

Регистрационная машина

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

Обзор

Регистровая машина получила свое название из-за использования одного или нескольких « регистров ». В отличие от ленты и головки, используемых машиной Тьюринга , модель использует несколько уникально адресуемых регистров , каждый из которых содержит одно неотрицательное целое число .

В литературе встречается по крайней мере четыре подкласса . В порядке возрастания сложности:

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

В практической информатике иногда используется связанная концепция, известная как виртуальная машина , чтобы уменьшить зависимость от базовой архитектуры машины. Эти виртуальные машины также используются в образовательных учреждениях. В учебниках термин «регистровая машина» иногда используется взаимозаменяемо для описания виртуальной машины. [1]

Формальное определение

Регистровая машина состоит из:

  1. Неограниченное количество маркированных, дискретных, неограниченных регистров, неограниченных по объему (емкости) : конечный (или бесконечный в некоторых моделях) набор регистров, каждый из которых считается имеющим бесконечный объем и каждый из которых содержит одно неотрицательное целое число (0, 1, 2, ...). [nb 1] Регистры могут выполнять свою собственную арифметику, или может быть один или несколько специальных регистров, которые выполняют арифметику (например, «аккумулятор» и/или «адресный регистр»). См. также Машина с произвольным доступом .
  2. Счетчики или метки : [nb 2] дискретные, неразличимые объекты или метки только одного вида, подходящие для модели. В модели самой сокращенной счетчиковой машины на каждую арифметическую операцию добавляется или удаляется только один объект/метка. В некоторых моделях счетчиковых машин (например, Melzak, [2] Minsky [3] ) и большинстве моделей RAM и RASP можно добавлять или удалять более одного объекта/метки за одну операцию с помощью «сложения» и, как правило, «вычитания»; иногда с помощью «умножения» и/или «деления». В некоторых моделях есть управляющие операции, такие как «копирование» (или альтернативно: «перемещение», «загрузка», «сохранение»), которые перемещают «группы» объектов/меток из регистра в регистр за одно действие.
  3. Ограниченный набор инструкций : инструкции, как правило, делятся на два класса: арифметические и контрольные. Инструкции берутся из двух классов для формирования «наборов инструкций», так что набор инструкций должен позволять модели быть эквивалентной по Тьюрингу (она должна быть способна вычислять любую частично рекурсивную функцию ).
    1. Арифметика : Арифметические инструкции могут работать со всеми регистрами или с определенным регистром, например аккумулятором. Обычно они выбираются из следующих наборов, хотя существуют исключения: Счетчик: { Инкремент (r), Декремент (r), Очистка в ноль (r) } Сокращенная оперативная память, RASP: { Инкремент (r), Декремент (r), Очистка в ноль (r), Загрузка-немедленной-константы k, Сложение ( ), Правильное-Вычитание ( ), Инкремент аккумулятора, Декремент аккумулятора, Очистка аккумулятора, Добавление содержимого регистра к аккумулятору, Правильное-Вычитание содержимого регистра из аккумулятора } Расширенная оперативная память, RASP: Включает все сокращенные инструкции, а также: { Умножение, Деление, различные логические побитовые операции (сдвиг влево, проверка битов и т. д.) }.
    2. Управление : Модели счетчиков машин: Необязательно включают { Копировать ( ) }. Модели RAM и RASP: Большинство включают { Копировать ( ) } или { Загрузить аккумулятор из , Сохранить аккумулятор в , Загрузить аккумулятор с непосредственной константой }. Все модели: Включают по крайней мере один условный "переход" (ветвь, перейти) после проверки регистра, например { Переход-если-ноль, Переход-если-не-ноль (т.е. Переход-если-положительный), Переход-если-равно, Переход-если-не-равно }. Все модели необязательно включают: { безусловный программный переход (перейти) }.
    3. Метод регистровой адресации :
      • Счетная машина: без косвенной адресации, возможны непосредственные операнды в высокоатомизированных моделях
      • RAM и RASP: доступна косвенная адресация, типичны непосредственные операнды
    4. Вход-выход : опционально во всех моделях
  4. Регистр состояний : специальный регистр инструкций (IR), отличный от регистров, упомянутых ранее, хранит текущую инструкцию, которая должна быть выполнена, вместе с ее адресом в таблице инструкций. Этот регистр вместе со связанной с ним таблицей находится внутри конечного автомата. IR недоступен во всех моделях. В случае RAM и RASP для определения «адреса» регистра модель может выбрать либо (i) адрес, указанный таблицей и временно сохраненный в IR для прямой адресации, либо (ii) содержимое регистра, указанное инструкцией в IR для косвенной адресации. Важно отметить, что IR не является «счетчиком программ» (PC) RASP (или обычного компьютера). PC — это просто еще один регистр, похожий на аккумулятор, но специально зарезервированный для хранения номера текущей инструкции RASP на основе регистра. Таким образом, RASP обладает двумя регистрами "инструкций/программ": (i) IR (регистр инструкций конечного автомата) и (ii) PC ​​(счетчик программ) для программы, хранящейся в регистрах. Кроме того, помимо PC, RASP может также выделить другой регистр для "регистра программ-инструкций" (называемого по-разному, например, "PIR", "IR", "PR" и т. д.).
  5. Список помеченных инструкций, обычно в последовательном порядке : Конечный список инструкций . В случае счетчика машины, машины с произвольным доступом (RAM) и машины с указателями хранилище инструкций находится в «ТАБЛИЦЕ» конечного автомата, таким образом, эти модели являются примерами архитектуры Гарварда. В случае RASP хранилище программ находится в регистрах, таким образом, это пример архитектуры Фон Неймана. См. также Машина с произвольным доступом и Машина с произвольной выборкой хранимых программ . Инструкции обычно перечислены в последовательном порядке, как компьютерные программы , если только переход не был успешным. В этом случае последовательность по умолчанию продолжается в числовом порядке. Исключением из этого являются модели счетчика машины abacus [4] [3] — каждая инструкция имеет по крайней мере один идентификатор «следующей» инструкции «z», а условный переход имеет два.
    • Обратите внимание также, что модель счет объединяет две инструкции: JZ, а затем DEC: например, { INC ( r, z ), JZDEC ( r, z true , z false ) }.

Подробнее об условном выражении «ЕСЛИ r=0 ТО z истинно ИНАЧЕ z ложно » см. в «Формализме Маккарти» [5]

Историческое развитие модели регистровой машины

В начале 1950-х годов появились две тенденции. Первая заключалась в том, чтобы охарактеризовать компьютер как машину Тьюринга. Вторая заключалась в том, чтобы определить компьютероподобные модели — модели с последовательными последовательностями инструкций и условными переходами — с мощью машины Тьюринга, так называемая эквивалентность Тьюринга. Необходимость в этой работе была выполнена в контексте двух «трудных» проблем: неразрешимой проблемы слов, поставленной Эмилем Постом [6] — его проблемы «тега» — и очень «трудной» проблемы проблем Гильберта — 10-го вопроса вокруг диофантовых уравнений . Исследователи искали модели, эквивалентные Тьюрингу, которые были бы менее «логичными» по своей природе и более «арифметическими». [2] : 281  [7] : 218 

Первый шаг к характеристике компьютеров был сделан [nb 3] Гансом Гермесом (1954), [8] Рожей Петером (1958), [9] и Хайнцем Капхенгстом (1959), [10] второй шаг — Хао Ваном (1954, [11] 1957 [12] ) и, как отмечено выше, продолжен Здзиславом Александром Мельцаком (1961), [2] Иоахимом Ламбеком (1961) [4] и Марвином Мински (1961, [3] 1967 [13] ).

Последние пять имен Юрий Матиясевич перечисляет именно в таком порядке . Далее он пишет:

« Регистровые машины [некоторые авторы используют термин «регистровая машина» как синоним термина «счетная машина»] особенно подходят для построения диофантовых уравнений. Подобно машинам Тьюринга, они имеют очень примитивные инструкции и, кроме того, имеют дело с числами ». [14]

Ламбек, Мельзак, Мински, Шепердсон и Стерджис независимо друг от друга открыли одну и ту же идею в одно и то же время. См. примечание о приоритете ниже.

История начинается с модели Вана.

Модель Вана (1954, 1957): Пост–Тьюрингова машина

Работа Вана основывалась на статье Эмиля Поста (1936) [6] и привела Вана к определению его B-машины Вана — двухсимвольной модели вычислений Пост-Тьюринговой машины, содержащей всего четыре атомарных инструкции:

{ ВЛЕВО, ВПРАВО, ПЕЧАТЬ, ПЕРЕХОД_если_отмечен_к_инструкции_z }

К этим четырём и Ван (1954, [11] 1957 [12] ), и затем CY Lee (1961) [15] добавили ещё одну инструкцию из набора Поста {ERASE}, а затем безусловный переход Поста {JUMP_to_instruction_z} (или, для простоты, условный переход JUMP_IF_blank_to_instruction_z, или и то, и другое. Ли назвал это моделью «W-машины»:

{ ВЛЕВО, ВПРАВО, ПЕЧАТЬ, СТИРАНИЕ, JUMP_if_marked, [возможно JUMP или JUMP_IF_blank] }

Ван выразил надежду, что его модель станет «сближением» : 63  между теорией машин Тьюринга и практическим миром компьютеров.

Работа Вана была очень влиятельной. Мы находим, что на него ссылаются Минский (1961) [3] и (1967), [13] Мелзак (1961), [2] Шепердсон и Стерджис (1963). [7] Действительно, Шепердсон и Стерджис (1963) отмечают, что:

« ...мы попытались сделать еще один шаг в «сближении» практических и теоретических аспектов вычислений, предложенном Ваном » [7] : 218 

Мартин Дэвис в конечном итоге развил эту модель в (2-символьную) пост-Тьюринговскую машину.

Трудности с моделью Вана/Пост-Тьюринга :

За исключением того, что была проблема: модель Вана (шесть инструкций 7-инструкционной машины Пост-Тьюринга) все еще была одноленточным устройством типа Тьюринга, каким бы хорошим ни был ее последовательный поток инструкций программы . И Мелзак (1961) [2] , и Шепердсон и Стерджис (1963) [7] наблюдали это (в контексте определенных доказательств и исследований):

" ...машина Тьюринга имеет определенную непрозрачность... машина Тьюринга медлительна в (гипотетической) работе и, как правило, сложна. Это делает ее довольно сложной для проектирования и еще более сложной для исследования таких вопросов, как оптимизация времени или хранения или сравнение эффективности двух алгоритмов. [2] : 281  "...хотя и несложно... доказательства сложны и утомительны для понимания по двум причинам: (1) У машины Тьюринга есть только голова, поэтому приходится разбивать вычисления на очень маленькие шаги операций над одной цифрой. (2) У нее есть только одна лента, поэтому приходится прикладывать некоторые усилия, чтобы найти число, с которым нужно работать, и отделить его от других чисел " [7] : 218 

Действительно, как показывают примеры машин Тьюринга , пост-машин Тьюринга и частичных функций , работа может быть «сложной».

Модели Мински, Мелзака–Ламбека и Шепердсона–Стерджиса «разрезают ленту» на множество

Первоначальная мысль приводит к «разрезанию ленты» так, чтобы каждая была бесконечно длинной (чтобы вместить целое число любого размера), но с левым концом. Эти три ленты называются «лентами пост-Тьюринга (т. е. лентами типа Вана)». Отдельные головки движутся влево (для уменьшения) и вправо (для увеличения). В некотором смысле головки указывают «вершину стопки» конкатенированных меток. Или в Мински (1961) [3] и Хопкрофте и Ульмане (1979), [16] : 171ff  лента всегда пуста, за исключением метки на левом конце — головка никогда не печатает и не стирает.

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

Минский (1961) [3] и Шепердсон–Стерджис (1963) [7] доказывают, что только несколько лент — всего одна — все еще позволяют машине быть эквивалентной по Тьюрингу, если данные на ленте представлены как число Гёделя (или какое-либо другое уникально кодируемое число Encodable-decodable); это число будет меняться по мере выполнения вычислений. В версии с одной лентой с кодированием числа Гёделя счетчик должен уметь (i) умножать число Гёделя на константу (числа «2» или «3») и (ii) делить на константу (числа «2» или «3») и переходить, если остаток равен нулю. Минский (1967) [13] показывает, что необходимость в этом странном наборе инструкций может быть смягчена до { INC (r), JZDEC (r, z) } и удобных инструкций { CLR (r), J (r) }, если доступны две ленты. Однако простая Гёделизация все еще требуется. Похожий результат появляется в работе Элгота–Робинсона (1964) [17] относительно их модели RASP.

Модель Мелзака (1961) отличается: глыбы гальки входят в отверстия и выходят из них.

Модель Мелзака (1961) [2] существенно отличается. Он взял свою собственную модель, перевернул ленты вертикально, назвал их «ямками в земле», которые нужно заполнить «счетчиками камешков». В отличие от «приращения» и «уменьшения» Мински, Мелзак допускал правильное вычитание любого количества камешков и «прибавление» любого количества камешков.

Он определяет косвенную адресацию для своей модели [2] : 288  и приводит два примера ее использования; [2] : 89  его «доказательство» [2] : 290–292  того, что его модель эквивалентна модели Тьюринга, настолько схематично, что читатель не может сказать, намеревался ли он сделать косвенную адресацию обязательным условием доказательства.

Наследием модели Мелзака является упрощение Ламбека и повторное появление его мнемонических условностей в работе Кука и Рекхова 1973 года. [18]

Ламбек (1961) атомизирует модель Мелзака в модель Мински (1961): INC и DEC-with-test

Ламбек (1961) [4] взял троичную модель Мелзака и разложил ее на две унарные инструкции — X+, X−, если возможно, иначе переход — точно такие же две, которые придумал Мински (1961) [3] .

Однако, как и модель Мински (1961) [3] , модель Ламбека выполняет свои инструкции последовательно по умолчанию — как X+, так и X− несут идентификатор следующей инструкции, а X− также несет инструкцию перехода, если нулевой тест пройден успешно.

Элгот–Робинсон (1964) и проблема RASP без косвенного обращения

Машина RASP или машина с произвольным доступом к хранимой программе начинается как счетная машина с ее "программой инструкций", размещенной в ее "регистрах". Аналогично, но независимо от "регистра инструкций" конечного автомата, по крайней мере один из регистров (называемый "счетчиком программ" (PC)) и один или несколько "временных" регистров поддерживают запись и работают с номером текущей инструкции. ТАБЛИЦА инструкций конечного автомата отвечает за (i) выборку текущей инструкции программы из соответствующего регистра, (ii) разбор инструкции программы , (iii) выборку операндов, указанных инструкцией программы , и (iv) выполнение инструкции программы .

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

Элгот–Робинсон исследуют возможность позволить своей модели RASP «самомодифицировать» свои программные инструкции. [17] Идея была старой, предложенной Берксом–Голдстайном–фон Нейманом (1946–1947), [19] и иногда называемой «вычисляемым goto». Мелзак (1961) [2] специально упоминает «вычисляемый goto» по имени, но вместо этого предоставляет своей модели косвенную адресацию.

Вычисляемый goto: программа инструкций RASP , которая изменяет «адрес goto» в инструкции программы условного или безусловного перехода .

Но это не решает проблему (если только не прибегнуть к числам Гёделя ). Необходим метод извлечения адреса инструкции программы, которая лежит (далеко) "за/выше" верхней границы регистра инструкций конечного автомата и ТАБЛИЦЫ.

Пример: Счетная машина, оснащенная всего четырьмя неограниченными регистрами, может, например, умножить любые два числа (m, n) вместе, чтобы получить p — и, таким образом, быть примитивной рекурсивной функцией — независимо от того, насколько велики числа m и n; более того, для этого требуется менее 20 инструкций! например { 1: CLR ( p ), 2: JZ ( m, done ), 3 outer_loop: JZ ( n, done ), 4: CPY ( m, temp ), 5: inner_loop: JZ ( m, outer_loop ), 6: DEC ( m ), 7: INC ( p ), 8: J ( inner_loop ), 9: outer_loop: DEC ( n ), 10 J ( outer_loop ), HALT } Однако, имея всего 4 регистра, эта машина недостаточно велика, чтобы построить RASP, который может выполнить алгоритм умножения как программу . Независимо от того, насколько большой мы построим наш конечный автомат, всегда найдется программа (включая ее параметры), которая больше. Поэтому по определению ограниченная программная машина, которая не использует неограниченные трюки кодирования, такие как числа Гёделя, не может быть универсальной .

Минский (1967) [13] намекает на эту проблему в своем исследовании счетной машины (он называет их «программными компьютерными моделями»), снабженной инструкциями { CLR (r), INC (r) и RPT («a» умножить на инструкции m до n) }. Он не говорит нам, как решить эту проблему, но он замечает, что:

" ...программный компьютер должен иметь какой-то способ отслеживать, сколько RPT осталось выполнить, и это может исчерпать любой конкретный объем памяти, разрешенный в конечной части компьютера. Операции RPT требуют бесконечных собственных регистров, в общем, и они должны обрабатываться иначе, чем другие виды операций, которые мы рассматривали. " [13] : 214 

Но Элгот и Робинсон решают эту проблему: [17] Они дополняют свой P 0 RASP индексированным набором инструкций — несколько более сложной (но более гибкой) формой косвенной адресации. Их модель P' 0 адресует регистры, добавляя содержимое «базового» регистра (указанного в инструкции) к «индексу», явно указанному в инструкции (или наоборот, меняя местами «базу» и «индекс»). Таким образом, индексирующие инструкции P' 0 имеют на один параметр больше, чем неиндексирующие инструкции P 0 :

Пример: INC (r base , index); эффективный адрес будет [r base ] + index, где натуральное число «index» выводится из самой инструкции конечного автомата.

Хартманис (1971)

К 1971 году Хартманис упростил индексацию до косвенной для использования в своей модели RASP. [20]

Косвенная адресация: Указатель-регистр предоставляет конечному автомату адрес целевого регистра, необходимого для инструкции. Другими словами: содержимое указателя -регистра является адресом "целевого" регистра, который будет использоваться инструкцией. Если указатель-регистр не ограничен, ОЗУ и подходящий RASP, построенный на его шасси, будут эквивалентны Тьюрингу. Целевой регистр может служить как исходным, так и целевым регистром, как указано в инструкции.

Обратите внимание, что конечный автомат не должен явно указывать адрес этого целевого регистра. Он просто говорит остальной части машины: «Получите мне содержимое регистра, на который указывает мой указатель-регистр, а затем выполните с ним xyz». Он должен явно указать по имени, через свою инструкцию, этот указатель-регистр (например, «N», или «72», или «PC», и т. д.), но ему не нужно знать, какое число на самом деле содержит указатель-регистр (возможно, 279 431).

Кук и Рекхов (1973) описывают RAM

Кук и Рекхов (1973) [18] цитируют Хартманиса (1971) [20] и упрощают его модель до того, что они называют машиной с произвольным доступом (RAM — т.е. машина с косвенностью и архитектурой Гарварда). В некотором смысле мы возвращаемся к Мелзаку (1961) [2], но с гораздо более простой моделью, чем у Мелзака.

Приоритет

Минский работал в лаборатории Линкольна Массачусетского технологического института и опубликовал там свою работу; его статья была получена для публикации в Annals of Mathematics 15 августа 1960 года, но опубликована только в ноябре 1961 года. [3] Хотя получение произошло за целый год до того, как работа Мелзака [2] и Ламбека [4] была получена и опубликована (получена, соответственно, в мае и 15 июня 1961 года и опубликована бок о бок в сентябре 1961 года). То, что (i) оба были канадцами и были опубликованы в Canadian Mathematical Bulletin , (ii) ни один из них не мог ссылаться на работу Минского, поскольку она еще не была опубликована в рецензируемом журнале, но (iii) Мелзак ссылается на Вана, а Ламбек ссылается на Мелзака, приводит к гипотезе, что их работа была выполнена одновременно и независимо.

Почти то же самое произошло с Шепердсоном и Стерджисом. [21] Их статья была получена в декабре 1961 года — всего через несколько месяцев после того, как была получена работа Мелзака и Ламбека. Опять же, у них было мало (максимум 1 месяц) или вообще не было никакой выгоды от рецензирования работы Мински. Они были осторожны, отмечая в сносках, что статьи Ершова, [22] Капенгста [10] и Петера [9] «недавно появились» [21] : 219  Они были опубликованы намного раньше, но появились на немецком языке в немецких журналах, поэтому возникают вопросы доступности.

Окончательная статья Шепердсона и Стерджиса не появлялась в рецензируемом журнале до 1963 года. [7] И как они отмечают в своем Приложении А, «системы» Капенгста (1959), [10], Ершова (1958), [22] и Петера (1958) [9] настолько похожи на результаты, полученные позже, что их невозможно отличить от следующих:

произвести 0 т.е. 0 → n
увеличить число, т.е. n+1 → n
"т.е. выполнения операций, которые генерируют натуральные числа" [7] : 246 
скопировать число, т.е. n → m
«изменить ход вычислений», либо сравнивая два числа, либо уменьшая их до 0

Действительно, Шеферсон и Стерджис приходят к выводу:

« Различные минимальные системы очень похожи » [7] : 246 

По дате публикации первыми были работы Капенгста (1959), [10] Ершова (1958), [22] Петера (1958). [9]

Смотрите также

Библиография

Фоновые тексты: Следующая библиография исходных статей включает ряд текстов, которые можно использовать в качестве фона. Математику, которая привела к шквалу статей об абстрактных машинах в 1950-х и 1960-х годах, можно найти в van Heijenoort (1967) [23] — сборнике оригинальных статей, охватывающих 50 лет от Фреге (1879) [24] до Гёделя (1931). [25] Davis (ред.) The Undecidable (1965) [26] несет факел вперед, начиная с Гёделя (1931) [25] через постскриптум Гёделя (1964); [27] : 71  оригинальные статьи Алана Тьюринга (1936 [28] –1937) и Эмиля Поста (1936) [6] включены в The Undecidable . Математика Чёрча, Россера и Клини, которая появляется как перепечатки оригинальных статей в The Undecidable , развита далее в Kleene (1952), [29] обязательный текст для тех, кто стремится к более глубокому пониманию математики, лежащей в основе машин. И Kleene (1952) [29] , и Davis (1958) [30] упоминаются в ряде статей.

Для хорошего рассмотрения счетчиковой машины см. Minsky (1967) Глава 11 «Модели, подобные цифровым компьютерам» — он называет счетчиковую машину «программным компьютером». [13] Недавний обзор можно найти у van Emde Boas (1990). [31] Недавнее рассмотрение модели Minsky (1961) [3] /Lambek (1961) [4] можно найти у Boolos–Burgess–Jeffrey (2002); [32] они реинкарнируют «модель абака» Ламбека, чтобы продемонстрировать эквивалентность машин Тьюринга и частично рекурсивных функций, и они предоставляют введение на уровне выпускника как в абстрактные модели машин (контр- и Тьюринг-), так и в математику теории рекурсии. Начиная с первого издания Boolos–Burgess (1970) [33] эта модель появилась практически с той же обработкой.

Статьи : Статьи начинаются с Вана (1957) [12] и его радикального упрощения машины Тьюринга. Тьюринг (1936), [28] Клини (1952), [29] Дэвис (1958), [30] и, в частности, Пост (1936) [6] цитируются в Ване (1957); [12] в свою очередь, на Вана ссылаются Мелзак (1961), [2] Минский (1961), [3] и Шепердсон–Стерджис (1961–1963) [21] [7], поскольку они независимо сводят ленты Тьюринга к «счетчикам». Мелзак (1961) [2] предоставляет свою модель счетчика «камешек в лунках» с косвенностью, но не развивает ее дальше. Работа Элгота–Робинсона (1964) [17] определяет RASP — компьютероподобные машины с произвольным доступом и хранимой программой — и, по-видимому, является первой, исследующей неспособность машины с ограниченным счетчиком вычислять мю-рекурсивные функции. Эта неспособность — за исключением драконовского использования чисел Гёделя в манере Мински (1961) [3] — приводит к их определению «индексированных» инструкций (т. е. косвенной адресации) для их модели RASP. Элгот–Робинсон (1964) [17] и, в большей степени, Хартманис (1971) [20] исследуют RASP с самомодифицирующимися программами. Хартманис (1971) [20] определяет набор инструкций с косвенностью, ссылаясь на лекции Кука (1970). [34] Для использования в исследованиях вычислительной сложности Кук и его аспирант Рекхов (1973) [18] дают определение RAM (их модель и мнемоническое соглашение похожи на модель Мелзака, но не дают ему ссылки в статье). Указательные машины являются ответвлением Кнута (1968, [35] 1973) и независимо Шёнхаге (1980). [36]

В большинстве статей содержится математика, выходящая за рамки уровня бакалавриата, в частности примитивные рекурсивные функции и мю-рекурсивные функции, изящно представленные в работе Клини (1952) [29] и менее подробно, но тем не менее полезно, в работе Булоса–Берджесса–Джеффри (2002). [32]

Все тексты и статьи, за исключением четырех отмеченных звездочкой, были засвидетельствованы. Эти четыре написаны на немецком языке и появляются в качестве ссылок в работах Шепердсона–Стерджиса (1963) [7] и Элгота–Робинсона (1964); [17] Шепердсон–Стерджис (1963) [7] предлагают краткое обсуждение своих результатов в Приложении А Шепердсона–Стерджиса. Терминология по крайней мере одной статьи (Кафенгст (1959) [10] , по-видимому, восходит к анализу архитектуры компьютера Берка–Голдстайна–фон Неймана (1946–1947) [19] .

Примечания

  1. ^ "... счетная последовательность регистров, пронумерованных 1, 2, 3, ..., каждый из которых может хранить любое натуральное число 0, 1, 2, .... Однако каждая конкретная программа использует только конечное число этих регистров, остальные остаются пустыми (т. е. содержат 0) на протяжении всего вычисления". (Shepherdson and Sturgis 1961: p. 219); (Lambek 1961: p. 295) предложил: "счетно бесконечное множество мест (отверстий, проводов и т. д.).
  2. ^ Например, (Ламбек 1961: стр. 295) предложил использовать гальку, бусины и т. д.
  3. ^ См. «Примечание» в (Shepherdson and Sturgis 1963: стр. 219). В Приложении А авторы приводят список и обсуждают наборы инструкций Капенгста, Ершова и Петера (ср. стр. 245 и далее).

Ссылки

  1. ^ Гарольд Абельсон и Джеральд Джей Сассман с Джули Сассман, Структура и интерпретация компьютерных программ , MIT Press , Кембридж, Массачусетс , 2-е издание, 1996
  2. ^ abcdefghijklmnop Melzak, Zdzislaw Alexander [на Wikidata] (сентябрь 1961 г.). «Неформальный арифметический подход к вычислимости и вычислениям». Canadian Mathematical Bulletin . 4 (3): 89, 279–293 [89, 281, 288, 290–292]. doi : 10.4153/CMB-1961-031-9 .Рукопись была получена журналом 15 мая 1961 года. Мелзак не приводит никаких ссылок, но признает «полезность бесед с докторами Р. Хэммингом, Д. Макилроем и В. Высоцким из Bell Telephone Laboratories, а также с доктором Х. Вангом из Оксфордского университета» [1].
  3. ^ abcdefghijklm Мински, Марвин (1961). «Рекурсивная неразрешимость проблемы Поста «Тэг» и других тем в теории машин Тьюринга». Annals of Mathematics . 74 (3): 437–455 [438, 449]. doi :10.2307/1970290. JSTOR  1970290.
  4. ^ abcdef Ламбек, Иоахим (сентябрь 1961 г.). «Как запрограммировать бесконечный абак». Канадский математический бюллетень . 4 (3): 295–302 [295]. doi : 10.4153/CMB-1961-032-6 .Рукопись была получена журналом 15 июня 1961 года. В Приложении II Ламбек предлагает «формальное определение понятия «программа». Он ссылается на работу Мелзака (1961) и Клини (1952) « Введение в метаматематику» .
  5. ^ Маккарти (1960)
  6. ^ abcd Эмиль Пост (1936)
  7. ^ abcdefghijklm Шепердсон, Стерджис (1963): Джон К. Шепердсон и Х. Э. Стерджис (1961) получили в декабре 1961 г. "Вычислимость рекурсивных функций", Журнал Ассоциации вычислительной техники (JACM) 10:217–255 [218, 219, 245ff, 246], 1963. Чрезвычайно ценная справочная статья. В своем Приложении A авторы цитируют 4 других со ссылкой на "Минимальность инструкций, используемых в 4.1: сравнение с подобными системами".
  8. ^ ab Ганс Гермес "Die Universalität programmgesteuerter Rechenmaschinen". Матем.-Физ. Semesterberichte (Геттинген) 4 (1954), 42–53.
  9. ^ abcde Петер, Рожа «Графические схемы и рекурсивные функции», Dialectica 12 (1958), 373.
  10. ^ abcdef Kaphengst, Хайнц  [де] , "Eine Abstrakte Programmgesteuerte Rechenmaschine", Zeitschrift Fur Mathematische Logik und Grundlagen der Mathematik 5 (1959), 366–379. [2]
  11. ^ ab Hao Wang "Вариант теории вычислительных машин Тьюринга". Представлено на заседании Ассоциации 23–25 июня 1954 г.
  12. ^ abcde Хао Ван (1957), «Вариант теории вычислительных машин Тьюринга», JACM ( Журнал Ассоциации вычислительной техники ) 4; 63–92. Представлено на заседании Ассоциации 23–25 июня 1954 г.
  13. ^ abcdefg Минский, Марвин (1967). Вычисления: Конечные и бесконечные машины (1-е изд.). Энглвуд Клиффс, Нью-Джерси, США: Prentice-Hall, Inc. стр. 214.В частности, см. главу 11: Модели, подобные цифровым компьютерам и главу 14: Очень простые основы вычислимости . В первой главе он определяет «Программные машины», а в последней главе обсуждает «Универсальные программные машины с двумя регистрами» и «...с одним регистром» и т. д.
  14. Юрий Матиясевич , Десятая проблема Гильберта , комментарий к главе 5 книги, на http://logic.pdmi.ras.ru/yumat/H10Pbook/commch_5htm.)
  15. ^ CY Ли (1961)
  16. ^ Джон Хопкрофт , Джеффри Ульман (1979). Введение в теорию автоматов, языки и вычисления , 1-е изд., Reading Mass: Addison-Wesley. ISBN 0-201-02988-X , стр. 171 и далее. Сложная книга, посвященная вопросам машинной интерпретации «языков», NP-полноты и т. д. 
  17. ^ abcdefg Кэлвин Элгот и Абрахам Робинсон (1964), «Машины с произвольным доступом и хранимыми программами: подход к языкам программирования», Журнал Ассоциации вычислительной техники , том 11, № 4 (октябрь 1964 г.), стр. 365–399.
  18. ^ abcd Стивен А. Кук и Роберт А. Рекхов (1972), Машины с произвольным доступом с ограничением по времени , Журнал компьютерных системных наук 7 (1973), 354–375.
  19. ^ abc Артур Беркс , Герман Голдстайн , Джон фон Нейман (1946–1947), «Предварительное обсуждение логического проектирования электронного вычислительного прибора», перепечатано с. 92 и далее в Gordon Bell and Allen Newell (1971), Computer Structures: Readings and Examples , McGraw-Hill Book Company, Нью-Йорк. ISBN 0-07-004357-4
  20. ^ abcde Юрис Хартманис (1971), «Вычислительная сложность машин с произвольным доступом и хранимыми программами», Математическая теория систем 5, 3 (1971) стр. 232–245.
  21. ^ abc Шепердсон, Стерджис (1961), стр. 219
  22. ^ abcd Ершов, Андрей П. "Об операторных алгоритмах", ДАН 122 (1958), 967–970. Английский перевод, Automat. Express 1 (1959), 20–23.
  23. ^ ab van Heijenoort (1967)
  24. ^ Фреге (1879)
  25. ^ ab Gödel (1931)
  26. ^ ab Davis (ред.) Неразрешимое (1965)
  27. Гёдель (1964), постскриптум, стр. 71.
  28. ^ ab Тьюринг (1936)
  29. ^ abcde Стивен Клини (1952), Введение в метаматематику , North-Holland Publishing Company, Амстердам, Нидерланды. ISBN 0-7204-2103-9
  30. ^ abc Мартин Дэвис (1958), Вычислимость и неразрешимость , McGraw-Hill Book Company, Inc. Нью-Йорк.
  31. ^ ab Peter van Emde Boas , "Machine Models and Simulations" pp. 3–66, in: Jan van Leeuwen , ed. Handbook of Theoretical Computer Science. Volume A: Algorithms and Complexity , The MIT PRESS/Elsevier, 1990. ISBN 0-444-88071-2 (volume A). QA 76.H279 1990. Трактовка SMMs ван Эмде Боаса представлена ​​на стр. 32–35. Эта трактовка проясняет Schōnhage 1980 — она близко следует, но немного расширяет трактовку Schōnhage. Обе ссылки могут быть необходимы для эффективного понимания. 
  32. ^ abc Джордж Булос , Джон П. Берджесс , Ричард Джеффри (2002), Вычислимость и логика: четвертое издание , Cambridge University Press, Кембридж, Англия. Оригинальный текст Булоса-Джеффри был значительно переработан Берджессом: более продвинутый, чем вводный учебник. Модель «машины Abacus» значительно развита в Главе 5 Вычислимость Abacus ; это одна из трех моделей, которые были тщательно рассмотрены и сравнены — машина Тьюринга (все еще в исходной форме 4-кортежа Булоса) и рекурсия — две другие.
  33. ^ ab Джордж Булос , Джон П. Берджесс (1970)
  34. Кук (1970)
  35. ^ ab Donald Knuth (1968), Искусство программирования компьютеров , второе издание 1973, Addison-Wesley, Reading, Massachusetts. См. страницы 462–463, где он определяет «новый вид абстрактной машины или «автомата», который имеет дело со связанными структурами».
  36. ^ ab Arnold Schōnhage (1980), Storage Modification Machines , Society for Industrial and Applied Mathematics, SIAM J. Comput. Vol. 9, No. 3, August 1980. Где Schōnhage показывает эквивалентность своего SMM с «преемником RAM» (машиной с произвольным доступом) и т. д. соответственно. Storage Modification Machines , в Theoretical Computer Science (1979), стр. 36–37

Дальнейшее чтение

Внешние ссылки