Uma expressão regular é definida recursivamente como
- para alguns é uma expressão regular,
- é uma expressão regular,
- é uma expressão regular,
- onde e são expressões regulares é uma expressão regular,
- onde e são expressões regulares é uma expressão regular,
- onde é uma expressão regular é uma expressão regular.
Esta definição é retirada da página 64 de
Sipser, Michael. Introdução à Teoria da Computação, 3ª edição. Cengage Learning, 2012.
Agora, tenho as seguintes perguntas.
- Por que a definição não contém as operações
intersection
,complement
oureverse
? - Se mudarmos o quarto item para , não temos uma definição equivalente, ou seja, para cada idioma regular, há uma expressão regular modificado e vice-versa?
- Sei que essa definição é completa e bem definida, mas por que é preferível a outras definições equivalentes, bem definidas e completas?
formal-languages
regular-languages
regular-expressions
Ali Shakiba
fonte
fonte
Respostas:
1) Se também permitirmos a interseção e o complemento, as expressões resultantes às vezes são chamadas de expressões regulares estendidas; como os idiomas regulares são fechados em operações booleanas, nada é ganho por eles. É apenas açúcar sintático. Uma conclusão semelhante vale para a operação reversa. Parte da razão pela qual, em primeira instância, todas as outras operações não são mencionadas é o objetivo de manter a definição o mais simples possível, para que as provas (indutivas) não precisem ser tratadas em muitos casos. Outra causa pode ser que, se permitirmos certas operações, mas outras não, em alguns casos resultam classes de linguagem muito distintas (subregulares), por exemplo, se considerarmos a expressão regular estendida sem o operador estrela, obteremos uma subclasse apropriada das regulares , os chamados idiomas sem estrelas ou aperiódicos, consulte a Wikipedia: idioma sem estrelas .
2) Se mantivermos os itens 1. - 6. mas apenas alterar o item 4. ao usar a interseção em vez da união, obtemos uma subclasse apropriada dos idiomas regulares. Por exemplo, não podemos mais descrever o idioma pois isso envolveria a união de { a } e { b }L={a,b} {a} {b} (veja a prova abaixo). Se permitirmos a complementação, as coisas mudam à medida que temos a união de volta pelas leis de DeMorgan.
3) Isso foi parcialmente respondido por mim em 1), mas o que você quer dizer quando diz que essa definição é preferida? Sei definições onde 2. for omitido (como temos por 6. que ), ou 3. for omitido (como temos ∅ = L ( ¯ X * )), ou ambos são omitidos ; portanto, essa não é a definição mínima possível (ela também nos fornece algum açúcar sintático, pois temos símbolos extras para descrever { ε } e ∅ ).L(∅∗)={ε} ∅=L(X∗¯¯¯¯¯¯¯ {ε} ∅
EDIT : Meu primeiro comentário mencionado em 2) estava errado, os idiomas no fechamento indutivo em , ∗ e ∩ não são necessariamente subconjuntos de x ∗ para alguns x ∈ X , por exemplo, considere L ( a ∘ b ) = { a b } . No entanto, temos que L = { a , b } não poderia ser descrito por essa expressão. Eu darei uma prova, ou seja, eu prova que se L = L ( R )∘ ∗ ∩ x∗ x∈X L(a∘b)={ab} L={a,b} L=L(R) para alguma expressão com o quarto item modificado, então se (e, portanto, a ≠ bX={a,b} a≠b )
A prova vai por indução da expressão R . Para o caso base que detém vacuously, agora supor que detém para L ( R 1 ) , L ( R 2 ) . Se L = L ( R 1 ∩
fonte
The technical report that introduced regular languages, regular expressions, and finite automata asks your question on page 70:
(Soon afterwards, it was noted thatE∗ is a more convenient operator than E∗F and equivalent in power. So these days, we use E∗ instead.)
The answer occupies several pages. First, it is remarked that the answer must be sought in whether the resulting languages form an interesting class and how they compare with languages described by other means. On page 72, it is remarked that negation and conjunction are redundant: they do not add any expressive power. On page 80 and further, it is proved that the regular languages are exactly the languages recognized by finite state machines.
In other words: Stefan's answer can safely be considered conclusive, as it was already given in the report that first introduced these concepts.
fonte
A partir dessa seleção de operadores (união, concatenação e estrela), é possível construir um NFA com um tamanho linear ao tamanho da expressão. Por outro lado, se você adicionar interseção e complementação, o tamanho do autômato equivalente pode explodir de maneira não elementar, o que geralmente não é desejável.
fonte