Мячина_3ЛР
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
Московский технический университет связи и информатики
(МТУСИ)
Кафедра «Системное программирование»
Лабораторная работа №3
«Грамматика»
по дисциплине «Системное программное обеспечение»
Вариант 24
Выполнила:
студентка группы БФИ2203
Мячина Лада Андреевна
Проверила:
Старший преподаватель
Алексанян Диана Ашотовна
Москва, 2025 г.
Задание:
Дан язык T: = (ba)r ∨ (w), где w ∈ a, b, (ba)r - строка (ba)k, записанная в обратном порядке.
1. Создать грамматику, порождающую язык.
2. Определить тип грамматики.
Ход работы:
(ba)r = abab … ab
w – любое слово из букв a и b.
∨ - Логическое сложение (ИЛИ) => язык Т включает в себя все слова либо из первой части ((ba)r), либо из второй части (w). Т.к. w – включает в себя все возможные слова из букв a и b (в том числе все слова из первой части), то язык Т включает все слова из букв a и b.
1. Для того, чтобы создать грамматику, порождающую данный язык, следует создать таблицу правил, по которым будут осуществлены переходы.
S |
→ |
aS |
S |
→ |
bS |
Построим переходы, следуя правилам грамматики:
S → aS | bS
2. Данная грамматика является регулярной, поскольку описывает простейший язык.
Визуализация алгоритма в JFLAP
Выбираем пункт "Grammar" и заполняем таблицу известными значениями.
Рисунок 1 - Заполненная таблица правил грамматики
Определим тип грамматики:
Рисунок 2 - Определение типа грамматики
