Размер шрифта
-
+

Как работает мозг - стр. 84

.



Зачем нам столько разных видов репрезентаций? Не проще было бы мозгу оперировать чем-то вроде языка эсперанто? На самом деле, это было бы ужасно сложно. Модульная организация ментального «программного обеспечения», предусматривающая пакетирование разных типов данных в отдельные форматы, – отличный пример того, как эволюция и инженерная мысль приходят к одинаковым решениям. Брайан Керниган, настоящий знаток программирования, написал в соавторстве с П.Ж.Плоджером книгу под названием «Элементы стиля программирования», в названии которой обыгрывается заголовок известного учебника Странка и Уайта по писательскому мастерству «Элементы стиля»>87. Авторы дают советы относительно того, что нужно, чтобы программа отличалась высокой производительностью, эффективностью работы и способностью правильно развиваться. Один из их главных принципов – «Заменяйте повторяющиеся выражения обращениями к функциям». К примеру, если программа должна вычислить площадь трех треугольников, для этого ей не нужно иметь три разные команды, в каждой из которых содержится отдельная копия формулы вычисления площади треугольника с координатами одного из треугольников. Вместо этого формула должна быть указана в программе один раз. Должна быть функция «вычисление площади треугольника» и слоты X, Y и Z, которые могут заполняться любъини координатами треугольника. Эта функция может использоваться трижды, при этом слоты X, Y и Z будут заполняться координатами, полученными из вводных данных. Описанный принцип устройства приобретает еще большую значимость, когда функция превращается из линейной формулы в многоступенчатую подпрограмму; на этом принципе основаны следующие ниже взаимосвязанные максимы, которым, кажется, следовал и естественный отбор, когда создавал наше модульное, многоформатное мышление:

Разбивайте программу на модули.

Используйте подпрограммы.

Каждый модуль должен выполнять одну функцию, но хорошо.

Убедитесь в том, что в каждом модуле что-то локализовано.

Ввод и вывод выделяйте в подпрограммы.


Второй принцип отражен в следующей максиме:


Выбирайте такое представление данных, которое упрощает программу[9].

Керниган и Плоджер приводят пример программы, которая считывает строку текста, а потом должна распечатать ее с выравниванием по центру. Строка текста может храниться в разных форматах (как последовательность знаков, как список координат и т. д.), но только один из форматов делает центрирование по-настоящему простой задачей: выделение в памяти восьмидесяти последовательных слотов, отражающих восемьдесят возможных положений символа на дисплее ввода-вывода. В этом случае центрирование может быть безошибочно выполнено в несколько шагов для входных данных любого объема; при использовании любого другого формата потребуется гораздо более сложная программа. Предположительно, разные форматы репрезентации, используемые человеческим мозгом, – изображения, фонологические петли, иерархические структуры, мыслекод – сформировались в процессе эволюции потому, что они позволяют простым программам (глупым демонам или гомункулам) получать полезные для них результаты.

Страница 84