Изменения

Перейти к: навигация, поиск

Участница:Наталья Юльцова

1274 байта добавлено, 23:01, 5 января 2021
Преобразование регулярного выражения в \varepsilon-НКА.
[[Файл:RegToAut.png|280px|thumb|right|рис. 1. "Виды выражений"]]
Рассмотрим подробнее как преобразуется В построении регулярных выражений используются константы(<tex>\varepsilon</tex> и ∅) и переменные для обозначения языков, и операторы для обозначения объединения(|), конкатенации и замыкания Клини(*). Регулярные выражения можно определить рекурсивно. Для каждого регулярного выражения <tex>E</tex> описывается представленный им язык, который обозначается через <tex>L(E)</tex>.  Чтобы преобразовать регулярное выражение выражения в <tex>\varepsilon</tex>-НКА, предполагается, что <tex>L = L(R)</tex> для регулярного выражения <tex>R</tex>. Автомат для Построение проводится структурной индукцией по выражению <tex>R</tex>. Три части индукции представлены на рис. 1. Произведем разбиение данного регулярного выражения строится композицией из автоматов, соответствующихподвыражениямна подвыражения. Возможны четыре случая.
Виды выражений:
# Выражение имеет вид <tex>RS</tex>. Автомат для этой конкатенации представлен на рис. 1.б.
# Выражение имеет вид <tex>R^*</tex> для некоторого подвыражения <tex>R</tex>. Используем автомат, представленный на рис. 1.в.
# Выражение имеет вид <tex>(R)</tex> для некоторого подвыражения <tex>R</tex>. Автомат для <tex>R</tex> может быть автоматом и для <tex>(R)</tex>, поскольку скобки не влияют на язык, задаваемый выражением.
===Пример===

Навигация