análisis sintáctico descendente sin retroceso - Blearning
análisis sintáctico descendente sin retroceso - Blearning análisis sintáctico descendente sin retroceso - Blearning
Análisis sintáctico descendente sin retroceso Gramáticas LL(1) Seudocódigo del algoritmo para el cálculo de conjuntos de Seguidores SEGUIDORES (símbolo-inicial) := {$}; for todos los no terminales A ≠ símbolo-inicial do SEGUIDORES(A):={}; while existan cambios en cualquier conjunto SEGUIDORES do for cada producción A→X 1 X 2 ...X n do for cada X i que sea un no terminal do añadir INICIALES (X i+1 X i+2 ...X n ) - {λ} a SEGUIDORES (X i ) (* NOTA: si i=n, entonces X i+1 X i+2 ...X n = λ *) if λ está en INICIALES(X i+1 X i+2 ...X n ) then añadir SIGUIENTE (A) a SIGUIENTE (X i ) Página 26
Ejemplos: Análisis sintáctico descendente sin retroceso Gramáticas LL(1) Conjunto de Símbolos Seguidores sentencia → sent-if | otra sent-if → if (exp) sentencia parte-else parte-else → else sentencia | λ exp → 0 | 1 SEGUIDORES (sentencia) = {$, else} SEGUIDORES (sent-if) = {$, else} SEGUIDORES (parte-else) = {$, else} SEGUIDORES (exp) = {)} exp → term exp´ exp´ → opsuma term exp´ | λ opsuma → + | - term → factor term´ term´ → opmult factor term´ | λ opmult → * factor → ( exp ) | numero SEGUIDORES (exp) = {$, )} SEGUIDORES (exp´) = {$, )} SEGUIDORES (opsuma) = {(, numero} SEGUIDORES (term) = {$, ), +, -} SEGUIDORES (term´) = {$, ), +, -} SEGUIDORES (opmult) = {(, numero} SEGUIDORES (factor) = {$, ), +,-,*} Página 27
- Page 1 and 2: Universidad de Oviedo - Departament
- Page 3 and 4: Introducción Contenido El problema
- Page 5 and 6: Introducción A. Sintáctico Descen
- Page 7 and 8: El problema del retroceso Análisis
- Page 9 and 10: El problema del retroceso Análisis
- Page 11 and 12: El problema del retroceso Análisis
- Page 13 and 14: Análisis sintáctico descendente c
- Page 15 and 16: Teorema S-gramáticas Análisis sin
- Page 17 and 18: Análisis sintáctico descendente s
- Page 19 and 20: Análisis sintáctico descendente s
- Page 21 and 22: Ejemplos: S → A B e A → d B A
- Page 23 and 24: Análisis sintáctico descendente s
- Page 25: Análisis sintáctico descendente s
- Page 29 and 30: Definición Análisis sintáctico d
- Page 31 and 32: Análisis sintáctico descendente s
- Page 33 and 34: Análisis sintáctico descendente s
- Page 35 and 36: 1ª) Transformación S → aAc A
- Page 37 and 38: Análisis sintáctico descendente s
- Page 39 and 40: Análisis sintáctico descendente s
- Page 41 and 42: Análisis sintáctico descendente s
- Page 43 and 44: Construcción de analizadores sint
- Page 45 and 46: Construcción de analizadores sint
- Page 47 and 48: Construcción de analizadores sint
- Page 49 and 50: Construcción de analizadores sint
- Page 51 and 52: Construcción de analizadores sint
- Page 53 and 54: Construcción de analizadores sint
- Page 55 and 56: Construcción de analizadores sint
- Page 57 and 58: Construcción de analizadores sint
- Page 59 and 60: Construcción de analizadores sint
- Page 61 and 62: Tratamiento de errores sintácticos
- Page 63 and 64: Tratamiento de errores sintácticos
- Page 65 and 66: Tratamiento de errores sintácticos
- Page 67 and 68: Tratamiento de errores sintácticos
- Page 69 and 70: Tratamiento de errores sintácticos
Ejemplos:<br />
Análisis <strong><strong>sin</strong>táctico</strong> <strong>descendente</strong> <strong>sin</strong> <strong>retroceso</strong><br />
Gramáticas LL(1)<br />
Conjunto de Símbolos Seguidores<br />
sentencia → sent-if | otra<br />
sent-if → if (exp) sentencia parte-else<br />
parte-else → else sentencia | λ<br />
exp → 0 | 1 SEGUIDORES (sentencia) = {$, else}<br />
SEGUIDORES (sent-if) = {$, else}<br />
SEGUIDORES (parte-else) = {$, else}<br />
SEGUIDORES (exp) = {)}<br />
exp → term exp´<br />
exp´ → opsuma term exp´ | λ<br />
opsuma → + | -<br />
term → factor term´<br />
term´ → opmult factor term´ | λ<br />
opmult → *<br />
factor → ( exp ) | numero<br />
SEGUIDORES (exp) = {$, )}<br />
SEGUIDORES (exp´) = {$, )}<br />
SEGUIDORES (opsuma) = {(, numero}<br />
SEGUIDORES (term) = {$, ), +, -}<br />
SEGUIDORES (term´) = {$, ), +, -}<br />
SEGUIDORES (opmult) = {(, numero}<br />
SEGUIDORES (factor) = {$, ), +,-,*}<br />
Página 27