Подобные эксперименты свидетельствуют о том, что человеческий мозг использует как минимум четыре основных формата репрезентаций. Один из форматов – визуальный образ: это что-то вроде шаблона в виде двухмерной мозаики. (О визуальных образах будет подробнее рассказано в главе 4.) Второй – это фонологическая репрезентация, последовательность слогов, которые мы проигрываем в голове, как петлю магнитной ленты, планируя движения рта и представляя, как будут звучать слоги. Такая линейная репрезентация – важный компонент нашей краткосрочной памяти: например, найдя в справочнике нужный телефонный номер, мы повторяем его про себя, пока не наберем его на телефоне. Фонологическая краткосрочная память может удерживать от четырех до семи «кусков» информации в течение времени от одной до пяти секунд. (Краткосрочная память измеряется «кусками», а не звуками, потому что каждый из таких «кусков» может быть ярлыком, указывающим на более крупную структуру информации в долгосрочной памяти – такую, как содержание целой фразы или предложения.) Третий формат – это грамматическая репрезентация: существительные и глаголы, фразы и предложения, основы и корни, фонемы и слоги – все это образует иерархические структуры. В книге «Язык как инстинкт» я объясняю, каким образом эти репрезентации предопределяют, из чего будет состоять предложение, и как люди общаются и играют с языком
[92].
Четвертый формат – это мыслекод, язык мыслей, которым формулируются наши концептуальные знания. Отложив в сторону книгу, вы забываете практически все про то, какие в ней были фразы, каким шрифтом были напечатаны предложения и как они были расположены на странице, а запоминаете только их содержание, основную суть. (Участники тестов на память уверенно «узнают» предложения, которые они никогда не видели, если они представляют собой перифразы предложений, которые они действительно видели.) Мыслекод – это язык-посредник, которым выражается содержание или суть; некоторые элементы мыслекода я уже приводил, когда говорил о «доске объявлений» продукционной системы и об уровнях «знания» и «концептах» в семантической сети (см. схему на с. 102). Мыслекод – это лингва-франка нашего мышления, поток информации между ментальными модулями, позволяющий нам описывать то, что мы видим, представлять то, что нам рассказывают, выполнять указания, и т. д.
[93] Этот информационный поток отражает и анатомия мозга. Гиппокамп и связанные с ним структуры, помещающие наши воспоминания в долгосрочную память, и лобные доли мозга, в которых размещаются зоны принятия решений, не связаны напрямую с зонами мозга, обрабатывающими входные сигналы от органов чувств (мозаику цветов и цветовых переходов, ленту изменения высоты звука). По большинству подводящих волокон к ним подается то, что нейробиологи называют данными «с высокой степенью переработки»; он поступает из областей, расположенных на один-два уровня ниже зон первоначального сенсорного восприятия. Эта входная информация состоит из кодов, соответствующих объектам, словам и другим сложным концептам
[94].
* * *
Зачем нам столько разных видов репрезентаций? Не проще было бы мозгу оперировать чем-то вроде языка эсперанто? На самом деле, это было бы ужасно сложно. Модульная организация ментального «программного обеспечения», предусматривающая пакетирование разных типов данных в отдельные форматы, – отличный пример того, как эволюция и инженерная мысль приходят к одинаковым решениям. Брайан Керниган, настоящий знаток программирования, написал в соавторстве с П.Ж.Плоджером книгу под названием «Элементы стиля программирования», в названии которой обыгрывается заголовок известного учебника Странка и Уайта по писательскому мастерству «Элементы стиля»
[95]. Авторы дают советы относительно того, что нужно, чтобы программа отличалась высокой производительностью, эффективностью работы и способностью правильно развиваться. Один из их главных принципов – «Заменяйте повторяющиеся выражения обращениями к функциям». К примеру, если программа должна вычислить площадь трех треугольников, для этого ей не нужно иметь три разные команды, в каждой из которых содержится отдельная копия формулы вычисления площади треугольника с координатами одного из треугольников. Вместо этого формула должна быть указана в программе один раз. Должна быть функция «вычисление площади треугольника» и слоты X, Y и Z, которые могут заполняться любъини координатами треугольника. Эта функция может использоваться трижды, при этом слоты X, Y и Z будут заполняться координатами, полученными из вводных данных. Описанный принцип устройства приобретает еще большую значимость, когда функция превращается из линейной формулы в многоступенчатую подпрограмму; на этом принципе основаны следующие ниже взаимосвязанные максимы, которым, кажется, следовал и естественный отбор, когда создавал наше модульное, многоформатное мышление:
Разбивайте программу на модули.
Используйте подпрограммы.
Каждый модуль должен выполнять одну функцию, но хорошо.
Убедитесь в том, что в каждом модуле что-то локализовано.
Ввод и вывод выделяйте в подпрограммы.
Второй принцип отражен в следующей максиме:
Выбирайте такое представление данных, которое упрощает программу
[96].
Керниган и Плоджер приводят пример программы, которая считывает строку текста, а потом должна распечатать ее с выравниванием по центру. Строка текста может храниться в разных форматах (как последовательность знаков, как список координат и т. д.), но только один из форматов делает центрирование по-настоящему простой задачей: выделение в памяти восьмидесяти последовательных слотов, отражающих восемьдесят возможных положений символа на дисплее ввода-вывода. В этом случае центрирование может быть безошибочно выполнено в несколько шагов для входных данных любого объема; при использовании любого другого формата потребуется гораздо более сложная программа. Предположительно, разные форматы репрезентации, используемые человеческим мозгом, – изображения, фонологические петли, иерархические структуры, мыслекод – сформировались в процессе эволюции потому, что они позволяют простым программам (глупым демонам или гомункулам) получать полезные для них результаты.
А если вас привлекает интеллектуальная стратосфера, в которой объединены «сложные системы» всех типов, вас, вероятно, заинтересует аргумент Герберта Саймона о том, что модульная структура компьютера и мозга – это лишь частный случай модульной, иерархической организации всех сложных систем. Тела состоят из тканей, сделанных из клеток, состоящих из органелл; вооруженные силы включают в себя армии, каждая из которых состоит из дивизий, разделенных на батальоны, состоящие из взводов; книги состоят из глав, разделенных на части, разделы, абзацы и предложения; империи состоят из стран, областей и территорий. Эти «почти разложимые» системы определяются масштабными взаимодействиями между элементами одного и того же компонента и менее многочисленными взаимодействиями между элементами разных компонентов. Сложные системы представляют собой иерархии модулей, потому что только элементы, увязанные друг с другом в пределах одного модуля, могут оставаться стабильными достаточно долго, чтобы монтироваться в более крупные и еще более крупные модули
[97]. Саймон приводит аналогию с двумя часовщиками, которых звали Хора и Темпус: