1 / 16

I - Noções dum compilador

I - Noções dum compilador. DEI. Linguagens formais Autómatos finitos Expressões regulares Bibliografia aconselhada: Apontamentos. Jorge Morais. LFA 1999/2000 - 1. Monóide. DEI. Grupóide: Par (A, . ), onde A  é um conjunto, e . Representa uma operação binária em A. Semigrupo:

Download Presentation

I - Noções dum compilador

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Monóide DEI • 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 Jorge Morais LFA 1999/2000 - 2

  3. Palavras DEI • Alfabeto: •  conjunto finito • Palavra (sequência finita de elementos de ) •  é a palavra vazia • a1 a2 ... an (ai  ) representa uma palavra não vazia • Convenção: an = a a ... a (n vezes, n>0); a0 =  Jorge Morais LFA 1999/2000 - 3

  4. Palavras (cont.) DEI • Comprimento duma palavra • |a1 a2 ... an| = n • || = 0 • Conteúdo duma palavra: • cont(a1 a2 ... an) = {a1, a2, ..., an} • cont() =  Jorge Morais LFA 1999/2000 - 4

  5. Monóide livre DEI •  * - Monóide livre em  •  * (conjunto das palavras em ) • Concatenação (operação binária associativa) • (a1 a2 ... an)(an+1 an+2 ... an+k)=a1 a2...an an+1 an+2...an+k •  (elemento neutro) • (a1 a2 ... an)  =  (a1 a2 ... an) = a1 a2 ... an •  + =  * \{} - Semigrupo livre em  Jorge Morais LFA 1999/2000 - 5

  6. Prefixo, sufixo, factor DEI • 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  * Jorge Morais LFA 1999/2000 - 6

  7. Autómato finito DEI • 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 Jorge Morais LFA 1999/2000 - 7

  8. Representação gráfica DEI Jorge Morais LFA 1999/2000 - 8

  9. Tipos de autómatos DEI • 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 Jorge Morais LFA 1999/2000 - 9

  10. Caminho e rótulo DEI • Seja A=(S, , i, F, ) um autómato finito. • Um caminho não trivial é uma sequência (s0, a1, s1), (s1, a2, s2), ..., (sn-1, an, sn) onde (si-1, ai, si)   • Um caminho trivial é uma tripla da forma (s, , s), com s  S • O rótulo do caminho é a1 a2 ... an Jorge Morais LFA 1999/2000 - 10

  11. Linguagem reconhecida DEI • 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} Jorge Morais LFA 1999/2000 - 11

  12. Exemplo de autómato DEI • 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) Jorge Morais LFA 1999/2000 - 12

  13. Exemplo de autómato (cont.) DEI • 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 Jorge Morais LFA 1999/2000 - 13

  14. Expressões regulares DEI • 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 Jorge Morais LFA 1999/2000 - 14

  15. Expressões regulares (cont.) DEI • Uma expressão regular tem uma das seguintes formas: •   c() =  •   c() = {} • a    c(a) = {a} • Sendo E1 e E2 expressões regulares: • E1 + E2  c(E1 + E2) = c(E1)  c(E2) • E1 E2  c(E1 E2) = c(E1) c(E2) • E1*  c(E1*) = {a1 a2 ... an : n  0, a1, a2, ..., an  E1} Jorge Morais LFA 1999/2000 - 15

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

More Related