Cтраница 4
Ввиду важной роли, которую играет использование функций высших порядков стиль программирования применяемый для таких языков, называется функциональным программированием. Эти программы все еще аппликативны и основаны на аппликации и композиции функций как и в случае ламбда-исчисления. Оба стиля программирования поддерживают референциальную прозрачность, т.е. переменная или выражение в данной области действия всегда имеет одно и то же значение. [46]
На примере формулировок пошаговых алгоритмов логический программист имеет возможность сравнить стили программирования сверху вниз и снизу вверх. [47]
В настоящий момент большинство средств самоконтроля требует от программиста перемены стиля программирования. Необходимо отметить, что средства структурного программирования обладают некоторыми формами избыточности, что приводит к увеличению надежности программ. Автоматизация размещения и удаления средств проверки в программе будет чрезвычайно полезной. Не рее средства самоконтроля можно автоматизировать, хотя некоторые из них, например информирование о последовательности выполнения, легко поддаются автоматизации. Оценка стоимостной эффективности этих средств поможет выбрать наиболее приемлемые из них для аппаратной реализации. [48]
Но, к сожалению, более чем 25-летний опыт совершенствования стиля программирования на LISP не востребуется разработчиками новых языков и инструментальных сред. Для меня, например, остается загадкой, что же представляет собой хороший стиль программирования по отношению к языку ( и среде) КЕЕ. Мне приходилось наблюдать, как инженеры по знаниям, много лет проработавшие с языками структурного программирования, буквально падали в обморок от мешанины подключения процедур, комбинированных методов и активных значений в КЕЕ-программах. Это не следует рассматривать как серьезную критику в адрес функциональных возможностей языка, а скорее как констатацию того факта, что любые сложные инструментальные средства нуждаются в адекватной методологии пользования ими. [49]
Выделим основные подходы к описанию функционирования дискретных систем, иногда называемые стилями программирования. Выбор стиля программирования во многом определяется наклонностями и опытом разработчиков, но надо иметь в виду, что часто стиль существенно влияет на порождаемую системой автоматизированного проектирования реализацию. [50]
Ламбда-исчисление и Пролог основаны на рекурсии, поэтому есть некоторое сходство в стиле программирования. Основное отличие в том, что в ламбда-исчислении значение функции определяется в виде выражения, а на Прологе это выражение задается в виде терма, являющегося одним из аргументов предиката. [51]