На этом шаге мы рассмотрим понятие прагматики.
Применительно к знаковым системам, в частности к языкам программирования, говорят об их синтаксисе - правилах образования сообщений, семантике - правилах истолкования сообщения тем, кому оно адресовано, и прагматике, сопоставляющей сообщения целям и намерениям того, от кого они исходят.
Заглянем в толковые словари [1-4].
Прагматика (от греч. pragma, pragmatos - дело, действие) -
Прагматика языка программирования - это, по сути дела, методология программирования, т.е. описание методов и приемов, позволяющих, исходя из постановки задачи составить программу ее решения. Некоторые семантически правильные программы могут оказаться прагматически совершенно неприемлемыми.
Некоторые задачи, хотя и формулируются крайне просто, не имеют никакого алгоритма для их решения. Такова, например, задача: проверить, является ли любая данная программа семантически правильной. Задачи этого рода называются алгоритмически неразрешимыми.
Из-за существования алгоритмически неразрешимых задач предмет прагматики становится несколько расплывчатым и неопределенным - нельзя в общем случае дать никаких рекомендаций, которые от постановки задачи гарантированно приводили бы к ее решению. Кроме того, из-за разнообразия задач, решаемых с помощью компьютера, те рекомендации, которые могут быть даны, либо носят чересчур общий характер, либо, наоборот, слишком конкретны, относятся к узкому классу задач. Теория программирования, хотя и может гордиться рядом значительных достижений, ориентирована больше на разработчиков алгоритмических языков и программного обеспечения ЭВМ, чем на пользователей. Многие ее рекомендации представляют собой лишь постановки задач, решение которых потребует еще многих лет труда системных программистов, если вообще когда-либо будет достигнуто. Поэтому большую роль в овладении навыками составления программ играет разбор примеров разной степени сложности из разных классов задач.
Ввиду такого положения с прагматикой большее внимание при описании языков программирования уделяется их синтаксису и семантике [5, с.4-7; 6, с.76-77].
Учитывая сказанное, в последующих шагах мы рассмотрим применение языка LISP к решению разнообразных проблем из области программирования.
Со следующего шага мы начнем рассматривать примеры программ на языке LISP.