Теория языков программирования и методы трансляции. Курсовая работа. 9-й вариант + Доп.задание к курсовой работе
Состав работы
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Необходимые программы
Работа представляет собой rar архив с файлами (распаковать онлайн), которые открываются в программах:
- Microsoft Word
- Программа для просмотра текстовых файлов
Описание
Задание
Вариант 9
Написать программу для автоматического построения регулярного выражения (РВ) по словесному описанию языка.
Вход программы: алфавит языка, обязательные начальная и конечная подцепочки, кратность длины всех цепочек языка, 2 числа – диапазон длин для генерации цепочек.
Выход: построенное регулярное выражение, результат генерации цепочек.
Подробно:
Язык задан своим алфавитом, обязательной начальной и конечной подцепочками и указанием кратности длины всех цепочек языка. В заданных подцепочках не должно находиться символов, не содержащихся в алфавите. В крайнем случае они (одна или обе) могут быть и пустыми. Особый случай – это пересечение заданных цепочек по одному или нескольким символам, в том числе и полное их совпадение. Кратность длины цепочек задается любым натуральным числом. Кратность, равная единице, равносильна отсутствию ограничений на длину цепочек.
Программа должна:
1. по предложенному описанию регулярного языка строить РВ, задающее этот язык, в том виде, как было рассмотрено в теории, раздел 2.1.1;
2. с помощью построенного РВ генерировать все цепочки языка в заданном пользователем диапазоне длин.
При генерации цепочек языка по РВ можно использовать любые структуры и алгоритмы, в том числе и прямой перебор.
Рассмотрим пример построения регулярного выражения.
Задан язык: алфавит {a,b,c}, обязательная начальная цепочка ‘саа’, конечная цепочка ‘aab’, длина цепочек кратна 2. Анализируем задание: язык будет состоять из цепочек чётной длины, начинающихся с цепочки ‘cаа’ и заканчивающихся на ‘aab’, например {сaab, сaaааb, caaасааb, сaabсaab, …}.
Для начала определим минимально возможную цепочку этого языка. Это ‘сaab’ – она получается при максимальном пересечении начальной и конечной цепочек, удовлетворяет всем условиям и является при этом самой короткой. Удлинить её можно путём уменьшения области пересечения начальной и конечной цепочек. Следующая по длине цепочка могла бы быть ‘сaаab’ (пересечение по одному символу), но она не удовлетворяет условию чётности длины. А вот ещё следующая цепочка – ‘сaaааb’ – получена простым соединением начальной и конечной цепочек. Это основа нашего РВ. Её можно удлинять, помещая между начальной и конечной цепочками некоторое количество символов алфавита, причём для сохранения чётности длины это количество тоже должно быть чётным. Для генерации любого количества пар символов используется итерация, а выбор одного из нескольких символов записывается в виде суммы.
Итоговое регулярное выражение будет иметь вид: саа((а+b+c)(a+b+c))*aab+caaaab.
Если в этом же задании изменить кратность длины на единицу, то итоговое РВ изменится таким образом: добавлять можно будет не пары символов, а по одному символу любое количество раз, и пересечения цепочек будут использованы все. Итоговое регулярное выражение будет иметь вид: саа(a+b+c)*aab+caaab +caaaab.
Доп.задание:
Программа чужая. Для получения положительной оценки придется выполнить дополнительное задание. Добавьте генерацию цепочек по введенному пользователем РВ.
Результат доработки:
Для выполнения дополнительного задания на панель программы добавлена редактируемая область для строки РВ. Данная область используется следующим образом. При построении РВ в эту область выводится результат, т.е. построенное РВ. При генерации цепочек из этой области читается строка с РВ. В любой момент времени можно изменить содержимое области с РВ с клавиатуры.
В строке с РВ все символы, не совпадающие с символами круглых скобок и символами операций выбора и итерации, считаются символами алфавита языка. При этом символы алфавита языка, введенные в другом поле на панели программы игнорируются. Таким образом, при измененной с клавиатуры строке с РВ, т.е. отличной от той, которая была получена при построении РВ по входным данным, алфавит языка при генерации цепочек может быть другой.
Вывод на экран сгенерированных по РВ цепочек оставлен прежним.
Дополнительное задание в отдельном архиве - Добавьте генерацию цепочек по введенному пользователем РВ.
Вариант 9
Написать программу для автоматического построения регулярного выражения (РВ) по словесному описанию языка.
Вход программы: алфавит языка, обязательные начальная и конечная подцепочки, кратность длины всех цепочек языка, 2 числа – диапазон длин для генерации цепочек.
Выход: построенное регулярное выражение, результат генерации цепочек.
Подробно:
Язык задан своим алфавитом, обязательной начальной и конечной подцепочками и указанием кратности длины всех цепочек языка. В заданных подцепочках не должно находиться символов, не содержащихся в алфавите. В крайнем случае они (одна или обе) могут быть и пустыми. Особый случай – это пересечение заданных цепочек по одному или нескольким символам, в том числе и полное их совпадение. Кратность длины цепочек задается любым натуральным числом. Кратность, равная единице, равносильна отсутствию ограничений на длину цепочек.
Программа должна:
1. по предложенному описанию регулярного языка строить РВ, задающее этот язык, в том виде, как было рассмотрено в теории, раздел 2.1.1;
2. с помощью построенного РВ генерировать все цепочки языка в заданном пользователем диапазоне длин.
При генерации цепочек языка по РВ можно использовать любые структуры и алгоритмы, в том числе и прямой перебор.
Рассмотрим пример построения регулярного выражения.
Задан язык: алфавит {a,b,c}, обязательная начальная цепочка ‘саа’, конечная цепочка ‘aab’, длина цепочек кратна 2. Анализируем задание: язык будет состоять из цепочек чётной длины, начинающихся с цепочки ‘cаа’ и заканчивающихся на ‘aab’, например {сaab, сaaааb, caaасааb, сaabсaab, …}.
Для начала определим минимально возможную цепочку этого языка. Это ‘сaab’ – она получается при максимальном пересечении начальной и конечной цепочек, удовлетворяет всем условиям и является при этом самой короткой. Удлинить её можно путём уменьшения области пересечения начальной и конечной цепочек. Следующая по длине цепочка могла бы быть ‘сaаab’ (пересечение по одному символу), но она не удовлетворяет условию чётности длины. А вот ещё следующая цепочка – ‘сaaааb’ – получена простым соединением начальной и конечной цепочек. Это основа нашего РВ. Её можно удлинять, помещая между начальной и конечной цепочками некоторое количество символов алфавита, причём для сохранения чётности длины это количество тоже должно быть чётным. Для генерации любого количества пар символов используется итерация, а выбор одного из нескольких символов записывается в виде суммы.
Итоговое регулярное выражение будет иметь вид: саа((а+b+c)(a+b+c))*aab+caaaab.
Если в этом же задании изменить кратность длины на единицу, то итоговое РВ изменится таким образом: добавлять можно будет не пары символов, а по одному символу любое количество раз, и пересечения цепочек будут использованы все. Итоговое регулярное выражение будет иметь вид: саа(a+b+c)*aab+caaab +caaaab.
Доп.задание:
Программа чужая. Для получения положительной оценки придется выполнить дополнительное задание. Добавьте генерацию цепочек по введенному пользователем РВ.
Результат доработки:
Для выполнения дополнительного задания на панель программы добавлена редактируемая область для строки РВ. Данная область используется следующим образом. При построении РВ в эту область выводится результат, т.е. построенное РВ. При генерации цепочек из этой области читается строка с РВ. В любой момент времени можно изменить содержимое области с РВ с клавиатуры.
В строке с РВ все символы, не совпадающие с символами круглых скобок и символами операций выбора и итерации, считаются символами алфавита языка. При этом символы алфавита языка, введенные в другом поле на панели программы игнорируются. Таким образом, при измененной с клавиатуры строке с РВ, т.е. отличной от той, которая была получена при построении РВ по входным данным, алфавит языка при генерации цепочек может быть другой.
Вывод на экран сгенерированных по РВ цепочек оставлен прежним.
Дополнительное задание в отдельном архиве - Добавьте генерацию цепочек по введенному пользователем РВ.
Дополнительная информация
работа сдавалась в ноябре 2017, Бах О.А.
Зачтена после доработки:
"Программа чужая. Для получения положительной оценки придется выполнить дополнительное задание. Добавьте генерацию цепочек по введенному пользователем РВ".
В архиве отдельно отправленная изначально курсовая и в архиве "доработано" программа и отчет с изменениями.
Внимание! В работе и программе указано ФИО автора.
Зачтена после доработки:
"Программа чужая. Для получения положительной оценки придется выполнить дополнительное задание. Добавьте генерацию цепочек по введенному пользователем РВ".
В архиве отдельно отправленная изначально курсовая и в архиве "доработано" программа и отчет с изменениями.
Внимание! В работе и программе указано ФИО автора.
Похожие материалы
Теория языков программирования и методы трансляции
Илья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 руб.
Теория языков программирования и методы трансляции. Курсовая работа. Вариант 13.
Сергей442
: 13 ноября 2023
Написать программу, которая по заданной регулярной грамматике (грамматика может быть НЕ автоматного вида! ЛЛ или ПЛ) построит эквивалентный ДКА (представление функции переходов в виде таблицы). Программа должна сгенерировать по исходной грамматике несколько цепочек в заданном диапазоне длин и проверить их допустимость построенным автоматом. Процессы построения цепочек и проверки их выводимости отображать на экране (по требованию).
2500 руб.
Теория языков программирования и методы трансляции курсовая работа вариант 4
svladislav987
: 29 августа 2023
Вариант 4
Написать программу для автоматического построения детерминированного конечного автомата (ДКА), эквивалентного заданной регулярной грамматике.
Вход программы: терминальный и нетерминальный алфавиты грамматики, целевой символ, правила грамматики, цепочки для распознавания.
Выход: построенный ДКА (все 5 элементов), результат проверки цепочек.
Подробно:
Язык задан регулярной грамматикой, причём она может быть не автоматного вида. При написании программы разработчику разрешается выбрать оди
500 руб.
Теория языков программирования и методы трансляции. Курсовая работа. Вариант 19.
LowCost
: 8 января 2021
Написать программу, которая для языка, заданного контекстно-свободной грамматикой в требуемой форме (проверить корректность задания и при отрицательном результате выдать соответствующее сообщение), построит детерминированный распознаватель с магазинной памятью, используя алгоритм восходящего анализа с возвратами («сдвиг-свертка»).
Программа должна сгенерировать по исходной грамматике несколько цепочек в указанном диапазоне длин и проверить их допустимость построенным ДМПА. Процессы построения ц
499 руб.
Теория языков программирования и методы трансляции. Курсовая работа. Вариант 10.
Bodibilder
: 3 июля 2019
Вариант 10
Написать программу для автоматического построения регулярной грамматики (леволинейной или праволинейной) по словесному описанию языка.
Вход программы: алфавит языка, обязательная конечная подцепочка, кратность длины всех цепочек языка, тип грамматики (ЛЛ либо ПЛ), 2 числа – диапазон длин для генерации цепочек.
Выход: построенная грамматика (все 4 элемента), результат генерации цепочек.
Подробно:
Язык задан своим алфавитом, обязательной конечной подцепочкой, которая должна присутствова
200 руб.
Другие работы
Теплотехника РГАЗУ 2012 Задача 6 Вариант 8
Z24
: 30 декабря 2026
Определить количество удаленной влаги W, потребное количество воздуха L и расход теплоты на сушку Q для конвективной зерносушилки производительностью G1, если начальное значение относительной влажности зерна ω1 и конечное ω2, влагосодержание d2 и температура воздуха t1 на входе в сушилку, влагосодержание d2 и температура воздуха t2 на выходе из сушилки, температура наружного воздуха t0=15 ºC. Данные для расчетов взять из таблицы 3.6.
Изобразить процесс сушки в h-d диаграмме влажного воздуха.
150 руб.
Принципы организации ментального лексикона языковой личности
Qiwir
: 10 октября 2013
План работы
1. Общие представления о структуре языкового знания
2. Слово как центральная единица внутреннего лексикона
1. Общие представления о структуре языкового знания
Уже Ф. де Соссюр говорил о том, что язык образуется в голове человека суммой всех словесных образов, общих для коллектива говорящих, и подчеркивал, что такая совокупность – «это клад, практикой речи отлагаемый во всех, кто принадлежит к одному общественному коллективу, это грамматическая система, виртуально существующая у к
10 руб.
Вариант №30. Соединение шлицевое по методичке Липовки
Чертежи
: 22 апреля 2020
Всё выполнено в программе Компас 3D v16
В состав входит один чертеж шлицевого соединения Вариант №30.
Работа выполнена по методичке Липовки Е.Р. "Инженерная графика. Соединения разъемные", ред. 2012г.
Шлицевое соединение выполнено на формате А3, по примеру из методички, без спецификации. По заданному исполнению соответствующего варианта необходимо в левой части листа на чертеже нарезать необходимое количество зубьев (шлицев) нужной толщины на обеих деталях, произвести сборку в правой части ли
100 руб.
Внешняя политика Советского государства в канун и в годы второй мировой войны
Lokard
: 20 марта 2013
1. Основные направления внешней политики Советского государства в 20-30 годы.
2. Мюнхенский сговор и позиция СССР.
3. Советские инициативы по предотвращению нацистской агрессии в Европе.
4. Содержание советско-германского договора о ненападении.
5. Причины и характер второй мировой войны.
Эта тема интерессна сама по-себе,как фактор становления Советского государства.Ведь известно,что от умело проведённой политики зависит многое:и курс ведения внутренней политики,а также внешней, от уме
5 руб.