Курсовая работа: Программа построения грамматики для конечного автомата
Hетерминалы грамматики не попавшие в список, построенный по приведенному выше алгоритму, являются недостижимыми и, не нарушая эквивалентности, из множества правил Р можно удалить все правила, содержащие такие нетерминалы.
Не нарушая эквивалентности, можно также исключить правила такого вида: A - A или A - B, B - C, C - A (циклический блок правил).
1.2.5 Построение грамматик для заданного КА
Любое регулярное множество, которое распознается КА, можно описать с помощью автоматной грамматики. Алгоритм построения грамматики следующий:
– Начальное состояние КА - начальный символ грамматики.
– Алфавит КА (без символа конец цепочки–"┤") - терминальные символы грамматики.
– Множество состояний КА - нетерминальные символы грамматики.
– Если в таблице переходов КА есть переход из состояния А в состояние В при воздействии входного символа х – ввести правило следующего вида: А - xB.
– Если D– допускающее состояние КА, то ввести правило следующего вида: D-*, где *– пустая цепочка(для отвергающих состояний правил нет).
– Закончить составление правил, когда будут обработаны все непустые клетки управляющей таблицы ("0" – пустая клетка).
2. Разработка программного продукта
2.1 Современные требования к программным продуктам
– Удобный, легкий в обращении интерфейс.
– В программе необходимо предусмотреть неквалифицированные действия пользователя.
– К программе должна прилагаться специально разработанная справочная система.
– Программа должна работать в разных операционных системах.
– Надёжность работы программы.
2.2 Область прикладного применения ПП
Представленный мною ПП является наглядным пособием для всех желающих изучить такую тему дискретной математики, как «Построение грамматики для заданного пользователем конечного автомата».
2.3 Обоснование выбора средств реализации
Программа написана в среде программирования Delphi 7.0 под Windows.
Основные характеристики среды разработки Delphi.
Delphi - это комбинация нескольких важнейших технологий:
–Высокопроизводительный компилятор в машинный код
– Объектно-ориентированная модель компонент
– Визуальное (а, следовательно, и скоростное) построение приложений из программных прототипов
– Масштабируемые средства для построения баз данных
Компилятор в машинный код. Компилятор, встроенный в Delphi, обеспечивает высокую производительность, необходимую для построения приложений в архитектуре “клиент-сервер”. Этот компилятор в настоящее время является самым быстрым в мире, его скорость компиляции составляет свыше 120 тысяч строк в минуту на компьютере 486DX33. Он предлагает легкость разработки и быстрое время проверки готового программного блока, характерного для языков четвертого поколения (4GL) и в то же время обеспечивает качество кода, характерного для компилятора 3GL. Кроме того, Delphi обеспечивает быструю разработку без необходимости писать вставки на Си или ручного написания кода (хотя это возможно).
В процессе построения приложения разработчик выбирает из палитры компонент готовые компоненты как художник, делающий крупные мазки кистью. Еще до компиляции он видит результаты своей работы - после подключения к источнику данных их можно видеть отображенными на форме, можно перемещаться по данным, представлять их в том или ином виде. В этом смысле проектирование в Delphi мало чем отличается от проектирования в интерпретирующей среде, однако после выполнения компиляции мы получаем код, который исполняется в 10-20 раз быстрее, чем то же самое, сделанное при помощи интерпретатора. Кроме того, компилятор компилятору рознь, в Delphi компиляция производится непосредственно в родной машинный код, в то время как существуют компиляторы, превращающие программу в так называемый p-код, который затем интерпретируется виртуальной p-машиной. Это не может не сказаться на фактическом быстродействии готового приложения.
Объектно-ориентированная модель программных компонент. Основной упор этой модели в Delphi делается на максимальном реиспользовании кода. Это позволяет разработчикам строить приложения весьма быстро из заранее подготовленных объектов, а также дает им возможность создавать свои собственные объекты для среды Delphi. Никаких ограничений по типам объектов, которые могут создавать разработчики, не существует. Действительно, все в Delphi написано на нем же, поэтому разработчики имеют доступ к тем же объектам и инструментам, которые использовались для создания среды разработки. В результате нет никакой разницы между объектами, поставляемыми Borland или третьими фирмами, и объектами, которые вы можете создать. В стандартную поставку Delphi входят основные объекты, которые образуют удачно подобранную иерархию из 270 базовых классов.
2.4 Структура разрабатываемого программного продукта.
Рисунок 2 – Структура разрабатываемого программного продукта
Рассматриваемая структура изображена на рисунке 2.
2.5 Блок-схема