Регулярные выражения

Материал из WikiGrapp
Версия от 22:33, 3 июня 2009; KVN (обсуждение | вклад) (Создана новая страница размером '''Регулярные выражения''' (Regular expressions) --- метод задания [[регулярные множес...)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Регулярные выражения (Regular expressions) --- метод задания регулярных множеств.

Регулярные выражения в некотором алфавите [math]\displaystyle{ \Sigma }[/math] и регулярные множества, которые они обозначают, определяются рекурсивно следующим образом:

(1) [math]\displaystyle{ \emptyset }[/math], [math]\displaystyle{ e }[/math] и [math]\displaystyle{ a }[/math] для любого [math]\displaystyle{ a\in\Sigma }[/math] --- регулярные выражения, обозначающие регулярные множества [math]\displaystyle{ \emptyset }[/math], [math]\displaystyle{ \{e\} }[/math] и [math]\displaystyle{ \{a\} }[/math]

(2) если [math]\displaystyle{ p }[/math] и [math]\displaystyle{ q }[/math] --- регулярные выражения, обозначающие регулярные множества [math]\displaystyle{ P }[/math] и [math]\displaystyle{ Q }[/math] соответственно, то [math]\displaystyle{ (p+q) }[/math], [math]\displaystyle{ (pq) }[/math] и [math]\displaystyle{ (p)^* }[/math] --- регулярные выражения, обозначающие множества [math]\displaystyle{ P\cup Q }[/math], [math]\displaystyle{ PQ }[/math] и [math]\displaystyle{ P^* }[/math] соответственно;

(3) других регулярных выражений нет.

Обычно используется запись [math]\displaystyle{ p^+ }[/math] для сокращенного обозначения выражения [math]\displaystyle{ pp^* }[/math] и, кроме того, устраняются из регулярных выражений лишние скобки там, где это не может привести к недоразумениям. (Предполагается, что наивысшим приоритетом обладает операция [math]\displaystyle{ ^* }[/math], затем идет конкатенация и далее операция [math]\displaystyle{ + }[/math].)

Говорят, что два регулярных выражения равны (=), если они обозначают одно и то же регулярное множество.

Используется и другие методы задания языков, каждый из которых определяет в точности регулярные множества. Среди них --- автоматные грамматики, праволинейные грамматики, регулярные грамматики, конечные автоматы, детерминированные конечные автоматы.

Литература

[Ахо-Ульман],

[Касьянов/95]