
Среда программирования: Visual C# .NET 2019
Название работы: 6 заданий. Теория языков программирования и методы трансляции. Информатика и вычислительная техника
Тематика работы: Графы, Математика, Прочие
Объем программы: 8 (по десятибалльной шкале)
Уровень сложности: 10 (по десятибалльной шкале)
Разработчик (автор):
Программист сайта kursovik.com
(письмо автору)
Данная работа написана ЧЕЛОВЕКОМ без использования ИИ
Ключевые слова: Информатика и вычислительная техника, Теория языков программирования, методы трансляции, расчётно-графической работе, Распознавание типов формальных языков, типов формальных языков, грамматик, формальная грамматика, формальный язык, выводимость цепочек, эквивалентная грамматика, классификация Хомского, эквивалентных грамматик, Составить грамматику, конечного автомата, детерминированный конечный автомат, Преобразовать НКА, диаграмма графа, Минимизация конечных автоматов, недостижимые эквивалентные состояния автомата, минимальный конечный автомат, детерминированного конечного автомата, исключение эквивалентных состояний, граф минимального конечного автомата, Эквивалентные преобразования, контекстно-свободных грамматик, приведенная КС-грамматика, правила левой факторизации, прямую левую рекурсию, язык КС-грамматики, цепных правил, левой факторизации правил, прямой левой рекурсии, автомат с магазинной памятью, контекстно-свободной грамматике, конфигурация МП-автомата, Моделирование функционирования распознавателя, LL(1)-грамматик
Функции программы:
6 заданий. Теория языков программирования и методы трансляции.
Разработать две программы на C# и выполнить 4 задания по расчётно-графической работе.
Подробности.
Задание № 1. «Распознавание типов формальных языков и грамматик»
Цель:
- закрепить понятия «алфавит», «цепочка», «формальная грамматика» и «формальный язык», «выводимость цепочек», «эквивалентная грамматика»;
- сформировать умения и навыки распознавания типов формальных языков и грамматик по классификации Хомского, построения эквивалентных грамматик.
При выполнении задания следует реализовать следующие действия:
1. Составить грамматику, порождающую формальный язык, заданный в соответствии с вариантом.
2. Определить тип формальной грамматики и языка по классификации Хомского.
3. Разработать программное средство, распознающее тип введённой пользователем грамматики по классификации Хомского.
Вариант индивидуального задания:
L(G)={a_1 a_2…a_n a_n…a_2 a_1 |a_i{c,d}}
Задание № 2. «Построение конечного автомата по регулярной грамматике»
Цель:
- закрепить понятия «регулярная грамматика», «недетерминированный и детерминированный конечный автомат»;
- сформировать умения и навыки построения конечного автомата по регулярной грамматике и преобразования недетерминированного конечного автомата к детерминированному конечному автомату.
При выполнении задания следует реализовать следующие действия:
1. Проверить грамматику на принадлежность к классу регулярных грамматик.
2. Построить по заданной регулярной грамматике конечный автомат.
3. Преобразовать НКА к ДКА.
4. Нарисовать диаграмму графа результирующего КА.
5. Разработать программное средство, реализующее следующие функции:
а) ввод произвольной формальной грамматики с клавиатуры и проверка ее на принадлежность к классу регулярных грамматик;
б) построение по заданной регулярной грамматике конечного автомата;
в) преобразование недетерминированного конечного автомата к детерминированному конечному автомату.
G=({0, 1, ~, #, &}, {X, Y, Z, W, V}, P, X),
где P: 1) X→0Y | 1Z | ε; 2) Y→0Z | ~W | #; 3) Z→1Y | 1W | 0V; 4) W→0W | 1W | #; 5) V→&Z.
Задание № 3. «Минимизация конечных автоматов»
Цель:
- закрепить понятия «недостижимые состояния автомата», «эквивалентные состояния автомата», «минимальный конечный автомат»;
- сформировать умения и навыки минимизации детерминированного конечного автомата.
1. Устраните недостижимые состояния конечного автомата.
2. Исключите эквивалентные состояния конечного автомата.
3. Опишите граф минимального конечного автомата.
4. Разработать программное средство, реализующее следующие функции:
а) ввод исходного конечного автомата;
б) устранение недостижимых состояний конечного автомата;
в) исключение эквивалентных состояний конечного автомата;
г) вывод на экран графа минимального конечного автомата;
д) разработать серию контрольных примеров для тестирования реализованных алгоритмов.
Задание № 4.
«Эквивалентные преобразования контекстно-свободных грамматик»
Цель:
- закрепить понятия «эквивалентные грамматики», «приведенная КС-
грамматика»;
- сформировать умения и навыки эквивалентных преобразований контекст-
но-свободных грамматик.
1. Определить, к какому классу принадлежит грамматика, и проверить существования языка для неё.
2. Эквивалентными преобразованиями грамматики удалить:
а) бесполезные символы;
б) недостижимые символы;
в) ε-правила;
г) цепные правила;
д) правила левой факторизации;
е) прямую левую рекурсию.
3. Разработать программное средство, автоматизирующее процесс эквивалентного преобразования КС-грамматик. Программное средство должно выполнять следующие функции:
1) организация ввода грамматики и проверка ее на принадлежность к классу КС-грамматик;
2) проверка существования языка КС-грамматики;
3) реализация эквивалентных преобразований грамматики, направленных на удаление:
а) бесполезных символов;
б) недостижимых символов;
в) ε-правил;
г) цепных правил;
д) левой факторизации правил;
е) прямой левой рекурсии.
G=({a, b, c, d}, {Q, A, B, C, D}, P, Q),
где P: 1) Q→acA | acB | ε; 2) B→A | Cb | ε; 3) A→Aa | Ab | a; 4) C→ dCc 5) D→dc
Задание № 5.«Построение автомата с магазинной памятью по контекстно-свободной грамматике»
Цель:
- закрепить понятия «автомат с магазинной памятью (МП-автомат)», «расширенный МП-автомат», «конфигурация МП-автомата»; «строка и язык, допускаемые МП-автоматом»;
- сформировать умения и навыки построения МП-автомата и расширенного МП-автомата по КС-грамматике, разбора входной строки с помощью МП- автомата.
1. Определить принадлежность грамматики к классу КС-грамматик.
2. Построить МП-автомат по КС-грамматике.
3. Построить расширенный МП-автомат по КС-грамматике.
4. Продемонстрировать разбор некоторой входной строки с помощью построенных автоматов для случая:
а) входная строка принадлежит языку исходной КС-грамматики и допускается МП-автоматом;
б) входная строка не принадлежит языку исходной КС-грамматики и не принимается МП-автоматом.
5. Разработать программное средство, реализующее следующие функции:
а) ввод произвольной формальной грамматики и проверка её на принадлежность к классу КС-грамматик;
б) построение МП-автомата по КС-грамматике;
в) построение расширенного МП-автомата по КС-грамматике.
G=({a, b, c, d}, {Q, A, B, C, D}, P, Q),
где P: 1) Q→acA | acB | ε; 2) B→A | Cb | ε; 3) A→Aa | Ab | a; 4) C→ dCc 5) D→dc
Задание № 6. «Моделирование функционирования распознавателя для LL(1)-грамматик»
Цель:
- закрепить понятие «LL(k)-грамматика», необходимые и достаточные условия LL(k)-грамматики;
- сформировать умения и навыки построения множеств FIRST(k, α) и FOLLOW(k, α ), распознавателя для LL(1)-грамматик.
1. Построить множества FIRST(1, A) и FOLLOW(1, A) для каждого нетерминального символа грамматики.
2. Проверить необходимое и достаточное условие LL(1) для введённой КС-грамматики.
3. Разработать программное средство, автоматизирующее процесс разбора цепочек для LL(1)-грамматик. Программное средство должно выполнять следующие функции:
а) реализация ввода произвольной КС-грамматики;
б) построение множеств FIRST(1, A) и FOLLOW(1, A) для каждого нетерминального символа грамматики;
в) проверка необходимого и достаточного условия LL(1) для введенной КС-грамматики;
г) моделирование функционирования распознавателя для LL(1)-грамматик.
Составить набор контрольных примеров для случаев:
а) введенная КС-грамматика не является LL(1)-грамматикой;
б) исходная КС-грамматика является LL(1)-грамматикой, но входная строка не принадлежит языку грамматики;
в) заданная КС-грамматика является LL(1)-грамматикой и введенная строка принадлежит языку грамматики.
Разбор цепочек показать с помощью таблицы, строки вывода и дерева вывода.
G=({a, b, c, d}, {Q, A, B, C, D}, P, Q),
где P: 1) Q→acA | acB | ε; 2) B→A | Cb | ε; 3) A→Aa | Ab | a; 4) C→ dCc 5) D→dc
Описание (отчет):
Есть
на 24 страниц, посмотреть оглавление
Пояснения к компиляции и запуску программы:
1. Для работы с программой 1 нужно использовать файл "Z1.exe".
2. Для работы с программой 2 нужно использовать файл "Z2.exe".
3. Для работы с остальными расчетными заданиями нужно использовать файл "ТЯП.docx".
Пояснения к запуску программы:
1. Для работы с программой 1 нужно использовать файл "Z1.exe".
2. Для работы с программой 2 нужно использовать файл "Z2.exe".
3. Для работы с остальными расчетными заданиями нужно использовать файл "ТЯП.docx".
исходники
TRANS
ProjectEvaluation
trans.metadata.v7
trans.projects.v7
z1.metadata.v7
z1.projects.v7
Trans
DesignTimeBuild
.dtbcache
FileContentIndex
25702d26-2f55-4ced-8d70-86baa29bbdd2
26216b02-49a5-4e6b-b400-e5a2bd1a07ea
505e7f0f-bb64-42dc-8ed5-9a64e61911a5
ca4cdde6-5464-4d2c-8532-1e4d05a3cb94
d71cf51f-635a-4a1b-8383-73a3da5dfaf1
v17
.futdcache
Z1
DesignTimeBuild
.dtbcache
FileContentIndex
28ec2533-4882-4139-90a5-c11a1bc463e1
3b3cf14b-5006-4d6f-b29c-7ab479ca7fa0
fd09efee-6081-4da8-81db-d580c63bae2b
Trans
Z1
bin
Debug
net6
Z1.deps
Z1
Z1
Z1
Z1.runtimeconfig
Form1
Form1.Designer
Form1
Grammar
obj
Debug
net6
.NETCoreApp,Version=v6.0.AssemblyAttributes
apphost
ref
Z1
refint
Z1
Z1.AssemblyInfo
Z1.AssemblyInfoInputs
Z1.assets
Z1.csproj
Z1.csproj.CoreCompileInputs
Z1.csproj.FileListAbsolute
Z1.csproj.GenerateResource
Z1.designer.deps
Z1.designer.runtimeconfig
Z1
Z1.Form1
Z1.GeneratedMSBuildEditorConfig
Z1.genruntimeconfig
Z1.GlobalUsings.g
Z1
project.assets
project.nuget
Z1.csproj.nuget.dgspec
Z1.csproj.nuget.g
Z1.csproj.nuget.g
Program
Z1
Z1.csproj
Z2
bin
Debug
net6
Z2.deps
Z2
Z2
Z2
Z2.runtimeconfig
FA
Form1
Form1.Designer
Form1
Grammar
obj
Debug
net6
.NETCoreApp,Version=v6.0.AssemblyAttributes
apphost
ref
Z2
refint
Z2
Z2.AssemblyInfo
Z2.AssemblyInfoInputs
Z2.assets
Z2.csproj
Z2.csproj.CoreCompileInputs
Z2.csproj.FileListAbsolute
Z2.csproj.GenerateResource
Z2.designer.deps
Z2.designer.runtimeconfig
Z2
Z2.Form1
Z2.GeneratedMSBuildEditorConfig
Z2.genruntimeconfig
Z2.GlobalUsings.g
Z2
project.assets
project.nuget
Z2.csproj.nuget.dgspec
Z2.csproj.nuget.g
Z2.csproj.nuget.g
Program
Z2
Z2.csprojПеред покупкой готовой работы не забудьте проверить её оригинальность. Запросить у администратора проверку текущей оригинальности работы по версии системы Антиплагиат.РУ
Отчет к программе. СодержаниеЗадание № 1. «Распознавание типов формальных языков и грамматик» . . . . . . . . . . . . . . .2 Задание № 2 . «Построение конечного автомата по регулярной грамматике» . . . . . . . . . .4 Задание № 3 . «Минимизация конечных автоматов» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 Задание № 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 «Эквивалентные преобразования контекстно-свободных грамматик» . . . . . . . . . . . . . . . . .15 Задание № 5 .«Построение автомата с магазинной памятью по контекстно-свободной грамматике» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 Задание № 6 . «Моделирование функционирования распознавателя для LL(1)-грамматик» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .