FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Quarta Aula - 2006/1
Conteúdo Parte II: Linguagens regulares Autômatos Finitos Expressões Regulares Gramáticas Regulares FAPE-2006.1 ATC-04
Introdução Uma expressão regular (ER) sobre um alfabeto é indutivamente definida: é uma ER que denota a linguagem vazia. é uma ER que denota a linguagem contendo exclusivamente a palavra vazia, ou seja {} . FAPE-2006.1 ATC-04
Expressão Regular qualquer símbolo x pertencente ao alfabeto é uma ER e denota a linguagem contendo a palavra unitária x, ou seja {x}. FAPE-2006.1 ATC-04
Operações com expressões Três operações básicas: Operação de união, Operação de concatenação, Operação de concatenação sucessiva ou operação estrela. FAPE-2006.1 ATC-04
ER - Operações Se r e s são ER´s e denotam respectivamente as linguagens R e S, então: (r+s) é ER e denota a linguagem R S (rs) é ER e denota a linguagem {uv | u R e v S} (r*) é ER e denota a linguagem R* FAPE-2006.1 ATC-04
Expressão Regular Uma linguagem gerada por uma ER r é representada por L(r) ou GERA(r). É possível omitir parênteses, seguindo prioridades nas operações: a concatenação sucessiva tem prioridade em relação à concatenação e a união, e a concatenação tem prioridade em relação à união. FAPE-2006.1 ATC-04
Expressão Regular - exemplos ER Linguagem aa Palavra aa ba* Inicia por b, seguido de zero ou mais a (a+b)* Todas palavras do alfabeto {a,b} a*ba*ba* Todas palavras que têm exatamente dois b´s. FAPE-2006.1 ATC-04
Expressão Regular - exemplos ER Linguagem (a+b)* aa(a+b)* Todas palavras que têm aa como subpalavra. (aa+bb) As palavras que terminam com aa ou bb. (a+) (b+ba)* As palavras que não possuem dois a´s consecutivos. FAPE-2006.1 ATC-04
Expressões e Linguagens A classe das expressões regulares corresponde exatamente a classe das linguagens regulares. Expressão Regular Linguagem Regular Se r é uma ER, então GERA(r) é uma linguagem regular FAPE-2006.1 ATC-04
Expressões e Linguagens Linguagem Regular Expressão Regular Se L é uma linguagem regular, então existe uma expressão regular r tal que GERA(r) = L FAPE-2006.1 ATC-04
Conversão: expressões autômatos r = a r = r = FAPE-2006.1 ATC-04
expressões autômatos r = a + b b a r = ab b FAPE-2006.1 ATC-04
ER´s e Autômatos a r = a* FAPE-2006.1 ATC-04
Gramática Seja G={N,T,P,S} uma gramática, onde: N – conjunto de símbolos não-terminais; T – conjunto de símbolos terminais; P – conjunto de regras de produção; S – símbolo inicial da gramática. FAPE-2006.1 ATC-04
Gramática Terminologia: símbolos não-terminais N = {A,B,C,...T} símbolos terminais T = {a,b,c,...t} S N FAPE-2006.1 ATC-04
Regras de produção Aplicando as regras de produção definidas na gramáticas são geradas palavras referentes a linguagem que a gramática representa. Gramática r. de produção palavra FAPE-2006.1 ATC-04
Regras de produção Exemplo: G = ( {S,A,B}, {a,b}, P, S ) P = { S AB, A a | AB, B b } Passos para gerar a palavra: abb S AB ABB aBB abB abb. FAPE-2006.1 ATC-04
Tipos de Gramática linear Uma gramática G pode ser: GLD: se todas as regras de produção são da forma AwB ou A w. GLE: se todas as regras de produção são da forma ABw ou A w. FAPE-2006.1 ATC-04
Gramática Regular Uma gramática regular é qualquer gramática linear. Uma linguagem gerada por uma gramática regular G é representada por L(G) ou GERA(G). FAPE-2006.1 ATC-04
Exemplos - gramáticas Linguagem a(ba)* GLD: G = ( {S,A}, {a,b}, { S aA, A baA | }, S ) GLE: G = ( {S}, {a,b}, { S Sba | a }, S ) FAPE-2006.1 ATC-04
Exemplos - gramáticas Linguagem (a+b)*(aa+bb) G = ( {S,A}, {a,b}, P, S ) P = { S aS | bS | A, A aa | bb } FAPE-2006.1 ATC-04
Árvores de derivação Igualmente é possível representar as produções das gramáticas através de árvores derivação. palavra: abb S a S A b b FAPE-2006.1 ATC-04
Gramática Autômato Tipo de produção transição A A a A B (A,)=qf A a (A,a)=qf A B (A,)=B A aB (A,a)=B FAPE-2006.1 ATC-04
Exemplo: GR AF Considerando a gramática, G = ( {S,A,B}, {a,b}, { S aA AbB | B aA }, S ) O AF que reconhece a gramática é M = ({a,b}, {S,A,B,qf}, , S, {qf}) FAPE-2006.1 ATC-04
Exemplo: GR AF Tipo de produção transição S aA A bB A B aA (A,)=qf B aA (B,a)=A FAPE-2006.1 ATC-04
Exemplo: GR AF FAPE-2006.1 ATC-04
Exemplo: AF GR Estados terminais: qo, q1 e q2. FAPE-2006.1 ATC-04
Exemplo: AF GR Transição Tipo de produção S A A B C Correspondências: q0 = A, q1 = B, q2 = C FAPE-2006.1 ATC-04
Exemplo: AF GR Transição Tipo de produção (q0,a)=q0 A aA (q0,b)=q1 A bB (q1,b)=q1 B bB (q1,c)=q2 B cC (q2,c)=q2 C cC FAPE-2006.1 ATC-04
Tarefa: lista de exercícios 4