nextupprevious

Next:5.16 Логический фрагмент
Up:5 Выбор представления данных
Previous:5.14 Автоматная диаграмма


5.15 Логическая формула

В н е ш н е е представление для логических формул, дизъюнктивных нормальных форм, расширенных формул, а также для простых выражений, линейных и простых программ, полиномов, формулировок и списков геометрических фигур полностью описано в словаре (§ 2) с помощью синтаксических правил.

Во многих задачах понадобится в н у т р е н н е е представление формул, отличное от их внешнего представления.

Абстрактный тип: ФОРМУЛА. Набор функций:

Класс (ФОРМУЛА): (КОНСТАНТА,ПЕРЕМЕННАЯ,УНАРНАЯ,БИНАРНАЯ);
Значение (ФОРМУЛА):Boolean; (*для формул констант*)
Буква (ФОРМУЛА):Char; (*буква переменной для формулы-переменной*)
Отрицаемое(ФОРМУЛА):ФОРМУЛА; (*для унарных формул*)
ЛевОперанд(ФОРМУЛА):ФОРМУЛА; (*для бинарных формул*)
ПравОперанд(ФОРМУЛА):ФОРМУЛА; (*для бинарных формул*)
Операция(ФОРМУЛА):(И, ИЛИ); (*для бинарных формул*)

Набор процедур изменения формул в их внутреннем представлении мы снова здесь не приводим. Реализацией этого абстрактного типа на языке Zonnon может служить

type CLASS=(КОНСТАНТА,ПЕРЕМЕННАЯ,УНАРНАЯ,БИНАРНАЯ);
        ОПЕРАЦ=(И,ИЛИ);
object { public, ref } ФОРМУЛА;
var КЛ:CLASS;
       ЗНАЧ:Boolean;
       БУК:Char;
       ОПЕРАНД:ФОРМУЛА;
       ОПЕР:ОПЕРАЦ; ЛЕВ, ПРАВ:ФОРМУЛА;
(* Здесь находяться описания методов данного объекта *)
end ФОРМУЛА;

Например, существенные части внутреннего представления формулы NOT (X AND TRUE) как сцепление объектов ФОРМУЛА показано на рис. 25. Реализация упомянутого выше набора функций для такого представления формулы на языке Zonnon очевидна.

Рис..25. Cущественные части внутреннего представления формулы NOT (X AND TRUE)

Next:5.16 Логический фрагмент
Up:5 Выбор представления данных
Previous:5.14 Автоматная диаграмма


© В.Н. Касьянов, Е.В.Касьянова, 2004