Тема: Разработка лексического анализатора (сканера).
Цель работы: Изучить назначение лексического анализатора. Спроектировать алгоритм и выполнить программную реализацию сканера.
В соответствии с вариантом задания необходимо:
Входные данные - строка (текст программного кода).
Выходные данные - последовательность условных кодов, описывающих структуру разбираемого текста с указанием места положения и типа ("число", "идентификатор", "знак", "недопустимый символ" и т.д.). Например, для строки "int x=123;":
14 - ключевое слово - int - с 1 по 3 символ
11 - разделитель - (пробел) - с 4 по 4 символ
2 - идентификатор - x - с 5 по 5 символ
10 - оператор присваивания - = - с 6 по 6 символ
1 - целое без знака - 123 - с 7 по 9 символ
16 - конец оператора - ; - с 10 по 10 символ
Окно вывода результатов можно реализовать в виде таблицы (элемент управления DataGridView). Столбцы таблицы представляют собой условный код, тип лексемы, лексема и ее местоположение.
Варианты работ на семестр представлены по ссылке ниже:
https://docs.google.com/document/d/1i5wUDDk1cUODPhXITiFYCvlq3aQ31ygRoAIhihoiezU/edit?usp=sharing
Студент, выполнивший задание на лабораторную работу, прикрепляет ссылку на git-репозиторий с кодом программы в системe DiSpace в контролирующее мероприятие “Лабораторная работа 2”. В README-файле должна быть отражена следующая информация: постановка задачи, персональный вариант задания на лабораторную работу, примеры допустимых строк, диаграмма состояний сканера и тестовые примеры.
Оценка за выполнение лабораторной работы выставляется, если:
Реализация данного задания является альтернативой защите лабораторной работы.
В соответствии с вариантом задания на курсовую работу необходимо:
Более подробно про программное обеспечение FLEX&BISON можно прочитать в разделе 7.3 учебного пособия “Теория языков программирования: проектирование и реализация”, а также в представленном отчете.
Для защиты лабораторной работы студенту необходимо ознакомиться с теоретическим материалом, представленным в лекциях 2-8 (составитель Достовалов Д.Н.), а также быть готовым к вопросам и задачам в конце лекций. Рекомендуется ознакомиться с главой 2 учебного пособия “Теория языков программирования: проектирование и реализация”.