An - PowerPoint PPT Presentation

About This Presentation
Title:

An

Description:

Si no coincide, probar recursivamente. Ejemplo. Gram tica de tipos en Pascal. Tipo ... Probar con todas las producciones. Recursividad puede tomar tiempo ... – PowerPoint PPT presentation

Number of Views:47
Avg rating:3.0/5.0
Slides: 11
Provided by: leonelm
Category:
Tags: probar

less

Transcript and Presenter's Notes

Title: An


1
Análisis Sintáctico Predictivo
  • Optimización del Análisis Sintáctico Descendente

2
Analizador descendente
  • Algoritmo
  • Seleccione una producción y construya los hijos
  • Encuentre el siguiente nodo (no terminal)
  • Si hay otro nodo aplicar recursivamente
  • Si no hay más nodos
  • Si la cadena coincide entonces ACEPTAR
  • Si no coincide, probar recursivamente

3
Ejemplo
  • Gramática de tipos en Pascal
  • Tipo -gt Simple id
  • array Simple of Tipo
  • Simple -gt integer char
  • núm puntopunto núm

4
Descendente (símbolo inicial)
  • Function Tipo()
  • Resu Simple()
  • If Not Resu Then
  • Resu Match() And Match(id)
  • If Not Resu Then
  • Resu Match(Array) And Match()
  • And Simple() And Match()
  • And Match(of) And Tipo()
  • End
  • End
  • Tipo Resu
  • End Function

5
Descendente (nodo)
  • Function Simple()
  • Resu Match(integer)
  • If Not Resu Then
  • Resu Match(char)
  • If Not Resu Then
  • Resu Match(núm)
  • And Match(puntopunto)
  • And Match(núm)
  • End
  • End
  • Simple Resu
  • End Function

6
Optimizaciones
  • Probar con todas las producciones
  • Recursividad puede tomar tiempo
  • Escoger la más acertada anticipadamente
  • Implementación de Primero(ß)

7
Primero(ß)
  • Dice cuál es el primer lexema
  • De cada lado derecho
  • Ejemplo
  • Tipo -gt Simple id
  • array Simple of Tipo
  • Primero(Simple)
  • Primero(id)
  • Primero(array Simple of Tipo)

8
Uso de Primero(ß)
  • Antes de usar cualquier producción
  • Chequear primer símbolo
  • Compararlo contra Primero(ß)
  • Encontrar la producción correcta
  • Análisis Sintáctico Predictivo

9
Casos especiales
  • Primero(ß) Primero(d)?
  • Primero(ß) nil?

10
Gramática infijo corregida
  • Expr -gt Término Resto
  • Resto -gt Expr - Expr nil
  • Término -gt 0
  • Término -gt 1
  • Término -gt 2
  • ....
  • Término -gt 9
Write a Comment
User Comments (0)
About PowerShow.com