Сферы употребления моделей

У каждой из трех описанных моделей есть свои сильные и слабые стороны. Декларативная модель наиболее близка к семантике логики предикатов, что делает Пролог эффективным языком для представления знаний.

Однако в декларативной модели нельзя адекватно представить те фразы, в которых важен порядок следования подцелей. Ярким примером такой ситуации может служить фраза, которая вызывает выходные побочные эффекты, скажем, вывод в определенном порядке сообщений на экран дисплея. Для пояснения смысла фраз такого рода необходимо воспользоваться процедурной моделью.

Но даже процедурная модель не годится для разъяснения смысла фраз, вызывающих побочные эффект управления, такие как остановка выполнения запроса или удаление фразы из программы. Смысл таких фраз можно объяснить только с помощью модели в виде абстрактной машины. Модель в виде абстрактной машины является наиболее точной из трех описанных моделей, но она является и наиболее зависимой от реализации языка.

Процедурная и декларативная модели рассматриваются в гл. 1. Модель в виде абстрактной машины обсуждается в гл. 3. В гл. 4 рассказывается о том, как эти три семантические модели могут влиять на практику программирования.

0.11. Метаязык / объектный язык Функции метаязыка

При изучении логики обычно используется некоторый формальный язык. Ранее в данной главе были рассмотрены два таких языка — логика высказываний и логика предикатов. В предыдущем разделе отмечалось, что Пролог тоже является формальным языком, если подходить к нему с позиций декларативной семантической модели. Для того чтобы обсуждать свойства формального языка, необходимо воспользоваться языком, отличным от этого формального языка. Принято называть формальный язык объектным языком, а язык, применяемый при рассмотрении формального языка, — метаязыком (см. разд. 0. 4).

Метаязык выполняет две функции — аналитическую и предписывающую. Аналитическая функция метаязыка заключается в том, чтобы дать характеристику предложениям объектного языка с помощью таких свойств, как тавтология или противоречие. Она позволяет также охарактеризовать теории объектного языка и сам объектный язык при помощи таких свойств, как полнота и последовательность. Три закона логики (см. табл. 0. 1) - это предложения метаязыка, описывающие природу объектного языка.

Предписывающая функция метаязыка состоит в том, чтобы установить истинностные значения предложений объектного языка, не являющихся ни тавтологией, ни противоречием. (Если предложение объектного языка не является ни тавтологией, ни противоречием, то его значение истинности нельзя установить на основе правил одного лишь объектного языка.) Метаязык дает возможность судить об истинностном значении предложения объектного языка на основании сведений, содержащихся в источниках знаний, которые не принадлежат к объектному языку, т. е. на основании интуиции, здравого смысла или знаний о прикладной области. В этом смысле метаязык позволяет вводить аксиомы теории, описывающие структуру некоторой прикладной области. Сходным образом добавление новой фразы в Пролог-программу является функцией метаязыка.

Синтаксическая связь между объектным языком и метаязыком

В логике предикатов атомарная формула — это самая простая конструкция, обладающая истинностным значением. Атомарная формула состоит из обозначения предиката и некоторого количества термов, среди которых ни один не может самостоятельно обладать значением истинности. Если предложение метаязыка описывает свойство предложения объектного языка, то между этими двумя предложениями будет существовать важная синтаксическая связь: предложение объектного языка служит термом предложения метаязыка, т. е. синтаксическим объектом, который не может обладать истинностным значением. Рассмотрим следующее предложение метаязыка:

Р (а, b) доказуемо.

В этом примере "доказуемо" является предикатом метаязыка, а предложение объектного языка Р (а, b) служит аргументом данного предиката. Сам по себе терм Р (а, b) не обладает значением истинности. Истинностное значение этого терма определяется тем предложением метаязыка, в состав которого он входит. Метаязык обязательно содержит предикаты (к примеру "доказуемо"), не являющиеся частью объектного языка.

Соседние файлы в папке Гл.0,1,2,3,4,5,Предисловие