

















Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Aula de Compiladores.
Tipologia: Notas de aula
1 / 25
Esta página não é visível na pré-visualização
Não perca as partes importantes!


















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