Пусть регулярный язык задан своим описанием:
Множество всех цепочек из {0,1,a}*, заканчивающихся цепочкой ’aa’ и имеющих длину, кратную трём. Например, ‘aaa’, ‘0aa’, ‘1aa’, ‘0a01aa’ и т.п.
Построить регулярное выражение, задающее этот язык.
Решение:
Минимально возможные цепочки языка: ‘0aa’, ‘1aa’, ‘aaa’.
Т.е. основа регулярного выражения (0+1+a)aa. Для увеличения длины слова можно добавлять нулевое, либо кратное 3м количество любых символов из {0,1,a}, т.е ((0+1+a)(0+1+a)(0+1+a))*.
Тогда регулярное выражение имеет вид: (0+1+a)((0+1+a) (0+1+a) (0+1+a))*aa.
Читать дальше
Построить КС-грамматику, задающую язык из задачи №1. Сгенерировать две цепочки языка по построенной грамматике. Процесс генерации цепочек языка записать в виде цепочки вывода, указывая номера применённых правил (или сами правила, как показано в примере). Использовать левосторонний или правосторонний вывод.
Читать дальше
Пусть КС-язык задан своим описанием:
L={ }. Например, ‘acc’, ‘abcc’, ‘aacccc’, ‘aabcccc’.
Построить КС-грамматику, задающую этот язык. Допустимо использовать пустые правила. Сгенерировать две цепочки языка по построенной грамматике. Процесс генерации цепочек языка записать в виде цепочки вывода, указывая номера правил.
Читать дальше
Пусть требуется выполнить перевод t цепочек с одного КС-языка на другой:
t = {(x,y) | x = , y= | k>0}. Например: (0111,bb), (0011111,abbbb).
Построить T – схему синтаксически управляемого перевода для выполнения этого t (T). Взять две цепочки исходного языка и выполнить их перевод, процесс перевода выписать в виде выводимых пар цепочек, указывая номера правил.
Читать дальше
Построить преобразователь с магазинной памятью P для выполнения перевода t (P) из задачи №7. Взять две цепочки исходного языка и выполнить их перевод, процесс перевода выписать в виде последовательной смены конфигураций построенного преобразователя, указывая номера правил.
Читать дальше