Математическое введение в декларативное программирование. Зюзысов В.М. - 6 стр.

UptoLike

Составители: 

понятий и явлений природной области задачи. Чем более адекватно можно выполнить это
отображение, тем выше уровень языка программирования.
Декларативное программирование требует высокого уровня абстрагирования. Но
повышение уровня абстрагирования необходимое требование для программиста. Эдсгер
Дейкстра (Edsger Dijkstra) [3] подчеркивал, что программист должен обладать умением
абстрагировать: «Язык программированияэто лишь средство описания абстрактных
конструкций. Программист должен иметь способность полностью абстрагироваться от
несущественных деталей, думая на нескольких уровнях абстракции одновременно».
Декларативные языки при классификации по степени абстракции от аппаратуры
относятся к языкам сверхвысокого уровня. Команды исполняются на полностью абстракт-
ной машине, полностью скрыт доступ к памяти, и возможно скрыть поток управления.
Концептуальная целостность языкахарактеризуется свойствами совокупности
понятий, служащих для описания этого языка и включает три взаимосвязанных аспекта.
Экономия понятийязык должен достигать своей максимальной мощности мини-
мальным количеством понятий.
Ортогональность понятиймежду понятиями не должно быть взаимного влияния.
Если понятие используется в различных контекстах, то правило его использования
должно быть одним и тем же.
Единообразие понятий требование согласованного единого подхода к описанию и
использованию всех понятий.
Декларативные языки являются, как правило, концептуально целостными. Язык Haskell в
этом отношении является стандартом.
О неортогональности понятий даже самых лучших языков
К сожалению, даже такие языки, как Паскаль, допускают неортогональные конструкции.
Например, пользователь может определить процедуры только с фиксированным числом
параметров, однако некоторые стандартные процедуры (например, write) могут быть вы-
званы с переменным числом параметров.
Очень важны для применения языка следующие характеристики:
Надежностьязык должен обеспечивать минимум ошибок при написании программ.
Более того, язык должен быть таким, чтобы неправильные программы было трудно
писать.
Удобочитаемость легкость восприятия программ человеком. Эта характеристика
особенно важна при коллективной работе, когда несколько человек работают с одними
и теми же текстами программ.
Полнота характеризует способность описать класс задач в некоторой предметной
области.
Гибкостьхарактеризует легкость выражения необходимых действий.
Ниже будет показано, что современные чистые функциональные языки обладают всеми
вышеперечисленными характеристиками.
Международные организации, занимающие стандартизацией, ACM (The
Association for Computing Machinery) и IEEE (Institute of Electrical and Electronic Engineers)
рекомендуют в учебных программах по программированию значительное место отводить
изучению различных парадигм программирования, в том числе и изучению декларативно-
го программирования.
6