Sei sulla pagina 1di 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 Computao, e tem como objetivo explicar o que so as Linguagens Regulares e algumas de suas propriedades.

1. INTRODUO
Linguagem formal: conjunto finito ou infinito de sequncias de smbolos 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 so linguagens formais que:
y y y

Podem ser geradas por uma gramtica regular; Podem ser denotadas por uma expresso regular; Podem ser reconhecidas por um autmato finito.

2. CONCEITOS BSICOS
2.1 Gramtica Sistema formal, baseado em regras de substituio, atravs do qual se possvel formar o conjunto das cadeias que compem uma determinada linguagem. Assim como as linguagens naturais, as linguagens formais podem ser especificadas atravs de gramticas a elas associadas. As gramticas formais, assim como as gramticas naturais, tratam -se de conjuntos de regras que, quando aplicadas de forma recorrente, possibilitam a gerao de todas as cadeias pertencentes a uma determinada linguagem. As gramticas das linguagens naturais, no entanto, so descritas por intermdio de linguagens tambm naturais (uma gramtica da lngua portuguesa descrita em portugus, por exemplo); enquanto as gramticas das linguagens formais so descritas utilizando notaes matemticas rigorosas, chamadas metalinguagens. 2.2 Metalinguagem Linguagem que empregada para definir outra linguagem.

2.3 Definio de uma gramtica Uma gramtica G pode ser definida por uma qudrupla (diferentes autores podem representar de formas diferentes): G = (V, , P, S) V o vocabulrio da gramtica; corresponde a um conjunto (finito e no-vazio) de smbolos; o conjunto (finito e no-vazio) de smbolos terminais da gramtica; tambm denominado alfabeto; P o conjunto (finito e no-vazio) de produes ou regras de substituio da gramtica; S a raiz da gramtica, S Temos ainda N = V gramtica. V. como sendo o conjunto dos smbolos no-terminais da

N corresponde ao conjunto (finito e no-vazio) de smbolos intermedirios utilizados na estruturao e na gerao das sentenas, mas que no fazem parte das mesmas (como as normas sintticas das gramticas naturais). As produes gramaticais, do conjunto P seguem a seguinte forma geral: , com
 V*NV* e

V*

y uma cadeia qualquer constituda por elementos de V (vocabulrio), contendo pelo menos um elemento de N (um smbolo no-terminal); y uma cadeia qualquer, eventualmente vazia, de elementos de V.

De fato,

uma relao sobre os conjuntos V*NV* e V*, uma vez que: V*NV* V*}

P = {( , ) | ( , )

Ou seja, P um subconjunto de V*NV* V*. 2.3.1 Gramtica linear direita Todas as produes obedecem s seguintes condies: N , 2, A N, N, ou = , de forma no exclusiva. 0S, S 1S, S A, A Exemplo: G1 = ({0, 1, 2, 3, S, A}, {0, 1, 2, 3}, {S 3}, S)

2.3.2 Gramtica linear esquerda Todas as produes exibem as seguintes caractersticas:


y y

N ,

N,

N , ou

= , de forma no exclusiva. S2, S S3, S A, A

1, A

Exemplo: G2 = ({0, 1, 2, 3, S, A}, {0, 1, 2, 3}, {S 0}, S)

2.3.3 Relao entre Gramtica linear direita e esquerda Demonstra-se que as gramticas lineares esquerda ou direita possuem a mesma capacidade de representao de linguagens, ou seja, geram exatamente a mesma classe de linguagens. Teorema: Se G1 uma gramtica linear direita, ento existe uma gramtica linear esquerda G2 tal que L(G1) = L(G2), e vice-versa. As gramticas lineares direita ou esquerda so tambm denominadas gramticas regulares. As linguagens geradas por gramticas regulares so denominadas linguagens regulares. 2.4 Conjuntos e Expresses regulares So notaes alternativas utilizadas para representar a classe das linguagens regulares. 2.4.1 Conjuntos regulares Sobre um alfabeto so linguagens definidas recursivamente da seguinte forma: um conjunto regular sobre ; { } um conjunto regular sobre ; {a}, a um conjunto regular sobre ; Se X e Y so conjuntos regulares sobre , ento tambm so conjuntos regulares sobre : (X); X XY; X*. Um subconjunto de * um conjunto regular se ele puder ser formulado atravs do uso combinado dessas regras. Exemplo: Seja L = {0 m1n | m 0, n 0} sobre = {0, 1}. A linguagem L formada por sentenas em que a concatenao de uma quantidade qualquer de smbolos 0 (podendo ser nenhum) se concatena com a concatenao de uma quantidade qualquer de smbolos 1 (incluindo nenhum): L = { , 0, 1, 00, 01, 11, ...} Considerando as seguintes linguagens sobre : L1 = {0} L2 = {1} L3 = {0i | i 0} L4 = {1i | i 0} L5 = {0p1q | p 0, q 0} Y;

Os conjuntos L1 e L2 so conjuntos regulares sobre {a}, a um conjunto regular sobre L3 e L4 so obtidos a partir de L1 e L2 :

por definio:

Se X um conjunto regular sobre , ento X* tambm um conjunto regular sobre L3 = L1 * L4 = L2 * O conjunto L5 = L pode ser expresso pela concatenao dos conjuntos L3 e L4: Se X e Y so conjuntos regulares sobre , ento XY tambm um conjunto regular sobre L5 = L3L4 Dessa maneira demonstramos que L = {0m1n | m 0, n 0} um conjunto regular sobre {0, 1}. Na notao dos conjuntos regulares, L pode ser denotado por {0}*{1}*. 2.4.2 Expresses regulares Podem ser utilizadas como alternativa para a representao dos conjuntos regulares, visando obter maior conciso e facilidade de manipulao. As expresses regulares sobre um alfabeto podem tambm ser definidas recursivamente da seguinte forma: uma expresso regular e denota o conjunto regular ; uma expresso regular e denota o conjunto regular { }; a , a uma expresso regular que denota o conjunto {a}, com a ; Se x e y so expresses regulares e denotam, respectivamente, os conjuntos regulares X e Y, ento: (x); x + y; xy; x*; Tambm so expresses regulares e denotam, respectivamente, os conjuntos regulares X, X Y, XY e X*. Nas expresses regulares so eliminadas as chaves e o operador substitudo pelo +. So eliminados tambm os parnteses que envolvem subexpresses que contenham sequncias exclusivas de operadores, de unio ou concatenao, por serem operaes associativas. So definidas, ainda, as seguintes precedncias para as operaes: Mais alta fechamento x* Intermediria concatenao xy

Mais baixa

unio

x+y

Os parnteses so empregados para alterar localmente a precedncia ou a associatividade dos operadores, de modo que: (ab + c*) = ((ab) + c*) = ((ab) + (c*)) (ab + c*) a (b + c)* Uma abreviao muito comum consiste na substituio da expresso regular xx* por x+, que denota o conjunto regular composto por todas as cadeias de comprimento maior ou igual a 1 que podem ser construdas sobre o conjunto X (fechamento transitivo de X).

3. LEMA DO BOMBEAMENTO
Seja L uma linguagem regular. Ento existe um inteiro positivo n tal que, para toda palavra w L com |w| n, existem x, y, z *, tais que: w = xyz y |xy| n k 0, xyk z L Ou seja, toda palavra suficientemente longa de L pode ser dividida em trs partes de modo que, com um nmero qualquer de repeties da parte central, continue a ser uma palavra de L. Exemplo: suponha que L = {a nbn | n 1} uma linguagem regular. Pelo lema, temos a decomposio anbn = xyz, com |xy| n. Para n = 4 e w = aabb: x = a, y = a, z = bb |xy| = |aa| = 2 4 aabb L x = aa, y = b, z = b |xy| = |aab| = 3 4 aabb L

4. PROPRIEDADES REGULARES
Unio L1

DE

FECHAMENTO

DAS

LINGUAGENS

Obtemos linguagens regulares a partir das operaes: L2 Concatenao L1L2 Fecho Kleene L1 * Complemento L1

Interseo Diferena

L1

L2

L1 L2

Linguagens regulares so fechadas sob unio, concatenao, fecho de Kleene, interseo, diferena e complemento, ou seja, o resultado das operaes tambm uma linguagem regular. O fechamento das operaes de unio, concatenao e fecho de Kleene provado de forma imediata pela definio de expresses regulares. 4.1 Unio L1 L2 uma linguagem regular se L1 e L2 so linguagens regulares. Prova: se L1 e L2 so linguagens regulares, elas podem ser denotadas pelas expresses regulares x e y, respectivamente. Assim L1 = L(x) e L2 = L(y). Ento, L1 L2 = L(x+y). Sendo x e y expresses regulares, x+y tambm uma expresso regular. A linguagem gerada a partir de uma expresso regular uma linguagem regular. 4.2 Concatenao L1L2 uma linguagem regular se L1 e L2 so linguagens regulares. Prova: seguindo o mesmo princpio da unio, provamos que se L e L2 so 1 linguagens regulares, L1L2 tambm . 4.3 Fecho de Kleene L1 * uma linguagem regular se L1 uma linguagem regular. 4.4 Complemento
L1 = * - L1 uma linguagem regular se L1 uma linguagem regular.

Prova: seja L1 = L(A) para algum AFD A = (Q, Ento L1 = L(B), onde B = (Q, , , q0, Q F).

, q0, F).

Ou seja, B igual a A, porm, os estados de aceitao de A passam a ser os estados de no-aceitao de B e vice-versa. 4.5 Interseo L1 L2 uma linguagem regular se L1 e L2 so linguagens regulares. L2 = L1
L2

Prova: L1

Usando as provas do fechamento sob as operaes de unio e complemento, provamos o fechamento sob a interseo. 4.6 Diferena: L1 L2 uma linguagem regular se L1 e L2 so linguagens regulares.

Prova: L1 L2 = L1

L2

Usando as provas do fechamento sob as operaes de interseo e complemento, provamos o fechamento sob a diferena.

5. REVERSO
O reverso de uma cadeia w = a1a2a3...an denotado por wR = anan-1an-2...a1. O reverso de uma linguagem L, denotado por LR, uma linguagem que consiste nos reversos de todas as cadeias de L. Se L uma linguagem regular, LR tambm uma linguagem regular. Prova: seja um autmato finito A que aceita L, existe um A tal que L(A) = LR. Construo de A: Inverte-se todos os arcos no diagrama de transio para A; Transforma-se o estado inicial de A no nico estado de aceitao; Cria-se um novo estado inicial p0 com transies aceitao de A.
1

para todos os estados de


1

0 q0 1 q1 0 1

q2 q0 q3
Figura 1. Construo de A

0 1 q1 1 0

q2 q4 q3

6. HOMOMORFISMO
O homomorfismo uma funo que atua substituindo cada smbolo de uma cadeia por um string especfico. Exemplos: Seja L1 = {0* 1*} e h: {0, 1} {a}*, definido por h(0) = aa e h(1) = Ento h(L1) = {(aa)*} = {palavras com um nmero par de smbolos a} Seja L2 = {0n1n | n 0} e h: {0, 1} Ento h(L2 ) = {(ab)n (ba)n | n 0} Notas: Ao aplicar um homomorfismo em uma expresso regular, obtemos outra expresso regular; A classe das linguagens regulares fechada para o homomorfismo de palavras; {a, b}*, definido por h(0) = ab e h(1) = ba

Se uma linguagem L no for regular, h(L) pode ser regular. Exemplo: para L = {0n1n | n 0}, que no regular, com h(0) = a e h(1) = , obtemos h(L) = {a*} que regular. 7. HOMOMORFISMO INVERSO Dado um homomorfismo h: * h (L) = {w 
-1

* e uma linguagem L

*, define-se:

| h(w) L}

Ou seja, o conjunto de palavras cuja imagem homrfica pertence a L.

8. TESTE DE PERTINNCIA
Para saber se uma cadeia w pertence a uma linguagem regular L, cria-se um autmato finito A que reconhece L e, em seguida roda-se w em A. Se A chegar ao estado de aceitao, significa que w pertence a L. Exemplo: L = {x01y | x,y {0,1}*}
1 0 0 1 0,1

q0

q1

q2

Figura 2. Construo de A

9. EQUIVALNCIA E MINIMIZAO DE AUTMATOS


Seja um AFD A = (Q, , , q 0, F) e {p, q} Q, define-se: p=q w *, (p, w) F e (q, w) F possvel minimizar um autmato unificando seus estados equivalentes. Para isso, o autmato deve:
y y y

Ser determinstico; No possuir estados inacessveis a partir do estado inicial; Ter funo programa total (todas as sadas devem ser previstas para todos os estados). Construir uma tabela relacionando os estados distintos, onde cada par de estados ocorre somente uma vez;

Passos para a minimizao de um autmato:


y

y y

Marcar todos os pares do tipo {estado final, estado no final}, pois obviamente no so equivalentes; Para cada par {qu, qv} no marcado e para cada smbolo a , suponha que (qu, a) = pu e (qv, a) = pv e: o Se pu = pv, ento qu e qv so equivalentes para o smbolo a e no devem ser marcados; o Se pu pv e o par {pu, pv} no est marcado, ento {qu, qv} includo em uma lista a partir de {pu, pv} para posterior anlise; o Se pu pv e o par {pu, pv} est marcado, ento:  qu e qv no so equivalentes e devem ser marcados;  Se {qu, qv} encabea uma lista de pares, ento marcar todos os pares da lista (recursivamente). Os estados dos pares no marcados so equivalentes e podem ser unificados da seguinte forma: o A equivalncia de estados transitiva; o Pares de estados no finais equivalentes so unificados como um nico estado no final; o Pares de estados finais equivalentes so unificados como um nico estado final; o Se algum dos estados equivalentes inicial, ento o correspondente estado unificado inicial Por fim, os estados inteis devem ser excludos. Um estado q intil se ele no final e a partir dele no possvel atingir um estado final.

10. REFERNCIAS
BEDREGAL, Benjamn Ren Callejas. Propriedades das Linguagens Regulares. Natal: UFRN. Disponvel em: http://www.dimap.ufrn.br/~bedregal/DIM049/LivroTC-cap4.pdf GALINDO, Wilson Rubens. Propriedades das Linguagens Regulares. Disponvel em: http://200.17.137.110:8080/licomp/Members/galindo/200 7-1-introducao-a-teoria-dacomputacao/slides-das-aulas/propriedades-das-lr.pdf/view PRADO, Simone das Graas Domingues. Apostila 02: Linguagens Regulares. Bauru: UNESP. Disponvel em: http://wwwp.fc.unesp.br/~simonedp/zipados/TC02.pdf RAMOS, Marcos Vincius Midena. Linguagens Formais e Autmatos. Pernambuco: UNIVASF. (22/04/2008). Disponvel em: http://www.univasf.edu.br/~marcus.ramos/lfa-2008-1/Apostila.pdf RAMOS, Marcos Vincius Midena. Linguagens Regulares. Pernambuco: UNIVASF. (11/05/2010). Disponvel em: http://www.univasf.edu.br/~marcus.ramos/livrolfa/cap3.pdf SILVA, Roberto Claudino da. Linguagens Regulares. Itajub: UNIFEI. (2008). Disponvel em: http://www.claudino.unifei.edu.br/CCO510/CCO51031.pdf SILVA, Roberto Claudino da. Propriedades das Linguagens Regulares. Itajub: UNIFEI. (2008). Disponvel em: http://www.claudino.unifei.edu.br/CCO510/CCO51041.pdf SILVA, Roberto Claudino da. Propriedades de Fechamento das Linguagens Regulares. Itajub: UNIFEI. (2008). Disponvel em: http://www.claudino.unifei.edu.br/CCO510/CCO51042.pdf

Potrebbero piacerti anche