Возможности вычислительных машин и человеческий разум

         

Глава 3. Как работают вычислительные машины - стр. 32


Программист может написать на ассемблере либо

GET а

ADD b

MPY c

STO d

что означает умножение с на сумму а и b и запоминание результата в а, либо

GET b

MPY с

ADD a

STO d

что означает сложение а с произведением b и с и запоминание соответствующей суммы в d. Высказывание на языке более высокого уровня, т.е. d=a+b*с, может иметь только одну интерпретацию, которая должна быть определена особенностями конструкции транслятора, следовательно, разработчиком языка. Естественно, это неэквивалентно утверждению, что экспрессия [Прим. перев.: Экспрессия (лингв.) - выразительно-изобразительные качества речи, отличающие ее от обычной (или стилистически нейтральной) и придающие ей образность и эмоциональную окраску] языка высшего уровня неизбежно ограничена. Язык может, например, допускать две различные интерпретации, представляемые выражениями d=(a+b)*с и d=a+(b*с) соответственно.

Проблема, хотя этот чрезвычайно простой пример лишь едва затрагивает ее, заключается не В том, какие процедуры поддаются представлению на языке высшего уровня (большинство подобных языков на самом деле универсальны в тьюринговском смысле), а в том, какой стиль программирования определяет язык. Эйбрахам Маслоу, психолог, заметил как-то: "Человеку, не имеющему ничего, кроме молотка, весь мир кажется гвоздем". Язык - это тоже своего рода инструмент, и он тоже, в действительности очень сильно, определяет то, каким представляется мир носителю языка.

Программист-одиночка, пишущий программу для решения задачи, сугубо относящейся к его конкретной исследовательской проблеме, мало заботится о том, каким образом его программа могла бы структурировать чье бы то ни было, кроме его собственного, представление о мире. Языки высшего уровня, однако, в двух очень важных отношениях предназначены в чрезвычайно значительной степени для роли языков общественных: для использования очень многими программистами в качестве языков, с помощью которых они программируют свои машины, а также в качестве языков, с помощью которых авторы могут представлять друг другу созданные ими процедуры.


Содержание  Назад  Вперед