Варіант 1
Побудувати програму на мові SIPL. Перевірити синтаксичну правильність програми , побудувавши її дерево синтаксичного виводу. Побудувати семантичний терм даної програми та застосувати його до певних вхідних даних.
Обчислити x–y, використовуючи функцію віднімання одиниці (–1) (x, y – додатні цілі числа).
Для граматики G=({S, Q, A, B}, {a, b, c}, P, S), де P={S QB, S, QAc, ABa, Bb}, вибрати довільний ланцюжок і побудувати відповідне дерево виводу.
Виконайте еквівалентні перетворення граматики G= ({S, M, К, T}, {@, #, a, b, d}, P, S) де P = {S → S@Td | MTb | К | Sab, M → К#, К → Mab | К#a, T → Sdb | ε} спрямовані на видалення:
ε -правил;
Непродуктивних символів;
Недосяжних символів.
Побудуйте, якщо це можливо, контекстно-вільну граматику, яка контекстно-вільну породжує мову: L(G) = {, n > 0}.
Варіант 2
Побудувати програму на мові SIPL. Перевірити синтаксичну правильність програми , побудувавши її дерево синтаксичного виводу. Побудувати семантичний терм даної програми та застосувати його до певних вхідних даних.
Підрахувати суму чисел від 0 до вказаного числа x (x – додатне ціле число).
Для граматики G=({S, Q, A, B}, {a, b, c}, P, S), де P={S BA, S , BQa, QAb, Aca} вибрати довільний ланцюжок і побудувати відповідне дерево виводу.
Виконайте еквівалентні перетворення граматики G= ({S, F, N}, {a, @, f, ☺}, P,S), де P = {S→ aF@f | ☺N | fS, F→ ε | N | @☺fF, N→ SN} спрямовані на видалення:
ε –правил;
Непродуктивних символів;
Недосяжних символів.
Побудуйте, якщо це можливо, контекстно-вільну граматику, яка породжує контекстно-вільну мову, у словах якої дві парні цифри чергуються з однією непарною.
Варіант 3
Побудувати програму на мові SIPL. Перевірити синтаксичну правильність програми , побудувавши її дерево синтаксичного виводу. Побудувати семантичний терм даної програми та застосувати його до певних вхідних даних.
Визначити модуль числа x (x, y – додатні цілі числа).
Для граматики G=({S, A, C, D}, {a, b, c}, P, S), де P={S ASD, S , ACaSD, CaSD, DAacb, Aaa} вибрати довільний ланцюжок і побудувати відповідне дерево виводу.
Виконайте еквівалентні перетворення граматики G= ({S, M, N, L}, {a, b, c, d, f}, P,S), де P = {S→ aML | bcN | ε, M→ Mac, N→ SMa | Ld, L→S | NMf} спрямовані на видалення:
ε –правил;
Непродуктивних символів;
Недосяжних символів.
Побудуйте, якщо це можливо, контекстно-вільну граматику, яка породжує контекстно-вільну мову L(G) = { | n > 0}.
Варіант 4
Побудувати програму на мові SIPL. Перевірити синтаксичну правильність програми , побудувавши її дерево синтаксичного виводу. Побудувати семантичний терм даної програми та застосувати його до певних вхідних даних.
Обчислити xy, використовуючи функції +, –, (x, y – додатні цілі числа).
Для граматики G=({S, C, A, D}, {a, b, c}, P, S), де P={S DC,S , Dab, CAb, DDca, Dca} вибрати довільний ланцюжок і побудувати відповідне дерево виводу.
Виконайте еквівалентні перетворення граматики G= ({S, A, B, D, E}, {a, b, c, d, e}, P, S), де P = {S→aSbDcC | BcA, A→BcS | acb, B→c | Bb | ε, D→ccAD, E→de} спрямовані на видалення:
ε –правил;
Непродуктивних символів;
Недосяжних символів.
Побудуйте, якщо це можливо, контекстно-вільну граматику, яка породжує контекстно-вільну мову L(G) = { | n ≥ 0}.