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

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

I - Noções dum compilador

Apresentações semelhantes


Apresentação em tema: "I - Noções dum compilador"— Transcrição da apresentação:

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

2 Gramática DEI 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 Jorge Morais LFA 1999/

3 Produções duma gramática
DEI 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  w1  w2  ...  wn-1  v, onde w1, w2, ..., wn-1  (V  )+ Jorge Morais LFA 1999/

4 Linguagem duma gramática
DEI 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)  Jorge Morais LFA 1999/

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

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

7 Árvore de derivação DEI
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. Jorge Morais LFA 1999/

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

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

10 Exemplo 1 DEI L(G) = {u  *: u = anbncn, 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 Jorge Morais LFA 1999/

11 Exemplo 1 (cont.) DEI Derivação de a2b2c2 = aabbcc:
S  aSBA  aabABA  aabBAA aabbAA  aabbcA  aabbcc Jorge Morais LFA 1999/

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

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

14 Autómato de Pilha DEI 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 Jorge Morais LFA 1999/

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

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

17 Exemplo (cont.) DEI  ={ (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,)} Jorge Morais LFA 1999/

18 Equivalência entre linguagens
DEI 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. Jorge Morais LFA 1999/

19 Prova construtiva DEI 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. Jorge Morais LFA 1999/

20 Lema de repetição para LR’s
DEI 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 uvmw pertence a L A constante n não excede o número de estados do menor autómato finito que reconhece L. Jorge Morais LFA 1999/

21 Lema de repetição para LIC’s
DEI 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 uviwxiy pertence a L Jorge Morais LFA 1999/


Carregar ppt "I - Noções dum compilador"

Apresentações semelhantes


Anúncios Google