Шаг 88.
Прагматика языка LISP. Общие положения

    На этом шаге мы рассмотрим понятие прагматики.

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

    Заглянем в толковые словари [1-4].

    Прагматика (от греч.  pragma, pragmatos - дело, действие) -

  1. Отношение символов и групп символов к их интерпретации и использованию.
  2. Раздел семиотики, изучающий отношение использующего знаковую систему (например, язык программирования) к самой знаковой системе; прагматика определяет, каким образом воспринимающая система на основании информации, не заложенной в воспринимаемом выражении, выбирает из множества интерпретаций наиболее подходящую для данного случая. В информатике - оценка и сравнение различных компьютерных языков, программ и систем по критериям полезности, выгодности, эффективности.

    Прагматика языка программирования - это, по сути дела, методология программирования, т.е. описание методов и приемов, позволяющих, исходя из постановки задачи составить программу ее решения. Некоторые семантически правильные программы могут оказаться прагматически совершенно неприемлемыми.

    Некоторые задачи, хотя и формулируются крайне просто, не имеют никакого алгоритма для их решения. Такова, например, задача: проверить, является ли любая данная программа семантически правильной. Задачи этого рода называются алгоритмически неразрешимыми.

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

    Ввиду такого положения с прагматикой большее внимание при описании языков программирования уделяется их синтаксису и семантике [5, с.4-7; 6, с.76-77].

    Учитывая сказанное, в последующих шагах мы рассмотрим применение языка LISP к решению разнообразных проблем из области программирования.

   


(1)Борковский А.Б. Англо-русский словарь по программированию и информатике (с толкованиями). - М.: Русский язык, 1989. - 335 с.
(2)Заморин А.П., Марков А.С. Толковый словарь по вычислительной технике и программированию: Основные термины. - М.: Русский язык, 1988. - 221 с.
(3)Толковый словарь по вычислительным системам / Под ред. В.Иллингуорта, Э.Л.Глейзера, И.К.Пайла. - М.: Машиностроение, 1989. - 568 с.
(4)Першиков В.И., Савинков В.М. Толковый словарь по информатике. - М.: Финансы и статистика, 1991. - 543 с.
(5) Лавров С.С. Основные понятия языков программирования. - М.: Финансы и статистика, 1982. - 80 с.
(6) Бауэр Ф.Л., Гооз Г. Информатика. Вводный курс: В 2-х ч. Ч.1. пер. с нем. - М.: Мир, 1990. - 336 с.; Ч.2. пер. с нем. - М.: Мир, 1990. - 423 с.

    Со следующего шага мы начнем рассматривать примеры программ на языке LISP.




Предыдущий шаг Содержание Следующий шаг