nextupprevious

Next:5.15 Логическая формула
Up:5 Выбор представления данных
Previous:5.13 Грамматика


5.14 Автоматная диаграмма

Для в н е ш н е г о представления вершины автоматной диаграммы (будем называть их состояниями) можно кодировать натуральными числами:

автоматная-диаграмма::= количество-состояний пробел
       начальное-состояние пробел конечное-состояние пробел {переход}*
переход::= состояние пробел буква пробел состояние пробел
состояние ::= натуральное число
начальное-состояние::= состояние
конечное-состояние::= состояние

Абстрактный тип АВТОМАТ со следующим набором операций:

НачальноеСостояние(АВТОМАТ):СОСТОЯНИЕ;
КонечноеСостояние(АВТОМАТ):СОСТОЯНИЕ;
НовоеСостояние(АВТОМАТ,СОСТОЯНИЕ,СИМВОЛ):СОСТОЯНИЕ;

Мы снова не приводим возможно необходимые процедуры для перестройки диаграмм.

Естественным в н у т р е н н и м представлением автоматной диаграммы на языке Zonnon будет следующее:

const N=20;  (*Мощность алфавита состояний *)
         M=33;  (*Мощность входного алфавита *)
type СОСТОЯНИЕ=integer; СИМВОЛ=char;
        ФункПереход = array N, M of СОСТОЯНИЕ;
object { public, value } АВТОМАТ;
var { public} Начальное,Конечное: СОСТОЯНИЕ;
    Переход:ФункПереход;
end АВТОМАТ;
procedure НачальноеСостояние(var A: АВТОМАТ):СОСТОЯНИЕ;
        begin НачальноеСостояние:= A.Начальное end;
procedure КонечноеСостояние(var A: АВТОМАТ):СОСТОЯНИЕ;
        begin КонечноеСостояние:= A.Конечное end;
procedure НовоеСостояние(var A: АВТОМАТ; S:СОСТОЯНИЕ; C:СИМВОЛ):СОСТОЯНИЕ;
        begin НовоеСостояние := А.Переход[S,C] end;
 

Next:5.15 Логическая формула
Up:5 Выбор представления данных
Previous:5.13 Грамматика



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