Статья 2271

Без абстракций высокого уровня ни одну программу не смог бы до конца понять даже ее создатель.
Для точного описания абстрактных структур данных и алгоритмов программы требуется такая система формальных обозначений, чтобы смысл всякого законного предложения определялся точно и однозначно. Соответствующие системы обозначений стали называться языками. Этот термин, однако, вводит в заблуждение, поскольку процесс программирования только на первый взгляд похож на сочинительство. Мне кажется, лучше представлять программирование как деятельность по конструированию новой машины с помощью существующей универсальной машины. Конструкция описывается теми средствами, которые предоставляет принятая система обозначений, подобно тому, как при проектировании электронной схемы рисуют значки основных элементов цепей и их соединений. Если смотреть на программирование как на проектирование машины, то необходимость в точных формулировках становится еще более очевидной.