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

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

I - Noções dum compilador Gramáticas Árvores de derivação Hierarquia de Chomsky Autómatos de pilha Bibliografia aconselhada: –Apontamentos LFA 1999/2000.

Apresentações semelhantes


Apresentação em tema: "I - Noções dum compilador Gramáticas Árvores de derivação Hierarquia de Chomsky Autómatos de pilha Bibliografia aconselhada: –Apontamentos LFA 1999/2000."— Transcrição da apresentação:

1 I - Noções dum compilador Gramáticas Árvores de derivação Hierarquia de Chomsky Autómatos de pilha Bibliografia aconselhada: –Apontamentos LFA 1999/ Jorge Morais

2 Gramática Uma gramática é um vector G = (V,, P, S) onde: –V conjunto finito - variáveis (símbolos não terminais) – conjunto finito - alfabeto –P (V ) + x (V ) * - conjunto de produções –S V - símbolo inicial LFA 1999/ Jorge Morais

3 Produções duma gramática Uma produção representa-se habitualmente na forma Escrevemos que u v, se u=x y e v=x y, com x,y (V ) * e P Escrevemos que u * v (v deriva de u), se u = v ou se u w 1 w 2... w n-1 v, onde w 1, w 2,..., w n-1 (V ) + LFA 1999/ Jorge Morais

4 Linguagem duma gramática Definimos a linguagem gerada pela gramática L(G) = {u * : S * u} BNF (Backus Naur Form): –Variáveis são iniciados com letra maíuscula –Símbolos do alfabeto com letra minúscula – para representar produções – 1 | 2 |... | n (produções alternativas) – LFA 1999/ Jorge Morais

5 Gramáticas sensíveis ao contexto Dizemos que uma gramática é sensível ao contexto se todas as produções são da forma: –S, ou; –, onde: | | | |; S cont( ) LFA 1999/ Jorge Morais

6 Gramáticas independentes de contexto Dizemos que uma gramática é independente de contexto se todas as produções são da forma: –A, onde: A V; (V ) * LFA 1999/ Jorge Morais

7 Árvore de derivação Seja G = (V,, P, S) uma gramática independente de contexto e seja S * u uma derivação em G. Numa árvore de derivação tem-se: – o nó principal é o símbolo inicial S; –as variáveis são nós interiores; –os símbolos do alfabeto são folhas. LFA 1999/ Jorge Morais

8 Gramáticas regulares Dizemos que uma gramática é regular se for linear à esquerda ou à direita: LFA 1999/ Jorge Morais Gramática linear à direita A A B onde: –A, B V; – Gramática linear à esquerda A A B onde: –A, B V; –

9 Hierarquia de Chomsky LFA 1999/ Jorge Morais TipoLinguagemGramática 0Recursivamente Enumeráveis Sem restrições 1Sensíveis ao contexto 2Independentes de contexto 3Regulares

10 Exemplo 1 L(G) = {u * : u = a n b n c n, n 1}, G= (V,, P, S), V = {S, A, B}, = {a,b,c} Produções: –S aSBA | abA –AB BA –bB bb –bA bc –cA cc –aB ab LFA 1999/ Jorge Morais

11 Exemplo 1 (cont.) Derivação de a 2 b 2 c 2 = aabbcc: S aSBA aabABA aabBAA aabbAA aabbcA aabbcc LFA 1999/ Jorge Morais

12 Exemplo 2 L(G) = {u * : u = a n (a+b+c)b n, n 1}, G= (V,, P, S), V = {S, T}, = {a, b, c} Produções: –S aSb | T –T a | b | c LFA 1999/ Jorge Morais

13 Exemplo 2 (cont.) Derivação de a 3 cb 3 = aaacbbb: S aSb aaSbb aaaSbbb aaaTbbb aaacbbb LFA 1999/ Jorge Morais

14 Autómato de Pilha Um autómato de pilha é um vector A = (S,,,, i, z, F), onde: –S conjunto finito de estados – conjunto finito - alfabeto de entrada – conjunto finito - alfabeto da pilha – : S x { } x S x * –i S estado inicial –z símbolo inicialmente no topo da pilha –F S conjunto de estados finais LFA 1999/ Jorge Morais

15 Linguagem do Autómato de Pilha Num autómato de pilha a linguagem pode ser reconhecida de forma equivalente por estados finais ou por pilha vazia L F (A) = {u * : u é o rótulo de um caminho bem sucedido} L V (A) = {u * : u é o rótulo de um caminho que termina com a pilha vazia} LFA 1999/ Jorge Morais

16 Exemplo L(A) = {u * : u = x 3 x i, x é uma sequência de 1s e 2s e x i é a mesma sequência invertida } A = (S,,,, i, z, F) –S={i,m,f}, – = {1, 2, 3}, – = {a, b, z} –F ={f} LFA 1999/ Jorge Morais

17 Exemplo (cont.) ={ (i,1,z,i,az), (i,1,a,i,aa), (i,1,b,i,ab), (i,2,z,i,bz), (i,2,a,i,ba), (i,2,b,i,bb), (i,3,z,m,z), (i,3,a,m,a), (i,3,b,m,b), (m,1,a,m, ), (m,2,b,m, ), (m,,z,f, )} LFA 1999/ Jorge Morais

18 Equivalência entre linguagens As linguagens reconhecidas por autómatos finitos, expressões regulares e gramáticas regulares são todas do tipo 3, isto é, regulares. As linguagens reconhecidas por gramáticas independentes de contexto e autómatos de pilha são do tipo 2, isto é, independentes de contexto. LFA 1999/ Jorge Morais

19 Prova construtiva Para determinar que uma linguagem é do tipo 3 ou do tipo 2, basta usar uma das formas anteriores. Para provar que não é do tipo 3 ou 2, é preciso provar que não é possível encontrar nenhuma dessas formas. LFA 1999/ Jorge Morais

20 Lema de repetição para LRs Se L é uma linguagem regular, existe um inteiro n tal que todo o x L com |x| n pode ser escrito na forma x = uvw com: |uv| n |v| 1 m 0 a palavra uv m w pertence a L A constante n não excede o número de estados do menor autómato finito que reconhece L. LFA 1999/ Jorge Morais

21 Lema de repetição para LICs Se L é uma linguagem independente de contexto, existe um inteiro n apenas dependente de L tal que, se z L e |z| n, z pode ser escrito da forma z = uvwxy onde: |vx| 1 |vwx| n i 0 a palavra uv i wx i y pertence a L LFA 1999/ Jorge Morais


Carregar ppt "I - Noções dum compilador Gramáticas Árvores de derivação Hierarquia de Chomsky Autómatos de pilha Bibliografia aconselhada: –Apontamentos LFA 1999/2000."

Apresentações semelhantes


Anúncios Google