Лабораторные работы №1,2,3 по дисциплине: Теория языков программирования и методы трансляции. Для всех вариантов.
Состав работы
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Работа представляет собой rar архив с файлами (распаковать онлайн), которые открываются в программах:
- Microsoft Word
Описание
Лабораторная работа № 1 Генерация цепочек языка
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использовать заданную в программе грамматику или вводить свою с клавиатуры.
На вход программы подаётся КС-грамматика (терминальный и нетерминальный алфавиты, целевой символ, правила вывода), задаётся диапазон длин цепочек, указывается тип вывода (левосторонний или правосторонний).
Рекомендуется для ввода исходных данных использовать соответствующую форму. При вводе правил грамматики не рекомендуется предоставлять пользователю излишнюю свободу действий, например, удобнее запретить ввод в левой части правил более чем одного нетерминального символа, чем проверять введённые правила на соответствие контекстно-свободному типу.
На выходе должен быть список построенных цепочек. Все цепочки в списке должны быть различны. При получении одинаковых цепочек (разными способами) их следует сохранять в списке выводимых цепочек только в случае выполнения дополнительного задания.
Проверить программу на примерах из лекционного курса и на заданиях из контрольных вопросов к теоретической части.
Дополнительно: Дополнить предыдущую программу таким образом, чтобы для одной или нескольких цепочек (цепочки выбирает пользователь из числа построенных на предыдущем этапе работы) строилось дерево вывода, т.е. была структурно представлена последовательность правил, использованных при построении цепочки.
Контрольные вопросы:
1. Как поведёт себя программа, если при вводе правил грамматики сделать ошибку – ввести правила грамматики, не соответствующей КС-типу, или не использовать какие-то символы исходных алфавитов, или поместить в левой части правил терминальный символ?
2. Используется ли при генерации цепочек рекурсия? Если да, то как ограничена её глубина?
3. Какой язык порождается грамматикой G({0},{S,A},{S® AAA, A® AAA |0}, S)? Правильно ли Ваша программа работает на этом примере? Если нет – доработайте программу.
4. Разрешает ли Ваша программа использовать в исходной грамматике пустые правила? Если нет – доработайте программу.
Лабораторная работа № 2 Моделирование работы ДКА
Пусть регулярный язык задаётся конечным автоматом – ДКА (теоретический материал разделов 1.5, 2.2). Написать программу, которая будет проверять по заданному автомату вводимую цепочку и делать вывод о том, принадлежит ли она рассматриваемому регулярному языку. В случае отрицательного ответа необходимо давать пояснение, по какой причине цепочка не принадлежит языку – например, “в цепочке присутствуют посторонние символы”, “после прочтения цепочки автомат не пришёл в конечное состояние” и т.п. Исходный автомат вводить с клавиатуры в соответствии с определённым форматом. Ввод цепочек также производить с клавиатуры.
На вход программы подаётся ДКА (множество состояний, алфавит языка, начальное состояние, множество заключительных состояний, функция переходов в виде таблицы) и проверяемая цепочка символов (может вводиться многократно, т.е. возможно проверить любое количество цепочек). При этом в проверяемую цепочку могут входить и символы, не принадлежащие алфавиту языка; цепочка может быть и пустой.
Программа должна предоставлять пользователю возможность изменять начальное и конечные состояния с сохранением введённой функции переходов для заданного автомата.
Выход – отображение на экране процесса проверки цепочки в виде последовательной смены конфигураций и вывод результата – сообщения, принадлежит ли цепочка языку.
Проверить работу программы на примерах из лекций и задачах из контрольных вопросов.
Дополнительно:
Предоставить пользователю возможность не только вводить данные с клавиатуры, но и загружать автомат из файла (выбор – в соответствующем пункте меню или нажатием кнопки в исходном окне программы). При этом следует накладывать определённые ограничения на формат файла и производить соответствующие проверки во избежание загрузки некорректных данных.
Также по желанию пользователя результаты помимо вывода на экран сохранять в файле. Выбор – аналогично загрузке данных.
Контрольные вопросы:
1. Как поведёт себя программа, если при вводе таблицы переходов ДКА сделать (случайно или преднамеренно) ошибку – например, ввести несуществующее состояние?
2. Все ли ячейки таблицы переходов исходного ДКА обязательно должны быть заполнены или можно использовать неполностью определённый ДКА?
3. В каком случае ДКА распознаёт пустую цепочку как цепочку языка?
Лабораторная работа № 3 Моделирование работы МПА
Пусть контекстно-свободный язык задаётся детерминированным автоматом с магазинной памятью – ДМПА (теоретический материал раздела 3.1). Написать программу, которая будет проверять для вводимой цепочки, принадлежит ли она заданному КС-языку. В случае отрицательного ответа необходимо давать пояснение, по какой причине цепочка не принадлежит языку (аналогично лаб. раб №2) Исходный автомат вводить с клавиатуры в соответствии с определённым форматом. Ввод цепочек также производить с клавиатуры, выполняя его до тех пор, пока не возникнет желание закончить работу.
На вход программы подаётся ДМПА (множество состояний, алфавит языка, алфавит магазина, начальное состояние, начальное содержимое стека, множество заключительных состояний, функция переходов в виде списка правил) и проверяемая цепочка символов (может вводиться многократно, т.е. возможно проверить любое количество цепочек). При этом в проверяемую цепочку могут входить и символы, не принадлежащие алфавиту языка; цепочка может быть и пустой.
Рекомендуется для ввода исходных данных использовать соответствующую форму с полями выбора. При вводе функции переходов не рекомендуется предоставлять пользователю излишнюю свободу действий.
Выход – отображение на экране процесса проверки цепочки в виде последовательной смены конфигураций и вывод результата – сообщения, принадлежит ли цепочка языку.
Внимание!!! В ходе проверки цепочки ДМПА может проделывать пустые такты не только после прочтения всей цепочки, но и в её середине. Внимательно прочтите соответствующий раздел лекций 3.1.
Проверить работу программы на примерах из лекций и задачах из контрольных вопросов.
Дополнительно: Предоставить пользователю возможность вносить некоторые изменения в исходные данные без полного их обновления.
Контрольные вопросы:
1. Как поведёт себя преобразователь, если поданная на его вход цепочка не может быть распознана (не принадлежит к заданному языку)?
2. Как соотносятся алфавиты исходного языка и того, на который выполняется перевод (должны совпадать, различаться…)? Поясните ответ.
3. Как поведёт себя Ваша программа при некорректном вводе? Например, функция переходов задана не в том формате, определена не для того количества параметров, использует алфавит, отличный от заданных.
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использовать заданную в программе грамматику или вводить свою с клавиатуры.
На вход программы подаётся КС-грамматика (терминальный и нетерминальный алфавиты, целевой символ, правила вывода), задаётся диапазон длин цепочек, указывается тип вывода (левосторонний или правосторонний).
Рекомендуется для ввода исходных данных использовать соответствующую форму. При вводе правил грамматики не рекомендуется предоставлять пользователю излишнюю свободу действий, например, удобнее запретить ввод в левой части правил более чем одного нетерминального символа, чем проверять введённые правила на соответствие контекстно-свободному типу.
На выходе должен быть список построенных цепочек. Все цепочки в списке должны быть различны. При получении одинаковых цепочек (разными способами) их следует сохранять в списке выводимых цепочек только в случае выполнения дополнительного задания.
Проверить программу на примерах из лекционного курса и на заданиях из контрольных вопросов к теоретической части.
Дополнительно: Дополнить предыдущую программу таким образом, чтобы для одной или нескольких цепочек (цепочки выбирает пользователь из числа построенных на предыдущем этапе работы) строилось дерево вывода, т.е. была структурно представлена последовательность правил, использованных при построении цепочки.
Контрольные вопросы:
1. Как поведёт себя программа, если при вводе правил грамматики сделать ошибку – ввести правила грамматики, не соответствующей КС-типу, или не использовать какие-то символы исходных алфавитов, или поместить в левой части правил терминальный символ?
2. Используется ли при генерации цепочек рекурсия? Если да, то как ограничена её глубина?
3. Какой язык порождается грамматикой G({0},{S,A},{S® AAA, A® AAA |0}, S)? Правильно ли Ваша программа работает на этом примере? Если нет – доработайте программу.
4. Разрешает ли Ваша программа использовать в исходной грамматике пустые правила? Если нет – доработайте программу.
Лабораторная работа № 2 Моделирование работы ДКА
Пусть регулярный язык задаётся конечным автоматом – ДКА (теоретический материал разделов 1.5, 2.2). Написать программу, которая будет проверять по заданному автомату вводимую цепочку и делать вывод о том, принадлежит ли она рассматриваемому регулярному языку. В случае отрицательного ответа необходимо давать пояснение, по какой причине цепочка не принадлежит языку – например, “в цепочке присутствуют посторонние символы”, “после прочтения цепочки автомат не пришёл в конечное состояние” и т.п. Исходный автомат вводить с клавиатуры в соответствии с определённым форматом. Ввод цепочек также производить с клавиатуры.
На вход программы подаётся ДКА (множество состояний, алфавит языка, начальное состояние, множество заключительных состояний, функция переходов в виде таблицы) и проверяемая цепочка символов (может вводиться многократно, т.е. возможно проверить любое количество цепочек). При этом в проверяемую цепочку могут входить и символы, не принадлежащие алфавиту языка; цепочка может быть и пустой.
Программа должна предоставлять пользователю возможность изменять начальное и конечные состояния с сохранением введённой функции переходов для заданного автомата.
Выход – отображение на экране процесса проверки цепочки в виде последовательной смены конфигураций и вывод результата – сообщения, принадлежит ли цепочка языку.
Проверить работу программы на примерах из лекций и задачах из контрольных вопросов.
Дополнительно:
Предоставить пользователю возможность не только вводить данные с клавиатуры, но и загружать автомат из файла (выбор – в соответствующем пункте меню или нажатием кнопки в исходном окне программы). При этом следует накладывать определённые ограничения на формат файла и производить соответствующие проверки во избежание загрузки некорректных данных.
Также по желанию пользователя результаты помимо вывода на экран сохранять в файле. Выбор – аналогично загрузке данных.
Контрольные вопросы:
1. Как поведёт себя программа, если при вводе таблицы переходов ДКА сделать (случайно или преднамеренно) ошибку – например, ввести несуществующее состояние?
2. Все ли ячейки таблицы переходов исходного ДКА обязательно должны быть заполнены или можно использовать неполностью определённый ДКА?
3. В каком случае ДКА распознаёт пустую цепочку как цепочку языка?
Лабораторная работа № 3 Моделирование работы МПА
Пусть контекстно-свободный язык задаётся детерминированным автоматом с магазинной памятью – ДМПА (теоретический материал раздела 3.1). Написать программу, которая будет проверять для вводимой цепочки, принадлежит ли она заданному КС-языку. В случае отрицательного ответа необходимо давать пояснение, по какой причине цепочка не принадлежит языку (аналогично лаб. раб №2) Исходный автомат вводить с клавиатуры в соответствии с определённым форматом. Ввод цепочек также производить с клавиатуры, выполняя его до тех пор, пока не возникнет желание закончить работу.
На вход программы подаётся ДМПА (множество состояний, алфавит языка, алфавит магазина, начальное состояние, начальное содержимое стека, множество заключительных состояний, функция переходов в виде списка правил) и проверяемая цепочка символов (может вводиться многократно, т.е. возможно проверить любое количество цепочек). При этом в проверяемую цепочку могут входить и символы, не принадлежащие алфавиту языка; цепочка может быть и пустой.
Рекомендуется для ввода исходных данных использовать соответствующую форму с полями выбора. При вводе функции переходов не рекомендуется предоставлять пользователю излишнюю свободу действий.
Выход – отображение на экране процесса проверки цепочки в виде последовательной смены конфигураций и вывод результата – сообщения, принадлежит ли цепочка языку.
Внимание!!! В ходе проверки цепочки ДМПА может проделывать пустые такты не только после прочтения всей цепочки, но и в её середине. Внимательно прочтите соответствующий раздел лекций 3.1.
Проверить работу программы на примерах из лекций и задачах из контрольных вопросов.
Дополнительно: Предоставить пользователю возможность вносить некоторые изменения в исходные данные без полного их обновления.
Контрольные вопросы:
1. Как поведёт себя преобразователь, если поданная на его вход цепочка не может быть распознана (не принадлежит к заданному языку)?
2. Как соотносятся алфавиты исходного языка и того, на который выполняется перевод (должны совпадать, различаться…)? Поясните ответ.
3. Как поведёт себя Ваша программа при некорректном вводе? Например, функция переходов задана не в том формате, определена не для того количества параметров, использует алфавит, отличный от заданных.
Дополнительная информация
Уважаемый студент, дистанционного обучения,
Оценена Ваша работа по предмету: Теория языков программирования и методы трансляции
Вид работы: Лабораторная работа 1-3
Оценка: Зачет
Дата оценки: 01.02.2019
Рецензия:Уважаемый ,
Бах Ольга Анатольевна
Помогу с выполнением других работ и дисциплин.
E-mail: sneroy20@gmail.com
Оценена Ваша работа по предмету: Теория языков программирования и методы трансляции
Вид работы: Лабораторная работа 1-3
Оценка: Зачет
Дата оценки: 01.02.2019
Рецензия:Уважаемый ,
Бах Ольга Анатольевна
Помогу с выполнением других работ и дисциплин.
E-mail: sneroy20@gmail.com
Похожие материалы
Лабораторные работы 1-3 по дисциплине: Теория языков программирования и методы трансляции. Без вариантов
IT-STUDHELP
: 25 декабря 2022
Лабораторная работа 1
Генерация цепочек языка
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использовать заданную в программе грамматик
1500 руб.
Лабораторные работы 1-3 по дисциплине: Теория языков программирования и методы трансляции. Без вариантов
IT-STUDHELP
: 25 декабря 2022
Лабораторная работа 1
Генерация цепочек языка
ЗАДАНИЕ:
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использоват
1500 руб.
Лабораторные работы 1-3 по дисциплине: Теория языков программирования и методы трансляции. Вариант №3
IT-STUDHELP
: 25 декабря 2022
Лабораторная работа 1
Генерация цепочек языка
ЗАДАНИЕ
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю
1500 руб.
Лабораторные работы 1-3 по дисциплине: Теория языков программирования и методы трансляции. Вариант №09
IT-STUDHELP
: 6 июля 2023
Лабораторная работа 1
Генерация цепочек языка
Постановка задачи:
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использовать заданную в пр
1500 руб.
Лабораторные работы 1-3 по дисциплине: Теория языков программирования и методы трансляции. Вариант №10
IT-STUDHELP
: 6 июля 2023
Лабораторная работа 1
Генерация цепочек языка
Постановка задачи
Тема: «Генерация цепочек языка».
Пусть язык задан контекстно-свободной грамматикой. Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Рекомендуется для ввода исходных данных использовать соответствующую форму. При ввод
1500 руб.
Лабораторные работы 1-3 по дисциплине: Теория языков программирования и методы трансляции. Вариант №04
IT-STUDHELP
: 6 июля 2023
Лабораторная работа 1
Постановка задачи
Тема: «Генерация цепочек языка».
Пусть язык задан контекстно-свободной грамматикой. Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Рекомендуется для ввода исходных данных использовать соответствующую форму. При вводе правил грамматики не р
1500 руб.
Лабораторные работы 1-3 по дисциплине: Теория языков программирования и методы трансляции. Вариант №10*
IT-STUDHELP
: 6 июля 2023
Лабораторная работа 1
Генерация цепочек языка
Постановка задачи:
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использовать заданную в пр
1500 руб.
Теория языков программирования и методы трансляции. Лабораторная работа №1
bvv1975
: 26 января 2016
Теория языков программирования и методы трансляции_Лабораторная работа 1
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
20 руб.
Другие работы
Лабораторные работы №№1-32 по дисциплине: Программное обеспечение инфокоммуникационных систем (часть 1-я) (Мейкшан). Вариант №16
IT-STUDHELP
: 14 февраля 2022
Лабораторная работа №1
По дисциплине: Программное обеспечение инфокоммуникационных систем (часть 1)
ПРОГРАММНАЯ ОРГАНИЗАЦИЯ ПРОЦЕССА ВВОДА ИНФОРМАЦИИ
1. Цель работы
1.1 Изучение алгоритмов ввода информации в память управляющего устройства по результатам сканирования элементов АТС с программным управлением.
1.2 Изучение состава и назначения исходных данных, используемых программами ввода информации.
1.3 Изучение состава и назначения результирующих данных, создаваемых программами вводы информ
750 руб.
Дерево отказов. Организация и управление сервисным обслуживанием
DiKey
: 3 мая 2021
Реферат.
Дерево отказов. Организация и управление сервисным обслуживанием.
24стр.
300 руб.
Гидроцилиндр ПМИГ ХХХХХХ.026 СБ. Вариант №26. Инженерная графика.
Laguz
: 28 марта 2016
Есть всего 11 чертежей, сделанных как в 2д, так и в 3д (обычных и с вырезом 3/4) сборка, крышка, цилиндр, деталь 1 и 2.
Работа в компасе.
Задание
По данным спецификации изобразить следующие соединения:
Б – болтовое – цилиндра 1 и крышки 2;
В – винтовое – крышки 3 и крышки 2;
Г – шпилечное – цилиндра 1 и крышки 6.
26.3. Выполнить ассоциативные чертежи деталей 1 и 2, расположив
в каждом чертеже аксонометрию с вырезом одной четверти).
26.4. Выполнить аксонометрическое изображение с вырезом
одной
120 руб.
Лабораторная работа № 4 по дисциплине "Структуры и алгоритмы обработки данных (1 часть)" 2 семестр 6 вариант
mastar
: 23 января 2012
Написать программу «Телефонный справочник», которая обрабатывает данные об абонентах телефонной станции. Каждый абонент имеет имя, адрес, телефонный номер. В программе описать массив абонентов (назовем его справочник). В справочнике должно быть не менее 20 элементов, которые заполняются либо программно, либо считываются из файла.
С помощью индексов и фильтров выбрать абонентов, которые имеют имя в заданном диапазоне.
120 руб.