Você está na página 1de 10

Linguagens Regulares

Ítalo Alves Bezerra do Nascimento, Lesliane Sá dos Santos
italo.nascimento@hotmail.com , leslianesa@yahoo.com

Abstract. This work was done for purposes of evaluation of the course Theory of Computation, and aims to explain what are the regular languages and some of its properties. Resumo. Este trabalho foi elaborado para fins avaliativos da disciplina Teoria da Computação, e tem como objetivo explicar o que são as Linguagens Regulares e algumas de suas propriedades.

1. INTRODUÇÃO
Linguagem formal: conjunto finito ou infinito de sequências de símbolos de um determinado alfabeto. As linguagens regulares (ou do tipo 3) constituem a classe de linguagens mais simples dentro da Hierarquia de Chomsky, a qual prossegue com linguagens de complexidade crescente até as linguagens mais gerais, do tipo 0. As linguagens regulares são linguagens formais que:
y y y

Podem ser geradas por uma gramática regular; Podem ser denotadas por uma expressão regular; Podem ser reconhecidas por um autômato finito.

2. CONCEITOS BÁSICOS
2.1 Gramática Sistema formal, baseado em regras de substituição, através do qual se é possível formar o conjunto das cadeias que compõem uma determinada linguagem. Assim como as linguagens naturais, as linguagens formais podem ser especificadas através de gramáticas a elas associadas. As gramáticas formais, assim como as gramáticas naturais, tratam -se de conjuntos de regras que, quando aplicadas de forma recorrente, possibilitam a geração de todas as cadeias pertencentes a uma determinada linguagem. As gramáticas das linguagens naturais, no entanto, são descritas por intermédio de linguagens também naturais (uma gramática da língua portuguesa descrita em português, por exemplo); enquanto as gramáticas das linguagens formais são descritas utilizando notações matemáticas rigorosas, chamadas metalinguagens. 2.2 Metalinguagem Linguagem que é empregada para definir outra linguagem.

1 Gramática linear à direita Todas as produções obedecem às seguintes condições: N . é o conjunto (finito e não-vazio) de símbolos terminais da gramática. A N. de elementos de V. 2. y é uma cadeia qualquer. . S2. 3. como sendo o conjunto dos símbolos não-terminais da N corresponde ao conjunto (finito e não-vazio) de símbolos intermediários utilizados na estruturação e na geração das sentenças. também denominado alfabeto. com  V*NV* e V* y é uma cadeia qualquer constituída por elementos de V (vocabulário). {S 3}.3. ³ ´ é uma relação sobre os conjuntos V*NV* e V*.3. 1. 0S. de forma não exclusiva. S é a raiz da gramática.3 Definição de uma gramática Uma gramática G pode ser definida por uma quádrupla (diferentes autores podem representar de formas diferentes): G = (V. 3}. do conjunto P seguem a seguinte forma geral: . 1. ou = . 2. S) 2. ou = . ) | ( . {0. As produções gramaticais. de forma não exclusiva. {S 0}. S Temos ainda N = V ± gramática. P é um subconjunto de V*NV* × V*. A 1. 2. eventualmente vazia. 1.2. 3. 3}. S S3. S) V é o vocabulário da gramática. 2. S 1S. N. A Exemplo: G1 = ({0. A}. S. N. corresponde a um conjunto (finito e não-vazio) de símbolos. 1. S A. P. ) Ou seja. A Exemplo: G2 = ({0. N . {0.2 Gramática linear à esquerda Todas as produções exibem as seguintes características: y y N . mas que não fazem parte das mesmas (como as normas sintáticas das gramáticas naturais). V. De fato. contendo pelo menos um elemento de N (um símbolo não-terminal). P é o conjunto (finito e não-vazio) de produções ou regras de substituição da gramática. uma vez que: V*NV* × V*} P = {( . A}. 2. S. 2. S) . S A.

1 Conjuntos regulares Sobre um alfabeto são linguagens definidas recursivamente da seguinte forma: é um conjunto regular sobre . 1}.3 Relação entre Gramática linear à direita e à esquerda Demonstra-se que as gramáticas lineares à esquerda ou à direita possuem a mesma capacidade de representação de linguagens. então existe uma gramática linear à esquerda G2 tal que L(G1) = L(G2). 00. 11. 0. . e vice-versa.4 Conjuntos e Expressões regulares São notações alternativas utilizadas para representar a classe das linguagens regulares. q • 0} Y. Um subconjunto de * é um conjunto regular se ele puder ser formulado através do uso combinado dessas regras. As linguagens geradas por gramáticas regulares são denominadas linguagens regulares.3. Exemplo: Seja L = {0 m1n | m • 0. ou seja.} Considerando as seguintes linguagens sobre : L1 = {0} L2 = {1} L3 = {0i | i • 0} L4 = {1i | i • 0} L5 = {0p1q | p • 0. X XY. Se X e Y são conjuntos regulares sobre . a é um conjunto regular sobre .. então também são conjuntos regulares sobre : (X).4. {a}. 1. X*.. geram exatamente a mesma classe de linguagens. A linguagem L é formada por sentenças em que a concatenação de uma quantidade qualquer de símbolos ³0´ (podendo ser nenhum) se concatena com a concatenação de uma quantidade qualquer de símbolos ³1´ (incluindo nenhum): L = { . { } é um conjunto regular sobre . 2. As gramáticas lineares à direita ou à esquerda são também denominadas gramáticas regulares. . 2. 01. Teorema: Se G1 é uma gramática linear à direita. n • 0} sobre = {0.2.

Se x e y são expressões regulares e denotam. a . x + y. Nas expressões regulares são eliminadas as chaves e o operador ³ ´ é substituído pelo ³+´. a é uma expressão regular que denota o conjunto {a}. por serem operações associativas. 1}. L pode ser denotado por {0}*{1}*. XY e X*. respectivamente. então: (x). visando obter maior concisão e facilidade de manipulação. n • 0} é um conjunto regular sobre {0. é uma expressão regular e denota o conjunto regular { }. As expressões regulares sobre um alfabeto podem também ser definidas recursivamente da seguinte forma: é uma expressão regular e denota o conjunto regular . ainda. São definidas. com a . 2. Também são expressões regulares e denotam. Na notação dos conjuntos regulares. X Y.Os conjuntos L1 e L2 são conjuntos regulares sobre {a}.4. a é um conjunto regular sobre L3 e L4 são obtidos a partir de L1 e L2 : por definição: Se X é um conjunto regular sobre . os conjuntos regulares X e Y. as seguintes precedências para as operações: Mais alta fechamento x* Intermediária concatenação xy . os conjuntos regulares X. então XY também é um conjunto regular sobre L5 = L3L4 Dessa maneira demonstramos que L = {0m1n | m • 0. São eliminados também os parênteses que envolvem subexpressões que contenham sequências exclusivas de operadores. então X* também é um conjunto regular sobre L3 = L1 * L4 = L2 * O conjunto L5 = L pode ser expresso pela concatenação dos conjuntos L3 e L4: Se X e Y são conjuntos regulares sobre .2 Expressões regulares Podem ser utilizadas como alternativa para a representação dos conjuntos regulares. de união ou concatenação. xy. respectivamente. x*.

Exemplo: suponha que L = {a nbn | n • 1} é uma linguagem regular. xyk z L Ou seja. Então existe um inteiro positivo n tal que. continue a ser uma palavra de L. y. z *. para toda palavra w L com |w| • n. temos a decomposição anbn = xyz. 3. z = bb |xy| = |aa| = 2 ” 4 aa²bb L x = aa. tais que: w = xyz y |xy| ” n k • 0. Para n = 4 e w = aabb: x = a. existem x. que denota o conjunto regular composto por todas as cadeias de comprimento maior ou igual a 1 que podem ser construídas sobre o conjunto X (fechamento transitivo de X).Mais baixa união x+y Os parênteses são empregados para alterar localmente a precedência ou a associatividade dos operadores. PROPRIEDADES REGULARES União L1 DE FECHAMENTO DAS LINGUAGENS Obtemos linguagens regulares a partir das operações: L2 Concatenação L1L2 Fecho Kleene L1 * Complemento L1 . LEMA DO BOMBEAMENTO Seja L uma linguagem regular. Pelo lema. toda palavra suficientemente longa de L pode ser dividida em três partes de modo que. y = b. de modo que: (ab + c*) = ((ab) + c*) = ((ab) + (c*)) (ab + c*)  a (b + c)* Uma abreviação muito comum consiste na substituição da expressão regular xx* por x+. com um número qualquer de repetições da parte central. y = a. com |xy| ” n. z = b |xy| = |aab| = 3 ” 4 aab²b L 4.

os estados de aceitação de A passam a ser os estados de não-aceitação de B e vice-versa. q0.5 Interseção L1 L2 é uma linguagem regular se L1 e L2 são linguagens regulares. respectivamente. L1L2 também é. provamos que se L e L2 são 1 linguagens regulares. Sendo x e y expressões regulares. q0. L1 L2 = L(x+y). . F). x+y é também uma expressão regular.L1 é uma linguagem regular se L1 é uma linguagem regular. Assim L1 = L(x) e L2 = L(y). L2 = L1 L2 Prova: L1 Usando as provas do fechamento sob as operações de união e complemento. elas podem ser denotadas pelas expressões regulares x e y. B é igual a A.4 Complemento L1 = * . Q ± F). Prova: se L1 e L2 são linguagens regulares. 4. onde B = (Q.1 União L1 L2 é uma linguagem regular se L1 e L2 são linguagens regulares. provamos o fechamento sob a interseção. . Então.6 Diferença: L1 ± L2 é uma linguagem regular se L1 e L2 são linguagens regulares. .2 Concatenação L1L2 é uma linguagem regular se L1 e L2 são linguagens regulares. 4.3 Fecho de Kleene L1 * é uma linguagem regular se L1 é uma linguagem regular.Interseção Diferença L1 L2 L1 ± L2 Linguagens regulares são fechadas sob união. A linguagem gerada a partir de uma expressão regular é uma linguagem regular. concatenação e fecho de Kleene é provado de forma imediata pela definição de expressões regulares. concatenação. o resultado das operações também é uma linguagem regular. 4. porém. . O fechamento das operações de união. Ou seja. 4. 4. interseção. Prova: seja L1 = L(A) para algum AFD A = (Q. 4. fecho de Kleene. . diferença e complemento. Então L1 = L(B). Prova: seguindo o mesmo princípio da união. ou seja.

Construção de A¶ 0 1 q1 1 0 q2 q4 q3 6.. Transforma-se o estado inicial de A no único estado de aceitação. LR também é uma linguagem regular. existe um A¶ tal que L(A¶) = LR. Exemplos: Seja L1 = {0* 1*} e h: {0. HOMOMORFISMO O homomorfismo é uma função que atua substituindo cada símbolo de uma cadeia por um string específico. é uma linguagem que consiste nos reversos de todas as cadeias de L. 1} {a}*. denotado por LR.a1. definido por h(0) = aa e h(1) = Então h(L1) = {(aa)*} = {palavras com um número par de símbolos ³a´} Seja L2 = {0n1n | n • 0} e h: {0.an é denotado por wR = anan-1an-2. 5. {a. 1 para todos os estados de 1 0 q0 1 q1 0 1 q2 q0 q3 Figura 1.. O reverso de uma linguagem L. Cria-se um novo estado inicial p0 com transições aceitação de A.Prova: L1 ± L2 = L1 L2 Usando as provas do fechamento sob as operações de interseção e complemento.. A classe das linguagens regulares é fechada para o homomorfismo de palavras.. 1} Então h(L2 ) = {(ab)n (ba)n | n • 0} Notas: Ao aplicar um homomorfismo em uma expressão regular. Prova: seja um autômato finito A que aceita L. Construção de A¶: Inverte-se todos os arcos no diagrama de transição para A. REVERSÃO O reverso de uma cadeia w = a1a2a3. Se L é uma linguagem regular. definido por h(0) = ab e h(1) = ba . provamos o fechamento sob a diferença. b}*. obtemos outra expressão regular.

o autômato deve: y y y Ser determinístico. Ter função programa total (todas as saídas devem ser previstas para todos os estados). Exemplo: para L = {0n1n | n • 0}.y Î {0. . em seguida roda-se w em A. Passos para a minimização de um autômato: y . EQUIVALÊNCIA E MINIMIZAÇÃO DE AUTÔMATOS Seja um AFD A = (Q. q} Q.1}*} 1 0 0 1 0. onde cada par de estados ocorre somente uma vez.Se uma linguagem L não for regular. (p. com h(0) = a e h(1) = . que não é regular. Se A chegar ao estado de aceitação. 7. Não possuir estados inacessíveis a partir do estado inicial. obtemos h(L) = {a*} que é regular. define-se: | h(w) L} Ou seja. F) e {p. o conjunto de palavras cuja imagem homórfica pertence a L. Construção de A 9. significa que w pertence a L. define-se: p=q w *.1 q0 q1 q2 Figura 2. Exemplo: L = {x01y | x. . TESTE DE PERTINÊNCIA Para saber se uma cadeia w pertence a uma linguagem regular L. w) F e (q. Para isso. q 0. w) F É possível minimizar um autômato unificando seus estados equivalentes. 8. cria-se um autômato finito A que reconhece L e. HOMOMORFISMO INVERSO Dado um homomorfismo h: * h (L) = {w  -1 * e uma linguagem L *. Construir uma tabela relacionando os estados distintos. h(L) pode ser regular.

 Se {qu. o Se pu  pv e o par {pu. pois obviamente não são equivalentes. o Se pu  pv e o par {pu. então o correspondente estado unificado é inicial Por fim. qv} é incluído em uma lista a partir de {pu. o Pares de estados não finais equivalentes são unificados como um único estado não final. o Pares de estados finais equivalentes são unificados como um único estado final. estado não final}. pv} está marcado. Um estado q é inútil se ele não é final e a partir dele não é possível atingir um estado final. Os estados dos pares não marcados são equivalentes e podem ser unificados da seguinte forma: o A equivalência de estados é transitiva. o Se algum dos estados equivalentes é inicial. a) = pu e (qv. pv} não está marcado. pv} para posterior análise. qv} encabeça uma lista de pares. então marcar todos os pares da lista (recursivamente). então:  qu e qv não são equivalentes e devem ser marcados. . suponha que (qu. então qu e qv são equivalentes para o símbolo ³a´ e não devem ser marcados.y y y y Marcar todos os pares do tipo {estado final. os estados inúteis devem ser excluídos. a) = pv e: o Se pu = pv. qv} não marcado e para cada símbolo a . Para cada par {qu. então {qu.

(2008). Itajubá: UNIFEI.br/CCO510/CCO51041.pdf RAMOS. ³Propriedades de Fechamento das Linguagens Regulares´. REFERÊNCIAS BEDREGAL.edu. ³Linguagens Formais e Autômatos´.edu.ramos/lfa-2008-1/Apostila.pdf SILVA.pdf SILVA. Roberto Claudino da. (11/05/2010). Disponível em: http://www.br/~marcus.claudino. ³Linguagens Regulares´.unesp. Marcos Vinícius Midena. Disponível em: http://www.claudino.pdf .ramos/livrolfa/cap3.br/CCO510/CCO51042. Roberto Claudino da.univasf. Bauru: UNESP.pdf RAMOS. Simone das Graças Domingues. (2008).unifei.univasf. Itajubá: UNIFEI. Natal: UFRN. Disponível em: http://www. Benjamín René Callejas.10.edu.br/~marcus. Disponível em: http://www.br/CCO510/CCO51031.17.edu. Disponível em: http://www.br/~simonedp/zipados/TC02.claudino. ³Propriedades das Linguagens Regulares´. Disponível em: http://wwwp. (22/04/2008).110:8080/licomp/Members/galindo/200 7-1-introducao-a-teoria-dacomputacao/slides-das-aulas/propriedades-das-lr.fc. Pernambuco: UNIVASF. Wilson Rubens. Roberto Claudino da.br/~bedregal/DIM049/LivroTC-cap4. Disponível em: http://200.unifei.ufrn.pdf SILVA. Disponível em: http://www. Marcos Vinícius Midena.unifei. (2008).edu. ³Apostila 02: Linguagens Regulares´. ³Propriedades das Linguagens Regulares´. ³Propriedades das Linguagens Regulares´.pdf GALINDO. Pernambuco: UNIVASF.137.pdf/view PRADO. ³Linguagens Regulares´. Itajubá: UNIFEI.dimap.