3.4.4 Построение множества ВЫБОР.   Множество ВЫБОР, которое потребуется нам для построения переходов магазинных автоматов,можно определить  с помощью функций ПЕРВ и СЛЕД следующим образом: 1)   Если правило грамматики имеет вид <B> - > a и a не является аннулирующей цепочкой, другими словами не существует вывод a ==>*$, то
  ВЫБОР(<B>  ® a ) = ПЕРВ( a ).  
2)    Для аннулирующих правил грамматики вида <B>  ®$, мно-
жество выбора определяется так
  ВЫБОР(<B>  ® $) = СЛЕД(<B>).  
3)    Если правило грамматики имеет вид <B>  ® µ и µ яв-
ляется аннулирующей цепочкой, то
ВЫБОР(<B>  ® µ) = ПЕРВ(µ) И СЛЕД(<B>).   Для рассматриваемой грамматики Г3.2 множества ВЫБОР для каждого из правил, построенные описанным выше способом, имеют вид: ВЫБОР(<A>  ® <B><C>c) = ПЕРВ(<B><C>c) = {a,b,c,d},
ВЫБОР(<A>  ® g<D><B>) = ПЕРВ(g<D><B>) = {g},
ВЫБОР(<B>  ® $) = ПЕРВ($) И СЛЕД(<B>) = {a,c,d,g,f},
ВЫБОР(<B>  ® b<C><D><E>) = ПЕРВ(b<C><D><E>) = {b},
ВЫБОР(<C>  ® <D>a<B>) = ПЕРВ(<D>a<B>) = {a,d},
ВЫБОР(<C>  ® ca) = ПЕРВ(ca) = {a},
ВЫБОР(<D>  ® $) = ПЕРВ($) И СЛЕД(<D>) = {a,b,c,g,f},
ВЫБОР(<D>  ® d<D>) = ПЕРВ(d<D>) = {d},
ВЫБОР(<E>  ® g<A>f) = ПЕРВ(g<A>f) = {g},
ВЫБОР(<E>  ® c) = ПЕРВ(c) = {c}.
 
Hosted by uCoz