Теория формальных языков и компиляторов - лабораторные работы АВТ-113, АВТ-114 — Лабораторная работа №6 "Реализация алгоритма поиска подстрок с помощью регулярных выражений"

Тема лабораторной работы: Реализация алгоритма поиска подстрок с помощью регулярных выражений.

Цель работы: Реализовать алгоритм поиска в тексте подстрок, соответствующих заданным регулярным выражениям.

Задание: 

Используя библиотечные реализации (например, класс Regex в C#), решите 3 задачи в соответствии с персональным вариантом (варианты заданий в файле “ТФЯиК Задание на ЛР 6 АВТ-113, АВТ-114”). 

Необходимо встроить разработанные алгоритмы в интерфейс текстового редактора, разработанного на первой лабораторной работе. 

Исходные данные – текст, содержащий данные заданного формата. Выходные данные – найденные выражения с указанием позиции начала. Возможно выделение подстрок в исходном тексте.

Студент, выполнивший задание на лабораторную работу, прикрепляет ссылку на git-репозиторий с кодом программы в системe DiSpace в контролирующее мероприятие “Лабораторная работа 6”. В README-файле должна быть отражена следующая информация: решение 3 задач (регулярные выражения) и тестовые примеры поиска подстрок с указанием местоположения.

 

Оценка за выполнение лабораторной работы выставляется, если:

  1. работа программы продемонстрирована преподавателю.
  2. в ходе разговора с преподавателем студент ответил на все вопросы.
  3. ссылка на репозиторий проекта прикреплена к контролирующему мероприятию (срок - 13-14 недели).

Реализация данного задания является альтернативой защите лабораторной работы. 

Для задачи из 2 или 3 блока необходимо реализовать алгоритм поиска подстрок в тексте, перейдя к графу автомата. 

Дополните README-файл графом автомата и тестовыми примерами поиска подстрок с указанием местоположения (реализация с помощью автомата).

Для защиты лабораторной работы студенту необходимо ознакомиться с теоретическим материалом, представленным в главе 4 учебного пособия “Теория языков программирования: проектирование и реализация”, а также быть готовым к вопросам и задачам в конце главы.

Задачи к защите представлены в файле ниже.