A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

I - Noções dum compilador Linguagens formais Autómatos finitos Expressões regulares Bibliografia aconselhada: –Apontamentos LFA 1999/2000 - 1Jorge Morais.

Apresentações semelhantes


Apresentação em tema: "I - Noções dum compilador Linguagens formais Autómatos finitos Expressões regulares Bibliografia aconselhada: –Apontamentos LFA 1999/2000 - 1Jorge Morais."— Transcrição da apresentação:

1 I - Noções dum compilador Linguagens formais Autómatos finitos Expressões regulares Bibliografia aconselhada: –Apontamentos LFA 1999/ Jorge Morais

2 Monóide Grupóide: –Par (A,. ), onde A é um conjunto, e. Representa uma operação binária em A. Semigrupo: –Grupóide em que. é associativa, isto é, a (b c) = (a b) c Monóide: –Semigrupo com elemento neutro e: a A : a e = e a = a LFA 1999/ Jorge Morais

3 Palavras Alfabeto: – conjunto finito Palavra (sequência finita de elementos de ) – é a palavra vazia –a 1 a 2... a n (a i ) representa uma palavra não vazia –Convenção: a n = a a... a (n vezes, n>0); a 0 = LFA 1999/ Jorge Morais

4 Palavras (cont.) Comprimento duma palavra –|a 1 a 2... a n | = n –| | = 0 Conteúdo duma palavra: –cont(a 1 a 2... a n ) = {a 1, a 2,..., a n } –cont( ) = LFA 1999/ Jorge Morais

5 Monóide livre * - Monóide livre em – * (conjunto das palavras em ) –Concatenação (operação binária associativa) (a 1 a 2... a n )(a n+1 a n+2... a n+k )=a 1 a 2...a n a n+1 a n+2...a n+k – (elemento neutro) (a 1 a 2... a n ) = (a 1 a 2... a n ) = a 1 a 2... a n + = * \{ } - Semigrupo livre em LFA 1999/ Jorge Morais

6 Prefixo, sufixo, factor Sejam u, v * u é prefixo de v v = uw w * u é sufixo de v v = wu w * u é factor de v v = wuz w,z * LFA 1999/ Jorge Morais

7 Autómato finito Um autómato é um vector (S,, i, F, ): –S - conjunto finito de estados – - alfabeto –i S - estado inicial –F S - conjunto de estados finais – : S x S (função parcial) - conjunto de transições LFA 1999/ Jorge Morais

8 Representação gráfica LFA 1999/ Jorge Morais

9 Tipos de autómatos Seja A=(S,, i, F, ) um autómato finito. A diz-se autómato finito determinístico se, perante um símbolo x de, puder transitar, no máximo, para um único estado, isto é: –( (s, x, s) (s, x, s) ) s = s Caso contrário, A diz-se não determinístico A diz-se autómato finito se é possível transitar de estado sem usar nenhum símbolo de, isto é: S x ( { }) x S LFA 1999/ Jorge Morais

10 Caminho e rótulo Seja A=(S,, i, F, ) um autómato finito. Um caminho não trivial é uma sequência (s 0, a 1, s 1 ), (s 1, a 2, s 2 ),..., (s n-1, a n, s n ) onde (s i-1, a i, s i ) Um caminho trivial é uma tripla da forma (s,, s), com s S O rótulo do caminho é a 1 a 2... a n LFA 1999/ Jorge Morais

11 Linguagem reconhecida Seja A=(S,, i, F, ) um autómato finito. Um caminho diz-se bem sucedido se começa num estado inicial e termina num estado final Linguagem reconhecida por A: –L(A) = {u * : u é o rótulo de um caminho bem sucedido em A} LFA 1999/ Jorge Morais

12 Exemplo de autómato A=(S,, i, F, ) = {0, 1} S = {i,f} F={f} = {(i,0,i), (i,1,i), (i,0,f)} Este autómato finito (não determinístico) reconhece todas as sequências terminadas em 0 (números binários pares) LFA 1999/ Jorge Morais

13 Exemplo de autómato (cont.) A=(S,, i, F, ) = {0, 1} S = {i,f} F={f} = {(i,0,f), (i,1,i), (f,0,f), (f,1,i)} Este autómato finito também reconhece todas as sequências terminadas em 0, mas é determinístico LFA 1999/ Jorge Morais

14 Expressões regulares Uma expressão regular E representa um subconjunto de * que designamos por c(E) Sendo L * uma linguagem. As seguintes condições são equivalentes: –L é reconhecida por um autómato finito –L é reconhecida por um autómato finito determinístico –L é reconhecida por um autómato finito –L é reconhecida por uma expressão regular LFA 1999/ Jorge Morais

15 Expressões regulares (cont.) Uma expressão regular tem uma das seguintes formas: – c( ) = – c( ) = { } –a c(a) = {a} –Sendo E 1 e E 2 expressões regulares: E 1 + E 2 c(E 1 + E 2 ) = c(E 1 ) c(E 2 ) E 1 E 2 c(E 1 E 2 ) = c(E 1 ) c(E 2 ) E 1 * c(E 1 * ) = {a 1 a 2... a n : n 0, a 1, a 2,..., a n E 1 } LFA 1999/ Jorge Morais

16 Exemplo de expressões regulares Considerando = {0, 1} (0 + 1) * 0 - sequências terminadas em 0 0 * (100 * ) * (1 + ) - sequências em que não aparecem 1s consecutivos (0 + 1) * 101 (0 + 1) * - sequência que contem o factor (0 + 1) * - sequência com prefixo 10 LFA 1999/ Jorge Morais


Carregar ppt "I - Noções dum compilador Linguagens formais Autómatos finitos Expressões regulares Bibliografia aconselhada: –Apontamentos LFA 1999/2000 - 1Jorge Morais."

Apresentações semelhantes


Anúncios Google