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

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

Инкремент регистра 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 увлекательных и остроумных статей, из которых читатель узнает о проницательности Дарвина, о том, чем голые факты отличаются от научных, о том, почему высадка американцев на Луну все-таки состоялась, отчего умные люди верят в глупости и даже образование их не спасает, и почему вода из-под крана ничуть не хуже той, что в бутылках.Наука, скептицизм, инопланетяне и НЛО, альтернативная медицина, человеческая природа и эволюция – это далеко не весь перечень тем, о которых написал главный американский скептик. Майкл Шермер призывает читателя сохранять рациональный взгляд на мир, учит анализировать факты и скептически относиться ко всему, что кажется очевидным.

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

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

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

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

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

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

12 недель в году
12 недель в году

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

Брайан Моран , Майкл Леннингтон

Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература
1991. Хроника войны в Персидском заливе
1991. Хроника войны в Персидском заливе

Книга американского военного историка Ричарда С. Лаури посвящена операции «Буря в пустыне», которую международная военная коалиция блестяще провела против войск Саддама Хусейна в январе – феврале 1991 г. Этот конфликт стал первой большой войной современности, а ее планирование и проведение по сей день является своего рода эталоном масштабных боевых действий эпохи профессиональных западных армий и новейших военных технологий. Опираясь на многочисленные источники, включая рассказы участников событий, автор подробно и вместе с тем живо описывает боевые действия сторон, причем особое внимание он уделяет наземной фазе войны – наступлению коалиционных войск, приведшему к изгнанию иракских оккупантов из Кувейта и поражению армии Саддама Хусейна.Работа Лаури будет интересна не только специалистам, профессионально изучающим историю «Первой войны в Заливе», но и всем любителям, интересующимся вооруженными конфликтами нашего времени.

Ричард С. Лаури

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

Благодаря этой книге французские мамы и папы блестяще справляются с проблемой, которая волнует родителей во всем мире, – как без труда уложить ребенка 0–4 лет спать. В книге содержатся 100 простых и действенных советов, как раз и навсегда забыть о вечерних капризах, нежелании засыпать, ночных побудках, неспокойном сне, детских кошмарах и многом другом. Всемирно известный психолог, одна из основоположников французской системы воспитания Анн Бакюс считает, что проблемы гораздо проще предотвратить, чем сражаться с ними потом. Достаточно лишь с младенчества прививать малышу нужные привычки и внимательно относиться к тому, как по мере роста меняется характер его сна.

Анн Бакюс

Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература / Детская психология / Образование и наука