Теория языков программирования. Лабораторные работы №№1-5. Вариант №7
Состав работы
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Работа представляет собой zip архив с файлами (распаковать онлайн), которые открываются в программах:
- Программа для просмотра изображений
- Microsoft Word
- Microsoft Excel
- Программа для просмотра текстовых файлов
Описание
Работы выполнены на C# в среде .NET 2.0.
DISCLAMER: Лабораторные 3, 4, 5 исправлялись по несколько раз, 4-ая аж 5 раз. Если работы предполагается сдавать Бах, то очень советую переработать хотя бы интерфейс программы. Зачет этих работ Бах с первого раза гарантию НЕ даю, наверняка придется что-то переделывать (у нее идей куча и целый тестерский отдел :) ). Помощи в исправлении замечаний не оказываю, сам в свое время натрахался так, что уже смотреть на это не могу.
Лабораторная №1
Пусть язык задан контекстно-свободной грамматикой. Написать прог-рамму, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использовать заданную в программе грамматику или вводить свою с клавиатуры.
На вход программы подаётся КС-грамматика (терминальный и нетер-минальный алфавиты, целевой символ, правила вывода), задаётся диапазон длин цепочек, указывается тип вывода (левосторонний или правосторонний).
Рекомендуется для ввода исходных данных использовать соответст-вующую форму. При вводе правил грамматики не рекомендуется предоставлять пользователю излишнюю свободу действий, например, удобнее запретить ввод в левой части правил более чем одного нетерминального символа, чем проверять введённые правила на соответствие контекстно-свободному типу.
На выходе должен быть список построенных цепочек. Все цепочки в списке должны быть различны. При получении одинаковых цепочек (раз-ными способами) их следует сохранять в списке выводимых цепочек только в случае выполнения дополнительного задания.
Проверить программу на примерах из лекционного курса и на заданиях из контрольных вопросов к теоретической части.
Лабораторная №2
Пусть регулярный язык задаётся конечным автоматом – ДКА. Написать программу, которая будет проверять по заданному автомату вводимую цепочку и делать вывод о том, принадлежит ли она рассматриваемому регулярному языку. В случае отрицательного ответа необходимо давать пояснение, по какой причине цепочка не принадлежит языку – например, «в цепочке присутствуют посторонние символы», «после прочтения цепочки автомат не пришёл в конечное состояние» и т.п. Исходный автомат вводить с клавиатуры в соответствии с определённым форматом. Ввод цепочек также производить с клавиатуры.
На вход программы подаётся ДКА (множество состояний, алфавит языка, начальное состояние, множество заключительных состояний, функция переходов в виде таблицы) и проверяемая цепочка символов (может вводиться многократно, т.е. возможно проверить любое количество цепочек). При этом в проверяемую цепочку могут входить и символы, не принадлежащие алфавиту языка; цепочка может быть и пустой.
Программа должна предоставлять пользователю возможность изменять начальное и конечные состояния с сохранением введённой функции переходов для заданного автомата.
Выход – отображение на экране процесса проверки цепочки в виде последовательной смены конфигураций и вывод результата – сообщения, принадлежит ли цепочка языку.
Лабораторная №3
Пусть контекстно-свободный язык задаётся детерминированным автоматом с магазинной памятью – ДМПА. Написать программу, которая будет проверять для вводимой цепочки, принадлежит ли она заданному КС-языку. В случае отрицательного ответа необходимо давать пояснение, по какой причине цепочка не принадлежит языку (аналогично лаб. раб №2) Исходный автомат вводить с клавиатуры в соответствии с определённым форматом. Ввод цепочек также производить с клавиатуры, выполняя его до тех пор, пока не возникнет желание закончить работу.
На вход программы подаётся ДМПА (множество состояний, алфавит языка, алфавит магазина, начальное состояние, начальное содержимое стека, множество заключительных состояний, функция переходов в виде списка правил) и проверяемая цепочка символов (может вводиться многократно, т.е. возможно проверить любое количество цепочек). При этом в проверяемую цепочку могут входить и символы, не принадлежащие алфавиту языка; цепочка может быть и пустой.
Рекомендуется для ввода исходных данных использовать соответствующую форму с полями выбора. При вводе функции переходов не рекомендуется предоставлять пользователю излишнюю свободу действий.
Выход – отображение на экране процесса проверки цепочки в виде последовательной смены конфигураций и вывод результата – сообщения, принадлежит ли цепочка языку.
Лабораторная №4
Пусть дана схема синтаксически управляемого перевода. Написать прог-рамму, которая будет выполнять перевод цепочек с одного языка на другой в соответствии с этой схемой. При невозможности выполнить перевод (цепочка не строится по правилам входной грамматики) необходимо выводить на экран соответствующее сообщение.
Правила СУ-схемы считывать из файла (предоставив пользователю воз-можность редактировать их на экране); цепочки вводить с клавиатуры, про-цесс перевода отображать на экране. Предусмотреть возможность выполнения перевода любого количества цепочек для заданной схемы.
На вход программы подаётся схема СУ-перевода (алфавиты входного и выходного языков, множество нетерминальных символов, правила вывода, целевой символ) и цепочка языка, которую необходимо перевести (может вводиться многократно, т.е. возможно перевести любое количество цепочек). Цепочка может быть и не относящейся к исходному языку…
Работа программы может быть организована по-разному. В качестве основного задания допустимо использовать материалы лабораторной работы №1. На первом этапе в соответствии с входной грамматикой схемы СУ-перевода попытаться сгенерировать цепочку, поданную на вход (поскольку её длина известна, можно генерировать только цепочки этой длины). При генерации фиксировать номера использованных правил. В случае успешной генерации выполнить второй этап – применяя номера использованных правил, получать одновременно входную и выходную цепочки по правилу вывода и соответствующему ему элементу перевода.
На выходе – отображение процесса перевода и результирующая цепочка языка.
Лабораторная №5
Пусть дан преобразователь с магазинной памятью; написать программу, которая будет выполнять перевод цепочек с одного языка на другой с по-мощью заданного преобразователя. При невозможности выполнить перевод (цепочка не принадлежит исходному языку) необходимо выводить на экран соответствующее сообщение.
Исходный преобразователь вводить с клавиатуры в соответствии с опре-делённым форматом. Ввод цепочек также производить с клавиатуры, выпол-няя его до тех пор, пока не возникнет желание закончить работу. Процесс пе-ревода цепочки в виде последовательной смены конфигураций отображать на экране.
На вход программы подаётся ДМП-преобразователь (множество состоя-ний, алфавиты входного и выходного языков, алфавит магазина, начальное состояние, начальное содержимое стека, множество заключительных состоя-ний, функция переходов в виде списка правил) и проверяемая цепочка симво-лов (аналогично лаб. раб. №3).
Рекомендуется за основу взять программу лабораторной работы №3, до-полнив исходные данные выходным алфавитом, функцию переходов – в соот-ветствии с определением преобразователя, а конфигурации – выходными цепочками.
Выход: отображение на экране процесса перевода цепочки в виде последовательной смены конфигураций преобразователя, результат перевода – полученная цепочка
DISCLAMER: Лабораторные 3, 4, 5 исправлялись по несколько раз, 4-ая аж 5 раз. Если работы предполагается сдавать Бах, то очень советую переработать хотя бы интерфейс программы. Зачет этих работ Бах с первого раза гарантию НЕ даю, наверняка придется что-то переделывать (у нее идей куча и целый тестерский отдел :) ). Помощи в исправлении замечаний не оказываю, сам в свое время натрахался так, что уже смотреть на это не могу.
Лабораторная №1
Пусть язык задан контекстно-свободной грамматикой. Написать прог-рамму, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использовать заданную в программе грамматику или вводить свою с клавиатуры.
На вход программы подаётся КС-грамматика (терминальный и нетер-минальный алфавиты, целевой символ, правила вывода), задаётся диапазон длин цепочек, указывается тип вывода (левосторонний или правосторонний).
Рекомендуется для ввода исходных данных использовать соответст-вующую форму. При вводе правил грамматики не рекомендуется предоставлять пользователю излишнюю свободу действий, например, удобнее запретить ввод в левой части правил более чем одного нетерминального символа, чем проверять введённые правила на соответствие контекстно-свободному типу.
На выходе должен быть список построенных цепочек. Все цепочки в списке должны быть различны. При получении одинаковых цепочек (раз-ными способами) их следует сохранять в списке выводимых цепочек только в случае выполнения дополнительного задания.
Проверить программу на примерах из лекционного курса и на заданиях из контрольных вопросов к теоретической части.
Лабораторная №2
Пусть регулярный язык задаётся конечным автоматом – ДКА. Написать программу, которая будет проверять по заданному автомату вводимую цепочку и делать вывод о том, принадлежит ли она рассматриваемому регулярному языку. В случае отрицательного ответа необходимо давать пояснение, по какой причине цепочка не принадлежит языку – например, «в цепочке присутствуют посторонние символы», «после прочтения цепочки автомат не пришёл в конечное состояние» и т.п. Исходный автомат вводить с клавиатуры в соответствии с определённым форматом. Ввод цепочек также производить с клавиатуры.
На вход программы подаётся ДКА (множество состояний, алфавит языка, начальное состояние, множество заключительных состояний, функция переходов в виде таблицы) и проверяемая цепочка символов (может вводиться многократно, т.е. возможно проверить любое количество цепочек). При этом в проверяемую цепочку могут входить и символы, не принадлежащие алфавиту языка; цепочка может быть и пустой.
Программа должна предоставлять пользователю возможность изменять начальное и конечные состояния с сохранением введённой функции переходов для заданного автомата.
Выход – отображение на экране процесса проверки цепочки в виде последовательной смены конфигураций и вывод результата – сообщения, принадлежит ли цепочка языку.
Лабораторная №3
Пусть контекстно-свободный язык задаётся детерминированным автоматом с магазинной памятью – ДМПА. Написать программу, которая будет проверять для вводимой цепочки, принадлежит ли она заданному КС-языку. В случае отрицательного ответа необходимо давать пояснение, по какой причине цепочка не принадлежит языку (аналогично лаб. раб №2) Исходный автомат вводить с клавиатуры в соответствии с определённым форматом. Ввод цепочек также производить с клавиатуры, выполняя его до тех пор, пока не возникнет желание закончить работу.
На вход программы подаётся ДМПА (множество состояний, алфавит языка, алфавит магазина, начальное состояние, начальное содержимое стека, множество заключительных состояний, функция переходов в виде списка правил) и проверяемая цепочка символов (может вводиться многократно, т.е. возможно проверить любое количество цепочек). При этом в проверяемую цепочку могут входить и символы, не принадлежащие алфавиту языка; цепочка может быть и пустой.
Рекомендуется для ввода исходных данных использовать соответствующую форму с полями выбора. При вводе функции переходов не рекомендуется предоставлять пользователю излишнюю свободу действий.
Выход – отображение на экране процесса проверки цепочки в виде последовательной смены конфигураций и вывод результата – сообщения, принадлежит ли цепочка языку.
Лабораторная №4
Пусть дана схема синтаксически управляемого перевода. Написать прог-рамму, которая будет выполнять перевод цепочек с одного языка на другой в соответствии с этой схемой. При невозможности выполнить перевод (цепочка не строится по правилам входной грамматики) необходимо выводить на экран соответствующее сообщение.
Правила СУ-схемы считывать из файла (предоставив пользователю воз-можность редактировать их на экране); цепочки вводить с клавиатуры, про-цесс перевода отображать на экране. Предусмотреть возможность выполнения перевода любого количества цепочек для заданной схемы.
На вход программы подаётся схема СУ-перевода (алфавиты входного и выходного языков, множество нетерминальных символов, правила вывода, целевой символ) и цепочка языка, которую необходимо перевести (может вводиться многократно, т.е. возможно перевести любое количество цепочек). Цепочка может быть и не относящейся к исходному языку…
Работа программы может быть организована по-разному. В качестве основного задания допустимо использовать материалы лабораторной работы №1. На первом этапе в соответствии с входной грамматикой схемы СУ-перевода попытаться сгенерировать цепочку, поданную на вход (поскольку её длина известна, можно генерировать только цепочки этой длины). При генерации фиксировать номера использованных правил. В случае успешной генерации выполнить второй этап – применяя номера использованных правил, получать одновременно входную и выходную цепочки по правилу вывода и соответствующему ему элементу перевода.
На выходе – отображение процесса перевода и результирующая цепочка языка.
Лабораторная №5
Пусть дан преобразователь с магазинной памятью; написать программу, которая будет выполнять перевод цепочек с одного языка на другой с по-мощью заданного преобразователя. При невозможности выполнить перевод (цепочка не принадлежит исходному языку) необходимо выводить на экран соответствующее сообщение.
Исходный преобразователь вводить с клавиатуры в соответствии с опре-делённым форматом. Ввод цепочек также производить с клавиатуры, выпол-няя его до тех пор, пока не возникнет желание закончить работу. Процесс пе-ревода цепочки в виде последовательной смены конфигураций отображать на экране.
На вход программы подаётся ДМП-преобразователь (множество состоя-ний, алфавиты входного и выходного языков, алфавит магазина, начальное состояние, начальное содержимое стека, множество заключительных состоя-ний, функция переходов в виде списка правил) и проверяемая цепочка симво-лов (аналогично лаб. раб. №3).
Рекомендуется за основу взять программу лабораторной работы №3, до-полнив исходные данные выходным алфавитом, функцию переходов – в соот-ветствии с определением преобразователя, а конфигурации – выходными цепочками.
Выход: отображение на экране процесса перевода цепочки в виде последовательной смены конфигураций преобразователя, результат перевода – полученная цепочка
Дополнительная информация
Сдавались в 2012 году
Похожие материалы
Теория языков программирования и методы трансляции. Лабораторные работы №1-5. Вариант №7
ivanPBT22
: 28 мая 2015
Лабораторная работа № 1
Генерация цепочек языка
Лабораторная работа № 2
Моделирование работы ДКА
Лабораторная работа № 3
Моделирование работы МПА
Лабораторная работа № 4
Перевод с помощью СУ-схемы
Лабораторная работа № 5
Перевод с помощью МП-преобразователя
250 руб.
Лабораторные работы №1-5 по дисциплине: Теория языков программирования и методы трансляции. Вариант №7.
teacher-sib
: 28 ноября 2016
Лабораторная работа No1
Генерация цепочек языка
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использовать заданную в программе грамматику
250 руб.
Теория языков программирования и методы трансляции. Лабораторная работа №1
bvv1975
: 26 января 2016
Теория языков программирования и методы трансляции_Лабораторная работа 1
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
20 руб.
Теория языков программирования и методы трансляции. Лабораторная работа №1.
zhekaersh
: 20 февраля 2015
Лабораторная работа № 1 Генерация цепочек языка
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использовать заданную в программе грамматику
70 руб.
Теория языков программирования. Контрольная работа. Вариант №7
ambagoestoyou
: 18 декабря 2013
Задача No1
Пусть регулярный язык задан своим описанием:
Множество всех цепочек из {1,a,b}*, содержащих подцепочку ’aa’ и чётное количество единиц. Например, ‘aa’, ‘1aa1’, ‘1b1aa’, ‘aa11’ и т.п.
Построить регулярное выражение, задающее этот язык.
Задача No2
Построить регулярную грамматику, задающую язык из задачи No1.
Задача No3
Построить КС-грамматику, задающую язык из задачи No1. Сгенерировать две цепочки языка по построенной грамматике. Процесс генерации цепочек языка записать в виде цепоч
100 руб.
Лабораторная работа №1 по дисциплине «Теория языков программирования и методы трансляции»
Сергей38
: 26 января 2023
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использовать заданную в программе грамматику или вводить свою с клавиатуры.
На вход программы
200 руб.
Лабораторная работа №1 по дисциплине Теория языков программирования и методы трансляции
Некто
: 16 сентября 2018
Генерация цепочек языка
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использовать заданную в программе грамматику или вводить свою с кла
100 руб.
Теория языков программирования и методы трансляции. Лабораторные работы №1-5.
Cole82
: 6 декабря 2016
Лабораторная работа № 1
Генерация цепочек языка
Пусть язык задан контекстно-свободной грамматикой (теоретический материал разделов 1.1–1.4). Написать программу, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использовать заданную в программе граммати
39 руб.
Другие работы
Экзамен по дисциплине: Корпоративные финансы. Билет №11.
teacher-sib
: 3 ноября 2016
Билет №11
Вопрос (дайте письменный развернутый ответ).
В чем заключается суть создания горизонтальных корпораций? В чем плюсы и минусы таких структур? Приведите пример таких компаний из практической деятельности (экономика вашего населенного пункта, региона, страны, мира, как в настоящее время, так и возможно в истории экономической деятельности).
Задача
Сумма уставного капитала предприятия равна 1000 тыс. руб. В настоящее время у предприятия нет заемного капитала (вариант А). Руководство пред
150 руб.
Конструкция и методика расчёта доменной печи
Elfa254
: 15 февраля 2014
1 Доменные печи .....................................................................4
1.1 Устройство и работа доменной печи ...........................................4
1.2 Теплообмен в доменных печах …………………………….……….7
1.3 Показатели работы доменных печей……………………………… 10
Заключение ……………………………………………………………..13
Список использованных источников …………………………………14
1 Доменные печи
1.1 Устройство и работа доменной печи
Доменная печь предназначена для выплавки чугуна из железных руд и являетс
20 руб.
Сокращение потерь нефти при эксплуатации резервуарных парков-Курсовая работа-Дипломная работа-Специальность-Разработка и эксплуатация нефтяных и газовых месторождений РЭНГМ-Нефтегазовое дело-Эксплуатация и обслуживание объектов нефтегазодобычи
lesha.nakonechnyy.92@mail.ru
: 9 ноября 2017
Сокращение потерь нефти при эксплуатации резервуарных парков-Курсовая работа-Дипломная работа-Специальность-Разработка и эксплуатация нефтяных и газовых месторождений РЭНГМ-Нефтегазовое дело-Эксплуатация и обслуживание объектов нефтегазодобычи
ВВЕДЕНИЕ
Резервуар - емкость, предназначенная для хранения, приема, откачки и измерения объема нефти. Резервуарный парк - группа (группы) резервуаров, предназначенных для приема, хранения и откачки нефти и размещенных на те
1626 руб.
Экзамен по основам радиосвязи и телевидению. Вариант № 3. 7-й семестр
ramzes14
: 19 ноября 2014
Вопрос №1 Объясните необходимость коррекции амплитудной характеристики ТВ тракта.
Вопрос №2 Объясните основные принципы выбора числа воспроизводимых строк в телевидении.
200 руб.