Теория языков программирования и методы трансляции. КУРСОВАЯ РАБОТА. Вариант №18
Состав работы
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Работа представляет собой zip архив с файлами (распаковать онлайн), которые открываются в программах:
- Microsoft Word
- Программа для просмотра текстовых файлов
Описание
Написать программу для автоматического построения детерминированного конечного автомата (ДКА) по словесному описанию языка.
Вход программы: алфавит языка, обязательная конечная подцепочка, цепочки для распознавания.
Выход: построенный ДКА (все 5 элементов), результат проверки цепочек.
Подробно:
Язык задан своим алфавитом и обязательной конечной подцепочкой всех цепочек языка. В конечной подцепочке не должно находиться символов, не содержащихся в алфавите. В крайнем случае она может быть и пустой.
Программа должна:
1. по предложенному описанию регулярного языка строить ДКА, распознающий этот язык, в том виде, как он рассматривался в теории, раздел 2.2.2;
2. с помощью построенного ДКА проверять вводимые пользователем цепочки на их принадлежность этому языку.
ДКА должен быть полностью определённым. Функция переходов ДКА может изображаться в виде таблицы или графа, вариант вида её представления выбирается разработчиком.
Наиболее простой способ построения такого ДКА состоит в том, чтобы сначала по описанию языка построить НКА (недетерминированный конечный автомат), а затем преобразовать его согласно рассмотренному в разделе 2.2.2 алгоритму. При выборе такого способа построения ДКА промежуточный результат в виде НКА необходимо также отображать на экране по просьбе пользователя.
По желанию автора допускаются и другие способы построения ДКА.
После построения ДКА пользователь может вводить произвольные цепочки для проверки их на принадлежность исходному языку. Разбор цепочек автоматом следует поэтапно отображать на экране в виде последовательной смены конфигураций в соответствии с лабораторной работой №2.
Рассмотрим пример построения ДКА.
Задан язык: алфавит {0,1,a,b} и обязательная конечная подцепочка «01ab». Анализируем задание: язык будет состоять из цепочек любой длины, заканчивающихся на «01ab», например {1a01ab, bb01ab, ba101ab, …}. Тогда ДКА должен иметь вид M(Q,{a,b,с},d,q0,F), множество состояний Q и заключительные состояния F определятся в процессе построения. Разберёмся с построением функции переходов d. Очевидно, что пустая цепочка в языке не содержится (поскольку есть непустая обязательная конечная цепочка). Сначала определимся с минимальной цепочкой языка – это ‘aaba’, и построим для неё граф переходов.
Если выбрать способ с предварительным построением НКА, то такой автомат выглядит очевидным образом. Сначала могут быть прочитаны любые символы алфавита в любом количестве, а затем конечная подцепочка:
Недетерминированность автомата вызвана тем, что из начального состояния существует два перехода по одному символу алфавита (‘a’). Осталось преобразовать построенный автомат в детерминированный. Для этого построим таблицу переходов:
вход Исходную таблицу переходов отделим от остальной части жирной линией.
Для упрощения процесса будем создавать не все возможные новые состояния, которые могут получиться в результате сочетаний исходных состояний, а только те, которые реально возникают при построении. Сначала это единственное состояние q0q1 – занесём его в таблицу. Затем последовательно появятся q0q1q2, q0q3, q0q1q4. Все состояния исходного автомата, кроме q0, оказались недостижимыми. В таблице они выделены синим цветом. Удалим их.
состояние a b c
q0 {q0,q1} {q0} {q0}
q1 {q2} – –
q2 – {q3} –
q3 {q4} – –
q4 – – –
q0q1 A {q0q1q2} {q0} {q0}
q0q1q2 B {q0q1q2} {q0q3} {q0}
q0q3 C {q0q1q4} {q0} {q0}
q0q1q4 D {q0q1q2} {q0} {q0}
вход Новые состояния для удобства переобозначим A, B, C, D. Заключительными состояниями станут те, которые содержат q4. Здесь такое состояние одно – D. Новая таблица переходов представлена слева:
состояние a b c
q0 {A} {q0} {q0}
A {B} {q0} {q0}
B {B} {C} {q0}
C {D} {q0} {q0}
D {B} {q0} {q0}
Граф переходов построен по таблице:
Q={q0,A,B,С,D }, F={D}.
ДКА построен.
Вход программы: алфавит языка, обязательная конечная подцепочка, цепочки для распознавания.
Выход: построенный ДКА (все 5 элементов), результат проверки цепочек.
Подробно:
Язык задан своим алфавитом и обязательной конечной подцепочкой всех цепочек языка. В конечной подцепочке не должно находиться символов, не содержащихся в алфавите. В крайнем случае она может быть и пустой.
Программа должна:
1. по предложенному описанию регулярного языка строить ДКА, распознающий этот язык, в том виде, как он рассматривался в теории, раздел 2.2.2;
2. с помощью построенного ДКА проверять вводимые пользователем цепочки на их принадлежность этому языку.
ДКА должен быть полностью определённым. Функция переходов ДКА может изображаться в виде таблицы или графа, вариант вида её представления выбирается разработчиком.
Наиболее простой способ построения такого ДКА состоит в том, чтобы сначала по описанию языка построить НКА (недетерминированный конечный автомат), а затем преобразовать его согласно рассмотренному в разделе 2.2.2 алгоритму. При выборе такого способа построения ДКА промежуточный результат в виде НКА необходимо также отображать на экране по просьбе пользователя.
По желанию автора допускаются и другие способы построения ДКА.
После построения ДКА пользователь может вводить произвольные цепочки для проверки их на принадлежность исходному языку. Разбор цепочек автоматом следует поэтапно отображать на экране в виде последовательной смены конфигураций в соответствии с лабораторной работой №2.
Рассмотрим пример построения ДКА.
Задан язык: алфавит {0,1,a,b} и обязательная конечная подцепочка «01ab». Анализируем задание: язык будет состоять из цепочек любой длины, заканчивающихся на «01ab», например {1a01ab, bb01ab, ba101ab, …}. Тогда ДКА должен иметь вид M(Q,{a,b,с},d,q0,F), множество состояний Q и заключительные состояния F определятся в процессе построения. Разберёмся с построением функции переходов d. Очевидно, что пустая цепочка в языке не содержится (поскольку есть непустая обязательная конечная цепочка). Сначала определимся с минимальной цепочкой языка – это ‘aaba’, и построим для неё граф переходов.
Если выбрать способ с предварительным построением НКА, то такой автомат выглядит очевидным образом. Сначала могут быть прочитаны любые символы алфавита в любом количестве, а затем конечная подцепочка:
Недетерминированность автомата вызвана тем, что из начального состояния существует два перехода по одному символу алфавита (‘a’). Осталось преобразовать построенный автомат в детерминированный. Для этого построим таблицу переходов:
вход Исходную таблицу переходов отделим от остальной части жирной линией.
Для упрощения процесса будем создавать не все возможные новые состояния, которые могут получиться в результате сочетаний исходных состояний, а только те, которые реально возникают при построении. Сначала это единственное состояние q0q1 – занесём его в таблицу. Затем последовательно появятся q0q1q2, q0q3, q0q1q4. Все состояния исходного автомата, кроме q0, оказались недостижимыми. В таблице они выделены синим цветом. Удалим их.
состояние a b c
q0 {q0,q1} {q0} {q0}
q1 {q2} – –
q2 – {q3} –
q3 {q4} – –
q4 – – –
q0q1 A {q0q1q2} {q0} {q0}
q0q1q2 B {q0q1q2} {q0q3} {q0}
q0q3 C {q0q1q4} {q0} {q0}
q0q1q4 D {q0q1q2} {q0} {q0}
вход Новые состояния для удобства переобозначим A, B, C, D. Заключительными состояниями станут те, которые содержат q4. Здесь такое состояние одно – D. Новая таблица переходов представлена слева:
состояние a b c
q0 {A} {q0} {q0}
A {B} {q0} {q0}
B {B} {C} {q0}
C {D} {q0} {q0}
D {B} {q0} {q0}
Граф переходов построен по таблице:
Q={q0,A,B,С,D }, F={D}.
ДКА построен.
Дополнительная информация
Работа была зачтена с первого раза в 2014г.
Преподаватель: Бах О.А.
Преподаватель: Бах О.А.
Похожие материалы
Теория языков программирования и методы трансляции
Илья272
: 5 ноября 2023
Лабораторные работы основаны на лекционном материале; каждая выполняется после изучения соответствующего теоретического раздела. До выполнения лабораторной работы нужно внимательно разобраться с примерами, ответить на контрольные вопросы изученного теоретического раздела, а также решить задачи, предлагаемые в составе контрольных вопросов.
Каждая работа снабжена методическими указаниями, сопровождающими текст задания. Рекомендуется внимательно читать задание и выполнять работу в строгом соответс
1300 руб.
Теория языков программирования и методы трансляции
piligrim-24
: 11 апреля 2012
Билет No1
1) Классификация грамматик и языков по Хомскому. Проиллюстрировать на примерах (примеры должны быть свои).
2) Нисходящий распознаватель языков с возвратами. Алгоритм распознавателя с подбором альтернатив. Проиллюстрировать на примере (пример должен быть свой).
3) Построить детерминированный автомат с магазинной памятью P (с опустошением стека), допускающий язык L(P) = {a n b n c 2k k > 0, n 0}. Построить КС-грамматику для задания этого же языка.
50 руб.
Теория языков программирования и методы трансляции
piligrim-24
: 3 марта 2012
Лабораторная работа № 3
По дисциплине «Теория языков программирования и методы трансляции»
Моделирование работы МПА
Пусть контекстно-свободный язык задаётся детерминированным автоматом с магазинной памятью – ДМПА (теоретический материал раздела 3.1). Написать программу, которая будет проверять для вводимой цепочки, принадлежит ли она заданному КС-языку. В случае отрицательного ответа необходимо давать пояснение, по какой причине цепочка не принадлежит языку (аналогично лаб. раб №2) Исходный авт
50 руб.
Курсовая работа по дисциплине Теория языков программирования и методы трансляции
Некто
: 16 сентября 2018
Написать программу для автоматического построения детерминированного конечного автомата (ДКА) по словесному описанию языка.
Вход программы: алфавит языка, обязательная конечная подцепочка, цепочки для распознавания.
Выход: построенный ДКА (все 5 элементов), результат проверки цепочек.
Подробно:
Язык задан своим алфавитом, обязательной конечной цепочкой всех цепочек языка. В конечной цепочке не должно находиться символов, не содержащихся в алфавите. В край
200 руб.
Теория языков программирования и методы трансляции. ЛАБОРАТОРНАЯ РАБОТА № 3. Вариант: 18
Shamrock
: 27 января 2015
Моделирование работы МПА
Пусть контекстно-свободный язык задаётся детерминированным автоматом с магазинной памятью – ДМПА (теоретический материал раздела 3.1). Написать программу, которая будет проверять для вводимой цепочки, принадлежит ли она заданному КС-языку. В случае отрицательного ответа необходимо давать пояснение, по какой причине цепочка не принадлежит языку (аналогично лаб. раб №2) Исходный автомат вводить с клавиатуры в соответствии с определённым форматом. Ввод цепочек также произво
250 руб.
Теория языков программирования и методы трансляции. ЛАБОРАТОРНАЯ РАБОТА № 1. Вариант № 18
Shamrock
: 27 января 2015
Генерация цепочек языка
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использовать заданную в программе грамматику или вводить свою с клави
250 руб.
Теория языков программирования и методы трансляции. ЛАБОРАТОРНАЯ РАБОТА № 5. Вариант №18
Shamrock
: 27 января 2015
Перевод с помощью МП-преобразователя
Пусть дан преобразователь с магазинной памятью; написать программу, которая будет выполнять перевод цепочек с одного языка на другой с помощью заданного преобразователя (теоретический материал раздела 4.2). При невозможности выполнить перевод (цепочка не принадлежит исходному языку) необходимо выводить на экран соответствующее сообщение.
Исходный преобразователь вводить с клавиатуры в соответствии с определённым форматом. Ввод цепочек также производить с клав
250 руб.
Теория языков программирования и методы трансляции. ЛАБОРАТОРНАЯ РАБОТА № 4. Вариант №18
Shamrock
: 27 января 2015
Перевод с помощью СУ-схемы
Пусть дана схема синтаксически управляемого перевода (теоретический материал раздела 4.2). Написать программу, которая будет выполнять перевод цепочек с одного языка на другой в соответствии с этой схемой. При невозможности выполнить перевод (цепочка не строится по правилам входной грамматики) необходимо выводить на экран соответствующее сообщение.
Правила СУ-схемы считывать из файла (предоставив пользователю возможность редактировать их на экране); цепочки вводить с к
250 руб.
Другие работы
Контрольная работа. Теория вероятностей и математическая статистика. 5-й вариант
rt
: 19 июня 2016
10.5. Студент знает 40 из 50 вопросов программы. Найти вероятность того, что студент знает 2 вопроса, содержащиеся в его экзаменационном билете.
11.5. Среднее число самолётов, прибывающих в аэропорт за 1 мин, равно трём. Найти вероятность того, что за 2 минприбудут: а) 4 самолёта; б) менее четырёх самолётов; в) не менее четырёх самолётов.
12.5 Требуется найти: а) математическое ожидание; б) дисперсию; в) среднее квадратическое отклонение дискретной случайной величины X по заданному закону её р
50 руб.
Курсовая работа по дисциплине: Электроника. Вариант 22
SibGOODy
: 22 августа 2018
Разработка интегрального аналогового устройства.
Содержание
Техническое задание 2
Введение 3
1. Разработка структурной схемы 5
2. Разработка принципиальной схемы 6
Расчет второго каскада: 8
3. Разработка интегральной микросхемы 12
3.1. Выбор навесных элементов и расчет конфигурации пленочных элементов 12
3.2. Разработка топологии 14
3.3. Этапы изготовления устройства в виде гибридной интегральной микросхемы 16
Заключение 18
Список литературы 19
Техническое задание
Разработать принципиальную с
1000 руб.
Лабораторная работа №4 по дисциплине: «Электропитание устройств и систем телекоммуникаций». Вариант №7
te86
: 1 ноября 2013
ЛАБОРАТОРНАЯ РАБОТА 4
ИССЛЕДОВАНИЕ LR СГЛАЖИВАЮЩЕГО ФИЛЬТРА
Цель работы - экспериментально определить коэффициенты сглаживания и к.п.д. фильтров. Выполнить анализ переходных процессов при включении источника питания и работе фильтра на импульсную нагрузку. Провести измерение АЧХ и ФЧХ.
Порядок выполнения работы
Номер бригады 7
U01, В 18
U1, В 3
30 руб.
Управление сетями связи. Билет 3
Максим112
: 17 июля 2019
БИЛЕТ №3
1. Рабочие характеристики и показатели качества по ISO
2. Основные характеристики протокола CMIP.
3. Задача: Определить из приведенного сообщения:
1. Версию протокола сетевого уровня
2. Приоритет сетевого уровня для данной дейтаграммы
3. Протокол транспортного уровня (Dec’код и название)
4. Сетевой адрес назначения
5. Транспортный порт отправителя
6. Транспортный порт получателя
7. Тип и класс тэга протокола прикладного уровня
8. Длину сообщения протокола прикладного уровня
9. Длину и
400 руб.