- •2006 Печатается по решению научно-методического совета Иркутского Государственного университета
- •Оглавление
- •Введение
- •Содержание и задачи практикума
- •Лексический анализ
- •Регулярные грамматики
- •Конечный автомат
- •Технология и средства решения учебных задач
- •Компонент fsmUnit
- •Класс Lexemes
- •Учебные транслирующие программы
- •Пример диалоговой настройки и испытаний компонента fsmUnit
- •Пример программы лексического анализатора входной строки
- •Заключение
- •Использованные источники
- •664000, Иркутск, б. Гагарина, 36.
Учебные транслирующие программы
В рамках практикума предполагается, что учебные программы представляют собой диалоговые Windows-приложения, написанные на Visual Basic.Net.
Эти приложения включают модуль формы, на которой размещены настроенные соответствующим образом экземпляры компонента лексического анализа (FSMUnit). Также на этой форме должны быть размещены элементы управления для ввода входной цепочки, демонстрации результатов анализа и управления приложением.
В модуль формы должны быть включены процедуры лексического анализа (рис. 1).
Проект
на Visual
Studio .Net
Рис 1. Схема использования компонента FSMUnitв проекте.
Пример настройки компонента FSMUnit на регулярную грамматику приведен ниже в разделе 4.
Пример программы, в которой осуществляется применение настроенного компонента FSMUnit, приведен в разделе 5.
Пример диалоговой настройки и испытаний компонента fsmUnit
Построение грамматики и конечного автомата осуществляется следующим образом.
Запустить VB.Net
Создать новый проект типа Windows Application (рис. 2).
Рис 2. Создание проекта типа WindowsApplication
Разместить компонент FSMUnit на форме (рис. 3)
Рис 3. Интегрированная среда разработки VB.NET.
Размещение компонента FSMUnitна форме
Задать дескриптор лексемы (рис. 4)
Рис 4. Панель свойств для FSMUnit.
Задание дескриптора лексемы
Запустить режим настройки компонента FSMUnit в диалоговом режиме (рис. 5)
Рис 5. Панель свойств для FSMUnit.
Запуск режима настройки компонента FSMUnit
Ввести терминальные, нетерминальные символы и аксиому грамматики (рис. 6). Ввод и дальнейшая настройка компонента FSMUnit осуществляется с помощью формы (рис. 6). Кнопки «Назад», «Вперед» и «Отмена» позволяют переходить от одного этапа настройки к другому. Нажатие кнопки «Справка» воспроизводит текст включающий методические указания.
Рис 6. Настройка компонента FSMUnit. Ввод терминальных, нетерминальных
символов и аксиомы грамматики
Ввести правила грамматики (рис. 7)
Рис 7. Настройка компонента FSMUnit. Ввод правил грамматики
Ввести заключительные состояния конечного автомата (рис. 8)
Рис 8. Настройка компонента FSMUnit. Ввод заключительных состояний
конечного автомата
Сформировать функцию перехода конечного автомата (рис. 9). Для заполнения ячейки таблицы нужно на нее позиционировать курсор мыши и выбрать из выпадающего списка нужное состояние.
Рис 9. Настройка компонента FSMUnit. Формирование функции
перехода конечного автомата
Ввести пример входной строки и испытать конечный автомат на примере (рис. 10, рис. 11)
Рис 10. Настройка компонента FSMUnit. Ввод входной строки
конечного автомата
Рис 11. Настройка компонента FSMUnit. Запуск конечного
автомата на разбор входной строки
Cохранить настройки конечного автомата в файле (рис. 12). Путь к выбранному файлу автоматически установится в свойстве WorkFile компонента FSMUnit.
Рис 12. Сохранение настройки конечного автомата в виде файла