Состав работы

material.view.file_icon
material.view.file_icon
material.view.file_icon
material.view.file_icon

Описание

Лабораторные работы основаны на лекционном материале; каждая выполняется после изучения соответствующего теоретического раздела. До выполнения лабораторной работы нужно внимательно разобраться с примерами, ответить на контрольные вопросы изученного теоретического раздела, а также решить задачи, предлагаемые в составе контрольных вопросов.

Каждая работа снабжена методическими указаниями, сопровождающими текст задания. Рекомендуется внимательно читать задание и выполнять работу в строгом соответствии с требованиями.

Среда программирования – любая, по желанию студента. Рекомендуется использовать Delphi, C# или аналоги.


Внимание!
При выполнении лабораторных работ необходимо предусматривать обработку любых возможных ошибок ввода. Программа не должна «зависать» или вести себя иным некорректным образом ни при каких начальных данных! При вводе неправильных начальных данных должно быть выведено сообщение об ошибке пользователя и предложено повторить ввод правильно (как вариант – можно программно запрещать ввод неправильных данных).
По каждой лабораторной работе необходимо выполнять отчёт, включающий в себя:

постановку задачи;
описание входных данных программы и её результатов;
описание основных переменных, а также основных блоков и подпрограмм;
алгоритм решения задачи;
текст программы;
результаты работы, если они есть (вариант – копия экрана), или результаты тестирования;
ответы на контрольные вопросы.

Преподавателю на проверку необходимо предоставлять отчёт, исходный код и откомпилированный модуль (exe-файл).
Для получения зачёта по каждой лабораторной работе студентом должно быть выполнено основное задание. Дополнительная часть не обязательна, она предназначена для желающих более полно и глубоко изучить предмет.


Лабораторная работа No 1 Генерация цепочек языка
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.

Предусмотреть возможность выбора пользователю – использовать заданную в программе грамматику или вводить свою с клавиатуры.

На вход программы подаётся КС-грамматика (терминальный и нетерминальный алфавиты, целевой символ, правила вывода), задаётся диапазон длин цепочек, указывается тип вывода (левосторонний или правосторонний).

Рекомендуется для ввода исходных данных использовать соответствующую форму. При вводе правил грамматики не рекомендуется предоставлять пользователю излишнюю свободу действий, например, удобнее запретить ввод в левой части правил более чем одного нетерминального символа, чем проверять введённые правила на соответствие контекстно-свободному типу.

На выходе должен быть список построенных цепочек. Все цепочки в списке должны быть различны. При получении одинаковых цепочек (разными способами) их следует сохранять в списке выводимых цепочек только в случае выполнения дополнительного задания.

Проверить программу на примерах из лекционного курса и на заданиях из контрольных вопросов к теоретической части.

Дополнительно: Дополнить предыдущую программу таким образом, чтобы для одной или нескольких цепочек (цепочки выбирает пользователь из числа построенных на предыдущем этапе работы) строилось дерево вывода, т.е. была структурно представлена последовательность правил, использованных при построении цепочки.

Контрольные вопросы:

Как поведёт себя программа, если при вводе правил грамматики сделать ошибку – ввести правила грамматики, не соответствующей КС-типу, или не использовать какие-то символы исходных алфавитов, или поместить в левой части правил терминальный символ?
Используется ли при генерации цепочек рекурсия? Если да, то как ограничена её глубина?
Какой язык порождается грамматикой G({0},{S,A},{SAAA, AAAA |0}, S)? Правильно ли Ваша программа работает на этом примере? Если нет – доработайте программу.
Разрешает ли Ваша программа использовать в исходной грамматике пустые правила? Если нет – доработайте программу.

Лабораторная работа No 2 Моделирование работы ДКА
Пусть регулярный язык задаётся конечным автоматом – ДКА (теоретический материал разделов 1.5, 2.2). Написать программу, которая будет проверять по заданному автомату вводимую цепочку и делать вывод о том, принадлежит ли она рассматриваемому регулярному языку. В случае отрицательного ответа необходимо давать пояснение, по какой причине цепочка не принадлежит языку – например, «в цепочке присутствуют посторонние символы», «после прочтения цепочки автомат не пришёл в конечное состояние» и т.п. Исходный автомат вводить с клавиатуры в соответствии с определённым форматом. Ввод цепочек также производить с клавиатуры.

На вход программы подаётся ДКА (множество состояний, алфавит языка, начальное состояние, множество заключительных состояний, функция переходов в виде таблицы) и проверяемая цепочка символов (может вводиться многократно, т.е. возможно проверить любое количество цепочек). При этом в проверяемую цепочку могут входить и символы, не принадлежащие алфавиту языка; цепочка может быть и пустой.

Программа должна предоставлять пользователю возможность изменять начальное и конечные состояния с сохранением введённой функции переходов для заданного автомата.

Выход – отображение на экране процесса проверки цепочки в виде последовательной смены конфигураций и вывод результата – сообщения, принадлежит ли цепочка языку.

Проверить работу программы на примерах из лекций и задачах из контрольных вопросов./p>

Дополнительно:

1) Предоставить пользователю возможность не только вводить данные с клавиатуры, но и загружать автомат из файла (выбор – в соответствующем пункте меню или нажатием кнопки в исходном окне программы). При этом следует накладывать определённые ограничения на формат файла и производить соответствующие проверки во избежание загрузки некорректных данных.

2) Также по желанию пользователя результаты помимо вывода на экран сохранять в файле. Выбор – аналогично загрузке данных.

Контрольные вопросы:

Как поведёт себя программа, если при вводе таблицы переходов ДКА сделать (случайно или преднамеренно) ошибку – например, ввести несуществующее состояние?
Все ли ячейки таблицы переходов исходного ДКА обязательно должны быть заполнены или можно использовать неполностью определённый ДКА?
В каком случае ДКА распознаёт пустую цепочку как цепочку языка?

Лабораторная работа No 3 Перевод с помощью МП-преобразователя
Пусть дан преобразователь с магазинной памятью; написать программу, которая будет выполнять перевод цепочек с одного языка на другой с помощью заданного преобразователя (теоретический материал раздела 4.2). При невозможности выполнить перевод (цепочка не принадлежит исходному языку) необходимо выводить на экран соответствующее сообщение. Исходный преобразователь вводить с клавиатуры в соответствии с определённым форматом. Ввод цепочек также производить с клавиатуры, выполняя его до тех пор, пока не возникнет желание закончить работу. Процесс перевода цепочки в виде последовательной смены конфигураций отображать на экране.

На вход программы подаётся ДМП-преобразователь (множество состояний, алфавиты входного и выходного языков, алфавит магазина, начальное состояние, начальное содержимое стека, множество заключительных состояний, функция переходов в виде списка правил) и проверяемая цепочка символов (аналогично лаб. раб. No2).

Рекомендуется за основу взять программу лабораторной работы No2, дополнив исходные данные алфавитом стека, начальным содержимым стека и выходным алфавитом, функцию переходов – в соответствии с определением преобразователя, а конфигурации – содержимым памяти и выходными цепочками.

Выход: отображение на экране процесса перевода цепочки в виде последовательной смены конфигураций преобразователя, результат перевода – полученная цепочка.

Проверить работу программы на примерах из лекций и задачах из контрольных вопросов.

Дополнительно:

Предоставить пользователю возможность не только вводить данные с клавиатуры, но и загружать преобразователь из файла (аналогично лабораторной работе No2).

Контрольные вопросы:

Как поведёт себя преобразователь, если поданная на его вход цепочка не может быть распознана (не принадлежит к заданному языку)?
Как соотносятся алфавиты исходного языка и того, на который выполняется перевод (должны совпадать, различаться...)? Поясните ответ.
Как поведёт себя Ваша программа при некорректном вводе? Например, функция переходов задана не в том формате, определена не для того количества параметров, использует алфавит, отличный от заданных...

Дополнительная информация

2023г, зачтены
Теория языков программирования и методы трансляции
Билет No1 1) Классификация грамматик и языков по Хомскому. Проиллюстрировать на примерах (примеры должны быть свои). 2) Нисходящий распознаватель языков с возвратами. Алгоритм распознавателя с подбором альтернатив. Проиллюстрировать на примере (пример должен быть свой). 3) Построить детерминированный автомат с магазинной памятью P (с опустошением стека), допускающий язык L(P) = {a n b n c 2k k > 0, n 0}. Построить КС-грамматику для задания этого же языка.
User piligrim-24 : 11 апреля 2012
50 руб.
Теория языков программирования и методы трансляции
Лабораторная работа № 3 По дисциплине «Теория языков программирования и методы трансляции» Моделирование работы МПА Пусть контекстно-свободный язык задаётся детерминированным автоматом с магазинной памятью – ДМПА (теоретический материал раздела 3.1). Написать программу, которая будет проверять для вводимой цепочки, принадлежит ли она заданному КС-языку. В случае отрицательного ответа необходимо давать пояснение, по какой причине цепочка не принадлежит языку (аналогично лаб. раб №2) Исходный авт
User piligrim-24 : 3 марта 2012
50 руб.
Теория языков программирования и методы трансляции билет 11
Билет No 11 Факультет ИВТ (ДО) Курс 4 Семестр 7 Дисциплина Теория языков программирования и методы трансляции 1) Автоматные грамматики – определение, способ приведения регулярной грамматики к автоматному виду. Проиллюстрировать на примере (пример должен быть свой). 2) Схема работы компилятора, основные этапы компиляции. Краткая характеристика основных фаз компиляции. 3) Пусть дана грамматика для арифметических выражений: G ({+,–,/,*,a,b,(,)}, {S,T,E}, P, S), где правила P имеют вид: S S+TS–TT
User 09809845 : 4 ноября 2022
800 руб.
Теория языков программирования и методы трансляции. Билет №9
Билет No 9 Факультет ИВТ (ДО) Курс 4 Семестр 7 Дисциплина Теория языков программирования и методы трансляции 1) Регулярные множества и регулярные выражения (РВ). Определение, свойства РВ. Проиллюстрировать на примерах (примеры должны быть свои). 2) Алгоритм восходящего анализа языков без возвратов, основанный на грамматиках операторного предшествования. Проиллюстрировать на примере (пример должен быть свой). 3) Построить и изобразить графически детерминированный конечный автомат, распозн
User IT-STUDHELP : 30 декабря 2021
500 руб.
promo
Теория языков программирования и методы трансляции. Билет №23
Билет № 23 1. Построение ДКА, эквивалентного заданному НКА. Классы эквивалентности, минимизация ДКА. Проиллюстрировать на примере (пример должен быть свой). 2. Схема синтаксически управляемого перевода с одного языка на другой – необходимые определения, СУ-перевод. Проиллюстрировать на примере (пример должен быть свой). 3. Построить и изобразить графически детерминированный конечный автомат для распознавания множества цепочек из алфавита {a,b,c}* четной длины, начинающихся с символа ‘с’ и закан
User IT-STUDHELP : 30 декабря 2021
500 руб.
promo
«Теория языков программирования и методы трансляции». Вариант №6
Написать программу, которая по предложенному описанию языка построит регулярную грамматику (ЛЛ или ПЛ – по заказу пользователя), задающую этот язык, и позволит сгенерировать с её помощью все цепочки языка в заданном диапазоне длин. Предусмотреть возможность поэтапного отображения на экране процесса генерации цепочек. Вариант задания языка: Алфавит, кратность вхождения некоторого символа алфавита и обязательная фиксированная подцепочка, на которую заканчиваются все цепочки языка. Программа должн
User NikolaSuprem : 18 ноября 2021
500 руб.
Теория языков программирования и методы трансляци. Билет № 13
Билет No 13 Факультет ИВТ (ДО) Курс 4 Семестр 7 Дисциплина Теория языков программирования и методы трансляции 1) Эквивалентные способы задания регулярных языков. Свойства регулярных языков, способ проверки языка на регулярность. Проиллюстрировать на примере (пример должен быть свой). 2) Лексический анализ как первый этап процесса компиляции. Проиллюстрировать на примере (пример должен быть свой). 3) Построить детерминированный автомат с магазинной памятью P (с опустошением стека), допуск
User ivanPBT22 : 28 мая 2015
300 руб.
Билет № 4 "Теория языков программирования и методы трансляции
1) Понятие и формальное определение грамматики. Грамматика как способ задания языка. Описание языка программирования посредством грамматик. Проиллюстрировать на примере (пример должен быть свой). 2) Автоматы с магазинной памятью (МПА) как распознаватели КС-языков; необходимые определения (такт, конфигурация, функция перехода), классификация МПА. Проиллюстрировать на примерах (примеры должны быть свои). 3) Построить СУ-схему обращения цепочек, т.е. перевода (w, wR), где w ∈ {a,b,c}*. Построить пр
User migsvet : 17 мая 2014
500 руб.
Экологические проблемы литосферы Земли
Содержание Введение 1. Антропогенное воздействие на литосферу 2. Основные загрязнители и деградация почвы 3. Эрозия почвы и борьба с ней 4. Проблема опустынивания 5. Пестициды и последствия их применения Заключение Список используемой литературы Человек и природа неотделимы друг от друга и тесно взаимосвязаны. Для человека, как и для общества в целом, природа является средой жизни и единственным источником необходимых для существования ресурсов. Природа и природные ресурсы - база, на которой ж
User kirillkira : 25 апреля 2012
Механика жидкости и газов. Практические работы. Задачи 1-6
Вариант No0 Задача No1 Определить силу, действующую на болты крышки бака, заполненного жидкостью плотностью ρ. Угол наклона крышки α. В сечении бак имеет форму квадрата со стороной a. Манометр показывает давление p_m. Задача No2 В двух сообщающихся сосудах, наполненных водой, правый выполнен в виде круга диаметром d, а левый - в форме двух квадратов, соединенных жесткой связью со сторонами a и b. Определить манометрическое давление над левым сосудом, если к правому приложена сила P. Задач
User Bernard1611 : 22 июня 2022
350 руб.
Механика жидкости и газов. Практические работы. Задачи 1-6
Контрольная работа. Физические основы электроники. Вариант №6.
1. По статическим характеристикам заданного биполярного транзистора включенного по схеме с общим эмиттером, рассчитать параметры усилителя графоаналитическим методом. Для этого: а) построить линию нагрузки; б) построить на характеристиках временные диаграммы токов и напряжений и выявить наличие или отсутствие искажений формы сигнала, определить величины амплитуд напряжений на коллекторе и базе, тока коллектора; в) рассчитать для линейного (мало искажающего) режима коэф-фициенты усиления по току
User Grusha : 1 июля 2015
120 руб.
Слесарный инструмент. Охрана производственных объектов, Трубогибочный механизм
ИОТ_ВР2_СИЗ,ИОТ_ВР12_Слесарный инструмент ,ИОТ_ВР17_Охрана производственных объектов,ИОТ_ВР35_Трубогибочный механизм УГС-5,ИОТ_ВР40_Первая помощь при несчастных случаях,ИОТ_ВР44_Молот,ИПБ_2_огневые работы,ИПБ_4_ПБ с баллонами,ИПБ_17_эксплуатация и применение огнетушителей,ИПБОТ_ВР15_Компрессоры, пневмосистема,ИПБОТ_ВР34_работы на высоте,ИПБОТ_ВР35_Баллоны с газом,ИПБОТ_ВР37_Компрессор КВД,ИПБОТ_ВР39_Манометры и КИП,ИПБОТ_ВР47_Испытание манифольда,ИПБОТ_ВР61_Центробежные насосы котельной,ИПБОТ_П
User lelya.nakonechnyy.92@mail.ru : 21 марта 2020
420 руб.
Слесарный инструмент. Охрана производственных объектов, Трубогибочный механизм
up Наверх