ГЕДЕЛЬ, ЭШЕР, БАХ: эта бесконечная гирлянда.
Компьютерные системы.
Существует еще одно место, где многие уровни описания сосуществуют в единой системе и все уровни концептуально близки один к другому. Я имею в виду компьютерные системы. Работающую компьютерную программу можно рассматривать на нескольких уровнях. На каждом уровне описание дается на языке вычислительных машин, что делает все описания в какой-то мере схожими — в то же время между нашим восприятием разных уровней есть крайне важные различия. На низшем уровне описание настолько сложно, что его можно сравнить с описанием образа на экране телевизора в виде набора точек; однако для определенных целей нужен именно такой взгляд на вещи. На высшем уровне описание представлено в форме крупных блоков и воспринимается совершенно по-другому, несмотря на то, что многие понятия повторяются как на низшем так и на высшем уровнях. Блоки описания на высшем уровне можно сравнить с блоками шахматного мастера и с блочным описанием образа на экране: они суммируют в сжатой форме те вещи, которые на низших уровнях представлены как отдельные. (См. рис. 57.).
Рис. 57. Идея «укрупнения» группа предметов воспринимается как единый «блок» Граница этого блока работает как клеточная мембрана или национальная граница, она устанавливает индивидуальность группы предметов внутри нее. В зависимости от контекста, внутренняя структура блока может приниматься во внимание или игнорироваться.
Чтобы предмет нашего разговора не стал слишком абстрактным, обратимся к конкретным фактам из области вычислительной техники; для начала бросим взгляд на то, что представляет собой компьютерная система на низшем уровне. Низший уровень? Не совсем, конечно — но я не буду здесь говорить об элементарных частицах, так что для нас это будет низшим уровнем.
В основании компьютерной системы находится память, центральный процессор (ЦП), и некоторые вводно-выводные устройства. Сначала давайте опишем память. Она состоит из отдельных физических единиц, называемых словами. Для конкретности скажем что в памяти есть 65 536 слов (это типичное число — 2 в 16-ой степени). Слово далее подразделяется на то что мы будем считать атомами информатики — биты. В типичном слове — около тридцати шести битов. Физически бит представляет собой магнитный «выключатель» который может быть в одном из двух положений.
00X0XXX0X00XX00X0XXXXXX0XX00XXX0000.
— Слово из 36 битов —
Вы можете называть эти положения «вверх» и «вниз», или «x» и «o», или «1» и «0». Последнее — общепринятое название, оно вполне адекватно, но может запутать читателя, заставив его думать, что на самом деле в памяти компьютера хранятся числа. Это неверно. У нас столько же оснований думать о наборе из тридцати шести битов, как о числе, как и считать, что два четвертака — это цена мороженого. Так же, как деньги могут быть использованы по-разному так и слово в памяти может выполнять разные функции. Строго говоря, иногда эти тридцать шесть битов действительно могут представлять число в двоичной записи. В другой раз они могут представлять тридцать шесть точек на экране телевизора, или же несколько букв текста. Наша интерпретация слова в памяти целиком зависит от той роли, которую это слово играет в использующей его программе. Разумеется, оно может играть несколько ролей — как нота в каноне.