Задачи по разделам курса
2.3.19. Построить КС-грамматики для следующих языков:
2.3.20. Определить КС-грамматики, которые порождали бы следующие языки:
1) все строки - элементы множества {0, 1}* такие, что в каждой из них непосредственно справа от каждого символа 0 стоит символ 1.
2) все строки - элементы множества {0, 1}* такие, что результаты чтения этих строк слева направо и справа налево совпадают;
3) все строки - элементы множества {0, 1}*, которые содержат символов 0 вдвое больше, чем символов 1 ;
4) все строки - элементы множества {0, 1}*, которые имеют одинаковое число символов 0 и 1 ;
5) все строки - элементы множества {0, 1}*, которые имеют четное число символов 0 и нечетное число символов 1 ;
6) все строки - элементы множества {0, 1}*, в которых скобки расставлены правильно.
2.3.21. Построить КС-грамматики, порождающие языки:
2.3.22. Построить КС-грамматику, порождающую язык
2.3.23. Построить НС-грамматики для следующих языков:
а) (Винегрет)
б) (Винегрет 2)
в) {anpnrn} : n >=; 1} (Три мушкетeра)
г) {ambnambn : m, n >= 1} (Две калоши)
д) {a2mbnamb5n : m, n >= 1} (Калоши 2)
е) {ambnck : m >= n >= k >= 1} (Горка)
ж) {ambnck : 2m >= 3n >= k >= 1} (Горка 2)
з) (Бог любит троицу)
и)
к) (Квадратные числа)
л)
м) (Дама с собачкой)
н)
о) {an : n = 1, 2, 3, 5, 8, 13, ...} (Числа Фиббоначи)
п) {an : n = 1, 3, 6, 10, 15, ...} (Треугольные числа, an = n(n + 1)/2 )
р) {an : n = 1, 5, 12, 22, ...} (Пятиугольные числа, an = n + 3n(n - 1)/2. Пятиугольное число может быть разбито на три треугольных + n точек)
с) (Два лебедя)
т) (Кубические числа)
у)
ф) {an : n = 1, 2, 6, 24, ... , k!} (Факториал)
х) {012...0n-11n0n-1...120|n >= 1} (Пирамида Хеопса)
ч) {012...0n-11n1n0n-1...120|n >= 1} (Пирамиды майя)
ш)
щ) (Для студентов с исследовательской жилкой).
2.3.24. Построить КС-грамматики, порождающие языки
2.3.25. Пусть G - грамматика с правилами:
Показать, что .
2.3.26. Построить грамматику, порождающую данный язык:
{ancbnancbn|n > 0}:
2.3.27. Построить регулярную грамматику, порождающую цепочки в алфавите (a, b), в котором символ a не встречается два раза подряд.
2.3.28. Построить грамматику, порождающую сбалансированные относительно круглых скобок цепочки в алфавите . Сбалансированную цепочку определим реккурентно: цепочка сбалансирована, если:
а) не содержит скобок,
б) или , где и сбалансированы.
2.3.29 Показать, что наличие в КС-грамматике правил вида
а) б) , где , , (VN VT)*; A VN, делает еe неоднозначной. Можно ли преобразовать эти правила таким образом, чтобы полученная эквивалентная грамматика была однозначной?
2.3.30. Показать, что грамматика G неоднозначна.
G : S -> abC|aB B -> bc; bC -> bc
2.3.31. Дана КС-грамматика G = (VT, VN, P, S). Предложить алгоритм построения множества
2.3.32. Для произвольной КС-грамматики G предложить алгоритм, определяющий, пуст ли язык L(G).
2.3.33. Одинаковые ли языки порождают грамматики из а), б), в)?
2.3.34. Эквивалентны ли грамматики с правилами
2.3.35. Эквивалентны ли грамматики с правилами
A -> AB; B -> bC; A -> aAc|Sa; C -> c|Ca. и S -> As|Bc; B -> Ac|cS; A -> Bd; C -> c.