Все разделы / Программирование /


Страницу Назад
Поискать другие аналоги этой работы

За деньгиЗа деньги (200 руб.)

Теория языков программирования. Лабораторные работы №№1-5. Вариант №7

Дата закачки: 18 Декабря 2013
Продавец: ambagoestoyou
    Посмотреть другие работы этого продавца

Тип работы: Работа Лабораторная
Форматы файлов: Исполняемые фалы (EXE), Microsoft Office
Сдано в учебном заведении: СибГУТИ

Описание:
Работы выполнены на C# в среде .NET 2.0.

DISCLAMER: Лабораторные 3, 4, 5 исправлялись по несколько раз, 4-ая аж 5 раз. Если работы предполагается сдавать Бах, то очень советую переработать хотя бы интерфейс программы. Зачет этих работ Бах с первого раза гарантию НЕ даю, наверняка придется что-то переделывать (у нее идей куча и целый тестерский отдел :) ). Помощи в исправлении замечаний не оказываю, сам в свое время натрахался так, что уже смотреть на это не могу.

Лабораторная №1
Пусть язык задан контекстно-свободной грамматикой. Написать прог-рам¬му, которая по заданной грамматике будет генерировать ВСЕ цепочки языка в некотором диапазоне длин. Использовать только левосторонний или правосторонний вывод! Диапазон длин генерируемых цепочек должен задаваться пользователем при запуске программы.
Предусмотреть возможность выбора пользователю – использовать заданную в программе грамматику или вводить свою с клавиатуры.
На вход программы подаётся КС-грамматика (терминальный и не¬тер-ми¬наль¬ный алфавиты, целевой символ, правила вывода), задаётся диапазон длин цепочек, указывается тип вывода (левосторонний или правосторонний).
Рекомендуется для ввода исходных данных использовать соот¬ветст-вую¬щую форму. При вводе правил грамматики не рекомендуется предоставлять пользователю излишнюю свободу действий, например, удобнее запретить ввод в левой части правил более чем одного нетерминального символа, чем проверять введённые правила на соответствие контекстно-свободному типу.
На выходе должен быть список построенных цепочек. Все цепочки в спис¬ке должны быть различны. При получении одинаковых цепочек (раз-ны¬ми способами) их следует сохранять в списке выводимых цепочек только в случае выполнения дополнительного задания.
Проверить программу на примерах из лекционного курса и на заданиях из контрольных вопросов к теоретической части.

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

Лабораторная №3
Пусть контекстно-свободный язык задаётся детерминированным автоматом с магазинной памятью – ДМПА. Написать программу, которая будет проверять для вводимой цепочки, принадлежит ли она заданному КС-языку. В случае отрицательного ответа необходимо давать пояснение, по какой причине цепочка не принадлежит языку (аналогично лаб. раб №2) Исходный автомат вводить с клавиатуры в соответствии с определённым форматом. Ввод цепочек также производить с клавиатуры, выполняя его до тех пор, пока не возникнет желание закончить работу.
На вход программы подаётся ДМПА (множество состояний, алфавит языка, алфавит магазина, начальное состояние, начальное содержимое стека, множество заключительных состояний, функция переходов в виде списка правил) и проверяемая цепочка символов (может вводиться многократно, т.е. возможно проверить любое количество цепочек). При этом в проверяемую цепочку могут входить и символы, не принадлежащие алфавиту языка; цепочка может быть и пустой.
Рекомендуется для ввода исходных данных использовать соответствующую форму с полями выбора. При вводе функции переходов не рекомендуется предоставлять пользователю излишнюю свободу действий.
Выход – отображение на экране процесса проверки цепочки в виде последовательной смены конфигураций и вывод результата – сообщения, принадлежит ли цепочка языку.

Лабораторная №4
Пусть дана схема синтаксически управляемого перевода. Написать прог-рамму, которая будет выполнять перевод цепочек с одного языка на другой в соответствии с этой схемой. При невозможности выполнить перевод (цепоч¬ка не строится по правилам входной грамматики) необходимо выводить на экран соответствующее сообщение.
Правила СУ-схемы считывать из файла (предоставив пользователю воз-мож¬ность редактировать их на экране); цепочки вводить с клавиатуры, про-цесс перевода отображать на экране. Предусмотреть возможность выпол¬нения перевода любого количества цепочек для заданной схемы.
На вход программы подаётся схема СУ-перевода (алфавиты входного и выходного языков, множество нетерминальных символов, правила вывода, целевой символ) и цепочка языка, которую необходимо перевести (может вводиться многократно, т.е. возможно перевести любое количество цепочек). Цепочка может быть и не относящейся к исходному языку…
Работа программы может быть организована по-разному. В качестве основного задания допустимо использовать материалы лабораторной работы №1. На первом этапе в соответствии с входной грамматикой схемы СУ-перевода попытаться сгенерировать цепочку, поданную на вход (поскольку её длина известна, можно генерировать только цепочки этой длины). При генерации фиксировать номера использованных правил. В случае успешной генерации выполнить второй этап – применяя номера использованных правил, получать одновременно входную и выходную цепочки по правилу вывода и соответствующему ему элементу перевода.
На выходе – отображение процесса перевода и результирующая цепочка языка.

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


Коментарии: Сдавались в 2012 году

Размер файла: 2,5 Мбайт
Фаил: Упакованные файлы (.zip)

-------------------
Обратите внимание, что преподователи часто переставляют варианты и меняют исходные данные!
Если вы хотите что бы работа точно соответствовала, смотрите исходные данные. Если их нет, обратитесь к продавцу или к нам в тех. поддержку.
Имейте ввиду, что согласно гарантии возврата средств, мы не возвращем деньги если вариант окажется не тот.
-------------------

 Скачать Скачать

 Добавить в корзину Добавить в корзину

        Коментариев: 0


Есть вопросы? Посмотри часто задаваемые вопросы и ответы на них.
Опять не то? Мы можем помочь сделать!

Некоторые похожие работы:

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

Сдай работу играючи!

Рекомендуем вам также биржу исполнителей. Здесь выполнят вашу работу без посредников.
Рассчитайте предварительную цену за свой заказ.



Страницу Назад

  Cодержание / Программирование / Теория языков программирования. Лабораторные работы №№1-5. Вариант №7

Вход в аккаунт:

Войти

Перейти в режим шифрования SSL

Забыли ваш пароль?

Вы еще не зарегистрированы?

Создать новый Аккаунт




Сайт помощи студентам, без посредников!