Como alternativa para a representação dos conjuntos regulares, visando obter maior concisão e facilidade de manipulação, Kleene desenvolveu, na década de 1950, a notação das expressões regulares. Analise a expressão regular sobre o alfabeto {a, b} abaixo:
(a+b)*a(a+b)*+(a+b)*b(a+b)*
A expressão pode ser simplificada como:
a. (a+b)*
b. a*b*
c. ab+ba
d. (a+b)*(a+b)(a+b)*
e. (a+b)*(a+b)
A expressão fornecida é composta por duas subexpressões:
1) A subexpressão (a+b)*a(a+b)* gera todas as palavras que contêm pelo menos um símbolo a.
2) A subexpressão (a+b)*b(a+b)* gera todas as palavras que contêm pelo menos um símbolo b.
Portanto, a expressão representa o conjunto de todas as palavras possíveis sobre {a, b} que contenham pelo menos um símbolo a ou b, ou seja, Σ+
Com a linguagem especificada, vamos analisar cada uma das expressões regulares fornecidas:
a. (a+b)*
A presente expressão regular produz a palavra vazia (ε).
b. a*b*
A presente expressão regular produz a palavra vazia (ε).
c. ab+ba
A presente expressão regular produz apenas as palvras ab ou ba
d. (a+b)*(a+b)(a+b)*
A presente expressão regular produz todas as palavras possíveis sobre Σ+.
e. (a+b)*(a+b)
A presente expressão regular produz todas as palavras possíveis sobre Σ+.