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

200

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

ID: 130955
Дата закачки: 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)
-------------------
Обратите внимание, что преподаватели часто переставляют варианты и меняют исходные данные!
Если вы хотите, чтобы работа точно соответствовала, смотрите исходные данные. Если их нет, обратитесь к продавцу или к нам в тех. поддержку.
Имейте ввиду, что согласно гарантии возврата средств, мы не возвращаем деньги если вариант окажется не тот.
-------------------

   Скачать

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


    Скачано: 1         Коментариев: 0


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

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

Лабораторные работы №1,2,3,4,5 по дисциплине: Теория языков программирования и методы трансляции. Для всех вариантов.
Лабораторная работа 1 2 3 Теория языков программирования и методы трансляции Все варианты 2023 год
Лабораторные работы №1-5 по дисциплине: Теория языков программирования и методы трансляции. Вариант 05.
Лабораторные работы №1-5 по дисциплине: Теория языков программирования и методы трансляции. Вариант №7.
Лабораторные работы по предмету : «Теория языков программирования и методы трансляции» (№№1-5). Вариант № 1
Лабораторная работа № 1 по дисциплине: "Теория языков программирования и методы трансляции" Тема: "Генерация цепочек языка". Вариант № 1
Лабораторная работа № 2 Теория языков программирования и методы трансляции. 10-й вариант
Ещё искать по базе с такими же ключевыми словами.

Не можешь найти то что нужно? Мы можем помочь сделать! 

От 350 руб. за реферат, низкие цены. Просто заполни форму и всё.

Спеши, предложение ограничено !



Что бы написать комментарий, вам надо войти в аккаунт, либо зарегистрироваться.

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

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

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

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

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


Способы оплаты:
UnionPay СБР Ю-Money qiwi Payeer Крипто-валюты Крипто-валюты


И еще более 50 способов оплаты...
Гарантии возврата денег

Как скачать и покупать?

Как скачивать и покупать в картинках


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