Лабораторная работа № 1 по дисциплине: "Теория языков программирования и методы трансляции" Тема: "Генерация цепочек языка". Вариант № 1
Состав работы
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Необходимые программы
Работа представляет собой rar архив с файлами (распаковать онлайн), которые открываются в программах:
- Microsoft Word
Описание
Содержание
Лабораторная работа No 1 Генерация цепочек языка 1
СОДЕРЖАНИЕ 2
1. ПОСТАНОВКА ЗАДАЧИ 3
2. ОПИСАНИЕ ВХОДНЫХ ДАННЫХ ПРОГРАММЫ И ЕЕ РЕЗУЛЬТАТОВ 3
3. ОПИСАНИЕ ОСНОВНЫХ ПЕРЕМЕННЫХ, БЛОКОВ И ПОДПРОГРАММ 8
4. АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ 10
5. ТЕКСТ ПРОГРАММЫ 10
6. РЕЗУЛЬТАТЫ РАБОТЫ 21
7. КОНТРОЛЬНЫЕ ВОПРОСЫ 22
1. Постановка задачи
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использовать заданную в программе грамматику или вводить свою с клавиатуры.
На вход программы подаётся КС-грамматика (терминальный и нетерминальный алфавиты, целевой символ, правила вывода), задаётся диапазон длин цепочек, указывается тип вывода (левосторонний или правосторонний).
Рекомендуется для ввода исходных данных использовать соответствующую форму. При вводе правил грамматики не рекомендуется предоставлять пользователю излишнюю свободу действий, например, удобнее запретить ввод в левой части правил более чем одного нетерминального символа, чем проверять введённые правила на соответствие контекстно-свободному типу.
На выходе должен быть список построенных цепочек. Все цепочки в списке должны быть различны. При получении одинаковых цепочек (разными способами) их следует сохранять в списке выводимых цепочек только в случае выполнения дополнительного задания.
Проверить программу на примерах из лекционного курса и на заданиях из контрольных вопросов к теоретической части.
Дополнительно: Дополнить предыдущую программу таким образом, чтобы для одной или нескольких цепочек (цепочки выбирает пользователь из числа построенных на предыдущем этапе работы) строилось дерево вывода, т.е. была структурно представлена последовательность правил, использованных при построении цепочки.
Контрольные вопросы:
1. Как поведёт себя программа, если при вводе правил грамматики сделать ошибку – ввести правила грамматики, не соответствующей КС-типу, или не использовать какие-то символы исходных алфавитов, или поместить в левой части правил терминальный символ?
2. Используется ли при генерации цепочек рекурсия? Если да, то как ограничена её глубина?
3. Какой язык порождается грамматикой G({0},{S,A},{SAAA, AAAA |0}, S)? Правильно ли Ваша программа работает на этом примере? Если нет – доработайте программу.
4. Разрешает ли Ваша программа использовать в исходной грамматике пустые правила? Если нет – доработайте программу.
Лабораторная работа No 1 Генерация цепочек языка 1
СОДЕРЖАНИЕ 2
1. ПОСТАНОВКА ЗАДАЧИ 3
2. ОПИСАНИЕ ВХОДНЫХ ДАННЫХ ПРОГРАММЫ И ЕЕ РЕЗУЛЬТАТОВ 3
3. ОПИСАНИЕ ОСНОВНЫХ ПЕРЕМЕННЫХ, БЛОКОВ И ПОДПРОГРАММ 8
4. АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ 10
5. ТЕКСТ ПРОГРАММЫ 10
6. РЕЗУЛЬТАТЫ РАБОТЫ 21
7. КОНТРОЛЬНЫЕ ВОПРОСЫ 22
1. Постановка задачи
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использовать заданную в программе грамматику или вводить свою с клавиатуры.
На вход программы подаётся КС-грамматика (терминальный и нетерминальный алфавиты, целевой символ, правила вывода), задаётся диапазон длин цепочек, указывается тип вывода (левосторонний или правосторонний).
Рекомендуется для ввода исходных данных использовать соответствующую форму. При вводе правил грамматики не рекомендуется предоставлять пользователю излишнюю свободу действий, например, удобнее запретить ввод в левой части правил более чем одного нетерминального символа, чем проверять введённые правила на соответствие контекстно-свободному типу.
На выходе должен быть список построенных цепочек. Все цепочки в списке должны быть различны. При получении одинаковых цепочек (разными способами) их следует сохранять в списке выводимых цепочек только в случае выполнения дополнительного задания.
Проверить программу на примерах из лекционного курса и на заданиях из контрольных вопросов к теоретической части.
Дополнительно: Дополнить предыдущую программу таким образом, чтобы для одной или нескольких цепочек (цепочки выбирает пользователь из числа построенных на предыдущем этапе работы) строилось дерево вывода, т.е. была структурно представлена последовательность правил, использованных при построении цепочки.
Контрольные вопросы:
1. Как поведёт себя программа, если при вводе правил грамматики сделать ошибку – ввести правила грамматики, не соответствующей КС-типу, или не использовать какие-то символы исходных алфавитов, или поместить в левой части правил терминальный символ?
2. Используется ли при генерации цепочек рекурсия? Если да, то как ограничена её глубина?
3. Какой язык порождается грамматикой G({0},{S,A},{SAAA, AAAA |0}, S)? Правильно ли Ваша программа работает на этом примере? Если нет – доработайте программу.
4. Разрешает ли Ваша программа использовать в исходной грамматике пустые правила? Если нет – доработайте программу.
Дополнительная информация
В архиве отчет+программа, использованная в работе.
Отличная работа!
Специальность ПОВТиАС (ПОиВТ)
Отличная работа!
Специальность ПОВТиАС (ПОиВТ)
Похожие материалы
Лабораторная работа №1 по дисциплине: Теория языков программирования и методы трансляции. Тема. Генерация цепочек языка.
Udacha2013
: 31 октября 2015
Лабораторная работа No 1 Генерация цепочек языка
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использовать заданную в программе грамматик
250 руб.
Лабораторная работа 1 По дисциплине: Теория языков программирования и методы трансляции. Тема: Генерация цепочек языка. Вариант 3
alexadubinina
: 20 ноября 2024
Лабораторная работа No 1 Генерация цепочек языка
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использовать заданную в программе грамматику
400 руб.
Генерация цепочек языка
woorumu
: 7 января 2017
Пусть язык задан контекстно-свободной грамматикой. Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использовать заданную в программе грамматику или вводить свою с клавиатуры.
150 руб.
Генерация цепочек языка
Dusya
: 25 января 2013
Описание основных переменных, а также основных блоков и подпрограмм.
Программа написана на языке C# в IDE Visual Studio 2008 Express Edition .
Для правила списка правил описан тип:
struct Rule
{
public Char left; // левая часть правила
public String right; // правая часть правила
};
Поля класса Generator:
// разделители символов терминального и нетерминального алфавитов
private const String separators = ", ";
// список полученных цепочек
250 руб.
Лабораторная работа №1:Генерация цепочек языка
aragorn24
: 29 сентября 2015
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
150 руб.
Лабораторная работа 3 по дисциплине: Теория языков программирования и методы трансляции. Тема. Моделирование работы МПА.
Udacha2013
: 31 октября 2015
Лабораторная работа № 3 Моделирование работы МПА
Пусть контекстно-свободный язык задаётся детерминированным автоматом с магазинной памятью – ДМПА (теоретический материал раздела 3.1). Написать программу, которая будет проверять для вводимой цепочки, принадлежит ли она заданному КС-языку. В случае отрицательного ответа необходимо давать пояснение, по какой причине цепочка не принадлежит языку (аналогично лаб. раб №2) Исходный автомат вводить с клавиатуры в соответствии с определённым форматом. В
200 руб.
Лабораторная работа №2 по дисциплине: Теория языков программирования и методы трансляции. Тема. Моделирование работы ДКА.
Udacha2013
: 31 октября 2015
Лабораторная работа № 2 Моделирование работы ДКА
Пусть регулярный язык задаётся конечным автоматом – ДКА (теоретический материал разделов 1.5, 2.2). Написать программу, которая будет проверять по заданному автомату вводимую цепочку и делать вывод о том, принадлежит ли она рассматриваемому регулярному языку. В случае отрицательного ответа необходимо давать пояснение, по какой причине цепочка не принадлежит языку – например, «в цепочке присутствуют посторонние символы», «после прочтения цепочки а
250 руб.
Теория языков программирования и методы трансляции Лабораторная работа № 1 Генерация цепочек языка
svladislav987
: 29 августа 2023
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использовать заданную в программе грамматику или вводить свою с клавиатуры.
На вход програм
100 руб.
Другие работы
Развитие речи в дошкольном возрасте
Qiwir
: 18 октября 2013
Содержание
Введение
Глава 1. Развитие речи дошкольников как процесс овладения родного языка
1.1 Закономерности усвоения речи
1.2 Развитие функций речи в дошкольном возрасте
Глава 2. Особенности развития речи в разные периоды детства
2.1 Развитие речи в раннем детстве
2.2 Процесс развития речи в дошкольном возрасте
Заключение
Список литературы
Введение
Язык и речь традиционно рассматривались в психологии, философии и педагогике как “узел”, в котором сходятся различные линии психическог
Влияние ценовой политики на факторы производства
Qiwir
: 28 октября 2013
Введение.
В данной работе мы сосредоточимся на рассмотрении рынков производственных ресурсов, где фирмы являются покупателями, а домашние хозяйства в совокупности с фирмами – продавцами, а так же влияние изменения цен на факторы производства.
Фирмы используют первичные производственные факторы, предоставляемые им домашними хозяйствами: труд, землю и капитал. Все фирмы принимают в расчет цены факторов, приобретаемых ими, в процессе принятия решения о том, что и как производить. Цены на производст
10 руб.
Тепломассообмен КГУ Курган 2020 Задача 3 Вариант 68
Z24
: 12 января 2026
Определить удельный лучистый тепловой поток q (в ваттах на квадратный метр) между двумя параллельно расположенными плоскими стенками, имеющими температуру t1 и t2 и степени (коэффициенты) черноты ε1 и ε2, если между ними нет экрана. Определить q при наличии экрана со степенью (коэффициентом) черноты εэ (с обеих сторон).
200 руб.
КУРСОВОЙ ПРОЕКТ по дисциплине «Телекоммуникационные системы синхронной и плезиохронной циф-ровой иерархии» вариант 8
aleksei84
: 6 ноября 2014
Задание на курсовой проект
Методические указания и техническое задание по курсовому проектированию телекоммуникационной сети SDH.
• Разработать схему организации сети.
• Рассчитать количество компонентных потоков между узлами.
• Обосновать выбор скоростей передачи агрегатных потоков.
• Выбрать типы мультиплексоров, кросс-коннектов и линейного оборудования в узлах.
• Выбрать оптический кабель.
• Привести схему тракта одного компонентного потока между любыми двумя несмежными узлами сети с исп
79 руб.