Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


COMP aula6, Notas de aula de Informática

Aula de Compiladores.

Tipologia: Notas de aula

Antes de 2010

Compartilhado em 01/12/2009

ygor-dos-santos-luz-3
ygor-dos-santos-luz-3 🇧🇷

4.7

(3)

55 documentos

1 / 25

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1


Este material é baseado nos materiais de autoria da profa. V. Feltrim
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19

Pré-visualização parcial do texto

Baixe COMP aula6 e outras Notas de aula em PDF para Informática, somente na Docsity!

Este material é baseado nos materiais de autoria da profa. V. Feltrim

 ASD preditiva  Sabe-se de antemão qual regra aplicar  Gramáticas LL(1)  Dois métodos:  ASD preditiva recursiva  ASD preditiva não recursiva

 Exemplo::=+ | ::=* | ::=a | b | () procedimento ASDinício prox_token();E; fim procedimento Einício T; se (token='+‘) então prox_token();E; fim procedimento Tinício F; se (token =‘*‘) então prox_token();T; fim procedimento Finíciose (token ='(‘) então prox_token();E;se (token =')‘) então prox_token()senão ERRO; senão se (token =‘a‘) ou (token =‘b‘) então prox_token()senão ERRO; fim

 Método formal para gerar os procedimentos  Regras de transformação : mapeamento das regras de um não terminal em grafos sintáticos  Também podem ser usados diagramas de transição (Aho et al ., 1995, pg82)  Regras de tradução : mapeamento dos grafos em procedimentos  Exemplo ::= ad ::= c | e ::= f | g a A S: Símboloterminal Símbolo não terminal Grafo sintático

 ::= c | eprocedimento Ainício se (token =‘c’) então prox_token();A; senão se (token =‘e’) então prox_token();B; senão ERRO; fim c A A e B

 ::= f | g procedimento Binício se (token =‘f’) ou (token =‘g’) então prox_token()senão ERRO; fim f B g

 Regras de transformação  Regras gramaticais  grafos sintáticos

Toda regra da gramática é mapeada em um grafo

Toda ocorrência de um terminal x corresponde aoseu reconhecimento na cadeia de entrada e aleitura do próximo símbolo dessa cadeia x

Toda ocorrência de um não-terminal Acorresponde a análise imediata de A

Alternativas são representadas como A A B C

 Exercício ::= x | () ::= ::= + | λ

 Exercício ::= x | () ::= ::= + | λ ( B ) A x B A C C A

C

 Simplifique o grafo abaixo C A

C A

C

 Regras de tradução  Grafos sintáticos  procedimentos

Reduzir o número de grafos: união de grafos paramaior simplicidade e eficiência

Escrever um procedimento para cada grafo

 A seqüênciaorigina o procedimento início A; B; C; fim A B C

 A alternativa origina o procedimento início se ( token está em Primeiro(A)) então A senão se (token está em Primeiro(B)) então Bsenão se (token está em Primeiro(C)) então C fim A B C