1 / 11

III – Análise sintáctica

III – Análise sintáctica. DEI. Análise sintáctica ascendente LR Bibliografia aconselhada: Aho, Sethi e Ullman – secção 4.7 Crespo – secção 5.4 Appel – secção 3.3. Jorge Morais. LFA 1999/2000 - 1. Vantagem dos parsers LR. DEI.

Download Presentation

III – Análise sintáctica

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. III – Análise sintáctica DEI • Análise sintáctica ascendente LR • Bibliografia aconselhada: • Aho, Sethi e Ullman – secção 4.7 • Crespo – secção 5.4 • Appel – secção 3.3 Jorge Morais LFA 1999/2000 - 1

  2. Vantagem dos parsers LR DEI • Reconhecem praticamente todas as construções de linguagens de programação expressas por gramáticas independentes de contexto • É o melhor método conhecido para parsers não recursivos com instruções shift-reduce, mantendo o grau de eficiência Jorge Morais LFA 1999/2000 - 2

  3. Vantagem dos parsers LR (cont.) DEI • A classe das gramáticas que podem ser derivadas com parsers LR contém a classe das gramáticas que podem ser derivadas usando parser predictivos • Pode detectar rapidamente erros, assim que seja possível numa pesquisa da entrada da esquerda para a direita Jorge Morais LFA 1999/2000 - 3

  4. Modelo dum parser LR DEI Jorge Morais LFA 1999/2000 - 4

  5. Elementos dum parser LR DEI • Tabela de acções – acção(s, a), s estado actual e a o símbolo na entrada: • shift s’, onde s’ é um estado • reduce A   • aceitação • erro • Tabela de salto (goto) – salto(s, X), s estado actual e X estado no topo da pilha: • retorna o estado de destino Jorge Morais LFA 1999/2000 - 5

  6. Configurações DEI • Configuração inicial: • Pilha: 0 • Entrada: u $ • Configuração final: • Pilha: s0 X1 s1 ... Xmsm , com acção(sm,a)=aceit. • Entrada: u’ $ Jorge Morais LFA 1999/2000 - 6

  7. Algoritmo DEI • Em cada passo, para a na entrada e s o estado actual: • Se acção(s,a) = shift s’, trocar s por s’ na pilha • Se acção(s,a) = reduce A  , retirar os elementos relativos a  do topo da pilha, inserindo A seguido de s’ = salto(a,s’’), onde s’’ é o estado que ficou anteriormente no topo • Se acção(s,a) = aceitação, aceita a sequência • Se acção(s,a) = erro, vai para rotina de erro Jorge Morais LFA 1999/2000 - 7

  8. Exemplo DEI • E  E + T • E  T • T  T * F • T  F • F  ( E ) • F  id • Sequência: id * id + id $ Jorge Morais LFA 1999/2000 - 8

  9. Exemplo – Tabela DEI Jorge Morais LFA 1999/2000 - 9

  10. Exemplo - Parser DEI Jorge Morais LFA 1999/2000 - 10

  11. Exemplo – Parser (cont.) DEI Jorge Morais LFA 1999/2000 - 11

More Related