На этом шаге мы рассмотрим продукционную парадигму.
Вначале, как всегда, информация из толковых словарей [1-4].
Языки продукционного программирования (Rule-Oriented Programming Languages) - класс декларативных языков программирования, основанных на подходе к программированию, при котором программа задается совокупностью правил (продукций) без явного указания последовательности их применения. Правила содержат либо условие и действия, которые должны быть выполнены в случае истинности этого условия, либо условие и совокупность других условий, достаточных для истинности этого условия.
Д.Грис [5, с.131] пишет: "Продукционный язык - это язык программирования, предназначенный для написания синтаксических распознавателей. Программа в основном состоит из последовательности продукций. Употребление здесь этого слова надо считать довольно неудачным, так как обычно с этим словом связывают другой смысл, обозначая им правила подстановки в грамматике. Эти новые продукции лучше было бы назвать редукциями, так как они (обычно, но не всегда) используются для приведения предложений к начальному символу грамматики. Не станем, однако, изобретать новый термин и будем придерживаться слова "продукция", которое постоянно употребляется в литературе. Продукционный язык обычно входит в состав системы построения трансляторов (т.е. системы, предназначенной для реализации таких программ, как ассемблеры и компиляторы."
В.Н.Агафонов в сборнике [6, с.331] использует термины "система подстановок термов", "редукционная система".
Расскажем об истории развития парадигмы продукционного (редукционного) программирования.
1948 год. Построение А.А.Марковым теории нормальных алгорифмов, изложенной впоследствии в книге "Теория алгорифмов", 1954.
1961 год. Р.Флойд впервые описал продукционный язык в статье "A descriptive language for symbol manipulation", JACM, 8 (Oct. 1961), 579-584.
1964 год. Появление расширенной версии языка SNOBOL.
1968 год. Создание В.Ф.Турчиным языка Рефал [7,8].
На следующем шаге мы остановимся на парадигмах программирования, применяемых в задачах искусственного интеллекта.