
 
51
Замечание. Предполагается, что все условия, образующие входы для одно-го 
состояния,  независимы
43
.  Благодаря  этому  они  могут  вычисляться  в  любом 
порядке,  например  в  том,  в  котором  они  встречаются  на  входе  Условие  в 
управляющей таблице. Однако Default-вход, если он существует, используется в 
последнюю очередь. 
Рассмотрим для примера вычисление 3! В начальном состоянии 1 безуслов-
но  выполняются  действия,  представленные  терминалом Start. Результатом  яв-
ляется образование экземпляра объекта Factorial с полями n =3 и Fac=1. Даль-
нейшая обработка производится в состоянии 2. Из двух условий, определяемых 
таблицей  для  этого  состояния,  не  считая  пустого,  выполняется  условие 
Valid&Large.  Поэтому  исполняются  действия,  ассоциированные  с  терминалом 
Step. Соответствующий метод присваивает полю Fac значение n =3 и уменьша-
ет n на единицу. Теперь поля объекта Factorial имеют следующие значения: n =2, 
а Fac=3.  
Следующие  действия  относятся  к  состоянию 4. Из  двух  условий Small и 
Large  выполняется  последнее.  Следовательно,  вновь  выполняются  действия 
Step, в результате которых Fac получает значение 6, а n — значение 1.  
Снова действия определяются таблицей для состояния 4. Теперь выполняя-
ется  условие Small и  соответственно  исполняются  действия Finish: экземпляр 
объекта Factorial уничтожается, но  перед этим  деструктор FinishDonе  печатает 
результат: "3!=6". Процессирование заканчивается в состоянии 3, являющемся 
конечным.  
1.8.  СПЕЦИФИКАЦИЯ ТРАНСЛЯЦИЙ  
  ПРИ ПОМОЩИ ТРАНСЛЯЦИОННЫХ ГРАФ-СХЕМ 
Трансформационный  подход.  Методика  построения  синтаксически 
управляемых  процессоров,  используемых  в SYNTAX-технологии,  основывает-
ся  на  трансформационном  подходе:  исходная  трансляционная RBNF-
грамматика,  специфицирующая  трансляцию,  подвергается  эквивалентным  пре-
образованиям (в  классе RBNF-грамматик),  затем  трансформируется  в  форму 
трансляционной  граф-схемы  и  уже  по  ней  строится  процессор,  реализующий 
трансляцию. Построенный  процессор,  в  свою  очередь,  может  подвергаться оп-
тимизирующим эквивалентным преобразованиям. Таким образом, в технологии 
используется  три  различных  формы  спецификации  трансляций,  одна  из  ко-
торых (RBNF-грамматика)  удобна  для  первоначального  задания  трансляций, 
другая (процессоры) является формой реализации трансляций, а третья (транс-
ляционные  граф-схемы)  есть  промежуточная  форма  между  двумя  первыми. 
Впрочем, она имеет и самостоятельное значение. В частности, эта форма, анна-
логичная синтаксическим диаграммам Вирта, может использоваться  для опии-
сания  синтаксиса  языков  и  спецификации  трансляций  непосредственно,  тем 
более  что  граф-схемы являются  более  гибким аппаратом  для  задания  трансля-
ций, чем  грамматики
44
. В  технологическом комплексе SYNTAX она  применяя-
ется также при автоматической генерации тестов.   
                                                           
43
 При этом всегда истинное Default-условие в расчет не принимается. 
44
  Действительно,  существуют  граф-схемы,  для  которых  невозможно  построить  прообраз 
управляющей  грамматики,  преобразование  которого  в  граф-схему  давало  бы  оригинальную 
граф-схему.