ГЕДЕЛЬ, ЭШЕР, БАХ: эта бесконечная гирлянда.

Компьютерные системы.

Существует еще одно место, где многие уровни описания сосуществуют в единой системе и все уровни концептуально близки один к другому. Я имею в виду компьютерные системы. Работающую компьютерную программу можно рассматривать на нескольких уровнях. На каждом уровне описание дается на языке вычислительных машин, что делает все описания в какой-то мере схожими — в то же время между нашим восприятием разных уровней есть крайне важные различия. На низшем уровне описание настолько сложно, что его можно сравнить с описанием образа на экране телевизора в виде набора точек; однако для определенных целей нужен именно такой взгляд на вещи. На высшем уровне описание представлено в форме крупных блоков и воспринимается совершенно по-другому, несмотря на то, что многие понятия повторяются как на низшем так и на высшем уровнях. Блоки описания на высшем уровне можно сравнить с блоками шахматного мастера и с блочным описанием образа на экране: они суммируют в сжатой форме те вещи, которые на низших уровнях представлены как отдельные. (См. рис. 57.).

Компьютерные системы. ГЛАВА X: Уровни описания и компьютерные системы. Часть II. ГЕДЕЛЬ, ЭШЕР, БАХ: эта бесконечная гирлянда.

Рис. 57. Идея «укрупнения» группа предметов воспринимается как единый «блок» Граница этого блока работает как клеточная мембрана или национальная граница, она устанавливает индивидуальность группы предметов внутри нее. В зависимости от контекста, внутренняя структура блока может приниматься во внимание или игнорироваться.

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

В основании компьютерной системы находится память, центральный процессор (ЦП), и некоторые вводно-выводные устройства. Сначала давайте опишем память. Она состоит из отдельных физических единиц, называемых словами. Для конкретности скажем что в памяти есть 65 536 слов (это типичное число — 2 в 16-ой степени). Слово далее подразделяется на то что мы будем считать атомами информатики — биты. В типичном слове — около тридцати шести битов. Физически бит представляет собой магнитный «выключатель» который может быть в одном из двух положений.

00X0XXX0X00XX00X0XXXXXX0XX00XXX0000.

— Слово из 36 битов —

Вы можете называть эти положения «вверх» и «вниз», или «x» и «o», или «1» и «0». Последнее — общепринятое название, оно вполне адекватно, но может запутать читателя, заставив его думать, что на самом деле в памяти компьютера хранятся числа. Это неверно. У нас столько же оснований думать о наборе из тридцати шести битов, как о числе, как и считать, что два четвертака — это цена мороженого. Так же, как деньги могут быть использованы по-разному так и слово в памяти может выполнять разные функции. Строго говоря, иногда эти тридцать шесть битов действительно могут представлять число в двоичной записи. В другой раз они могут представлять тридцать шесть точек на экране телевизора, или же несколько букв текста. Наша интерпретация слова в памяти целиком зависит от той роли, которую это слово играет в использующей его программе. Разумеется, оно может играть несколько ролей — как нота в каноне.