Читаем Насосы интуиции и другие инструменты мышления полностью

Конец работы. Машина может остановиться или выключиться.

Инкремент регистра n (прибавить 1 к содержимому регистра n; положить один боб в ящик n) и переход на следующий шаг, шаг m.

Декремент регистра n (отнять 1 от содержимого регистра n; вынуть один боб из ящика n) и переход на следующий шаг, шаг m.

Инструкция “декремент” работает точно так же, как инструкция “инкремент”, но между ними есть одно принципиально важное различие: что делать, если в регистре n содержится число 0? Машина не может отнять 1 от этого содержимого (в регистрах не могут содержаться отрицательные числа; боб из пустого ящика не вынуть), поэтому, оказавшись в безвыходном положении, машина должна сделать “переход”. Иными словами, она должна обратиться к другому фрагменту программы, чтобы получить следующую инструкцию. В связи с этим каждая инструкция “декремент” должна определять, к какому фрагменту программы обращаться, если в текущий момент в регистре содержится 0. Таким образом, полное определение инструкции “декремент” звучит так:

Декремент регистра n (отнять 1 от содержимого регистра n), если это возможно, и переход на шаг m ИЛИ, если декрементировать регистр n невозможно, переход на шаг p.

Теперь снабдим все возможности регистровой машины короткими названиями: Кон, Инк и Деп (декремент-или-переход).

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

Начнем с простого сложения. Допустим, вы хотите, чтобы регистровая машина прибавила содержимое одного регистра (скажем, регистра 1) к содержимому другого регистра (регистра 2). Таким образом, если в регистре 1 содержится [3], а в регистре 2 содержится [4], мы хотим, чтобы в итоге программа сделала так, чтобы содержимое регистра 2 стало равняться [7], потому что 3 + 4 = 7. Вот программа, которая справится с этой задачей, написанная на простом языке РПА (регистровое программирование на ассемблере):

программа 1: ADD [1,2]

Первые две инструкции образуют простой цикл, в рамках которого регистр 1 декрементируется, а регистр 2 инкрементируется снова и снова, пока регистрне опустеет. Это “заметит” блок обработки данных, который в результате сделает переход на шаг 3, останавливающий программу. Блок обработки данных не может сказать, каково содержимое регистра, если только это содержимое не 0. Если снова представить ящики с бобами, можно сказать, что блок обработки данных слеп и не видит, что находится в регистре, пока он не опустеет, потому что отсутствие содержимого он может определить на ощупь. Несмотря на то что, в принципе, он не может сказать, каково содержимое регистров, если задать ему программу 1, он всегда будет прибавлять содержимое регистра 1 (какое бы число ни содержалось в регистре 1) к содержимому регистра 2 (какое бы число ни содержалось в регистре 2), а затем останавливаться. (Вы понимаете, почему так должно происходить всегда? Разберите несколько примеров, чтобы удостовериться.) Вот любопытный способ на это взглянуть: регистровая машина мастерски умеет складывать числа, не зная, какие именно числа она складывает (а также что такое числа и что такое сложение)!

упражнение 1

а. Сколько шагов потребуется регистровой машине, чтобы сложить+и получить 7, выполняя программу(считая Кон отдельным шагом)?

б. Сколько шагов потребуется машине, чтобы сложить+ 2?

(Какой из этого можно сделать вывод?)[29]

Этот процесс можно изобразить наглядно, построив так называемый граф потока. Каждый кружок обозначает инструкцию. Число в кружке обозначает адрес регистра, с которым необходимо произвести манипуляции (а не содержимое регистра), “+” обозначает инструкцию Инк, а “–” – инструкцию Деп. Программа всегда начинается с α, альфы, и завершается, когда достигает Ω, омеги. Стрелки показывают переход к следующей инструкции. Обратите внимание, что каждая инструкция Деп имеет две исходящих стрелки, одну для направления, в котором двигаться, если декрементировать содержимое регистра возможно, а другую – если невозможно, потому что содержимое регистра 0 (переход на ноль).

Перейти на страницу:

Все книги серии Книжные проекты Дмитрия Зимина

Достаточно ли мы умны, чтобы судить об уме животных?
Достаточно ли мы умны, чтобы судить об уме животных?

В течение большей части прошедшего столетия наука была чрезмерно осторожна и скептична в отношении интеллекта животных. Исследователи поведения животных либо не задумывались об их интеллекте, либо отвергали само это понятие. Большинство обходило эту тему стороной. Но времена меняются. Не проходит и недели, как появляются новые сообщения о сложности познавательных процессов у животных, часто сопровождающиеся видеоматериалами в Интернете в качестве подтверждения.Какие способы коммуникации практикуют животные и есть ли у них подобие речи? Могут ли животные узнавать себя в зеркале? Свойственны ли животным дружба и душевная привязанность? Ведут ли они войны и мирные переговоры? В книге читатели узнают ответы на эти вопросы, а также, например, что крысы могут сожалеть о принятых ими решениях, воро́ны изготавливают инструменты, осьминоги узнают человеческие лица, а специальные нейроны позволяют обезьянам учиться на ошибках друг друга. Ученые открыто говорят о культуре животных, их способности к сопереживанию и дружбе. Запретных тем больше не существует, в том числе и в области разума, который раньше считался исключительной принадлежностью человека.Автор рассказывает об истории этологии, о жестоких спорах с бихевиористами, а главное — об огромной экспериментальной работе и наблюдениях за естественным поведением животных. Анализируя пути становления мыслительных процессов в ходе эволюционной истории различных видов, Франс де Вааль убедительно показывает, что человек в этом ряду — лишь одно из многих мыслящих существ.* * *Эта книга издана в рамках программы «Книжные проекты Дмитрия Зимина» и продолжает серию «Библиотека фонда «Династия». Дмитрий Борисович Зимин — основатель компании «Вымпелком» (Beeline), фонда некоммерческих программ «Династия» и фонда «Московское время».Программа «Книжные проекты Дмитрия Зимина» объединяет три проекта, хорошо знакомые читательской аудитории: издание научно-популярных переводных книг «Библиотека фонда «Династия», издательское направление фонда «Московское время» и премию в области русскоязычной научно-популярной литературы «Просветитель».

Франс де Вааль

Биология, биофизика, биохимия / Педагогика / Образование и наука
Скептик. Рациональный взгляд на мир
Скептик. Рациональный взгляд на мир

Идея писать о науке для широкой публики возникла у Шермера после прочтения статей эволюционного биолога и палеонтолога Стивена Гулда, который считал, что «захватывающая действительность природы не должна исключаться из сферы литературных усилий».В книге 75 увлекательных и остроумных статей, из которых читатель узнает о проницательности Дарвина, о том, чем голые факты отличаются от научных, о том, почему высадка американцев на Луну все-таки состоялась, отчего умные люди верят в глупости и даже образование их не спасает, и почему вода из-под крана ничуть не хуже той, что в бутылках.Наука, скептицизм, инопланетяне и НЛО, альтернативная медицина, человеческая природа и эволюция – это далеко не весь перечень тем, о которых написал главный американский скептик. Майкл Шермер призывает читателя сохранять рациональный взгляд на мир, учит анализировать факты и скептически относиться ко всему, что кажется очевидным.

Майкл Брант Шермер

Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература
Записки примата: Необычайная жизнь ученого среди павианов
Записки примата: Необычайная жизнь ученого среди павианов

Эта книга — воспоминания о более чем двадцати годах знакомства известного приматолога Роберта Сапольски с Восточной Африкой. Будучи совсем еще молодым ученым, автор впервые приехал в заповедник в Кении с намерением проверить на диких павианах свои догадки о природе стресса у людей, что не удивительно, учитывая, насколько похожи приматы на людей в своих биологических и психологических реакциях. Собственно, и себя самого Сапольски не отделяет от своих подопечных — подопытных животных, что очевидно уже из названия книги. И это придает повествованию особое обаяние и мощь. Вместе с автором, давшим своим любимцам библейские имена, мы узнаем об их жизни, страданиях, любви, соперничестве, борьбе за власть, болезнях и смерти. Не менее яркие персонажи книги — местные жители: фермеры, егеря, мелкие начальники и простые работяги. За два десятилетия в Африке Сапольски переживает и собственные опасные приключения, и трагедии друзей, и смены политических режимов — и пишет об этом так, что чувствуешь себя почти участником событий.

Роберт Сапольски

Биографии и Мемуары / Научная литература / Прочая научная литература / Образование и наука

Похожие книги

Норвежский лес
Норвежский лес

…по вечерам я продавал пластинки. А в промежутках рассеянно наблюдал за публикой, проходившей перед витриной. Семьи, парочки, пьяные, якудзы, оживленные девицы в мини-юбках, парни с битницкими бородками, хостессы из баров и другие непонятные люди. Стоило поставить рок, как у магазина собрались хиппи и бездельники – некоторые пританцовывали, кто-то нюхал растворитель, кто-то просто сидел на асфальте. Я вообще перестал понимать, что к чему. «Что же это такое? – думал я. – Что все они хотят сказать?»…Роман классика современной японской литературы Харуки Мураками «Норвежский лес», принесший автору поистине всемирную известность.

Ларс Миттинг , Харуки Мураками

Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература / Проза / Современная русская и зарубежная проза / Современная проза