Documentos de Académico
Documentos de Profesional
Documentos de Cultura
AUTÓMATAS Y COMPILADORES
DOCENTE:
MG. MARCELINO TORRES VILLANUEVA
INTEGRANTES:
- PUELLES CALDAS, MIULER
- REYES JULCA, CHRISTIAN
- SERIN NERY, ELMER
- SILVA GUEVARA, MANUEL
- ZAVALETA CORTEZ, JEYSON
ANALIZADOR SINTÁCTICO DESCENDENTE
AUTÓMATAS Y COMPILADORES 2
ANALIZADOR SINTÁCTICO DESCENDENTE (ASD)
AUTÓMATAS Y COMPILADORES 3
ANALIZADOR SINTÁCTICO DESCENDENTE
EJEMPLO: Declaración de variables en C, sin inicialización, de tipo int o float.
D → Tipo id L
Tipo → int
Tipo → float int a,b;
L → coma id L
L → pyc
𝐷 ⇒ 𝑇𝑖𝑝𝑜 𝐢𝐝 𝐚 𝐿
⇒ 𝐢𝐧𝐭 𝐢𝐝 𝐚 𝐿
⇒ 𝐢𝐧𝐭 𝐢𝐝 𝐚 𝐜𝐨𝐦𝐚 𝐢𝐝 𝐛 𝐿
⇒ 𝐢𝐧𝐭 𝐢𝐝 𝐚 𝐜𝐨𝐦𝐚 𝐢𝐝 𝐛 𝐩𝐲𝐜
AUTÓMATAS Y COMPILADORES 4
ANALIZADOR SINTÁCTICO DESCENDENTE (ASD)
Los métodos descendentes se caracterizan porque analizan la cadena de componentes
léxicos de izquierda a derecha, obtienen la derivación más a la izquierda y el árbol
de derivación se construye desde la raíz hasta las hojas.
(no deseables)
AMBIGÜEDAD
Para que se pueda usar en un compilador, El analizador debe saber en todo momento
el analizador sintáctico debe tener un qué regla ha de aplicar, no puede hacer
coste temporal lineal, O(n) backtracking.
AUTÓMATAS Y COMPILADORES 5
ANALIZADOR SINTÁCTICO DESCENDENTE
AUTÓMATAS Y COMPILADORES 6
ANALIZADOR SINTÁCTICO DESCENDENTE (ASD)
• La recursividad a izquierdas da lugar a un bucle infinito de recursión.
AUTÓMATAS Y COMPILADORES 7
ANALIZADOR SINTÁCTICO DESCENDENTE
AUTÓMATAS Y COMPILADORES 8
GRAMÁTICAS LL(I): CONJUNTOS PRIMERO Y SIGUIENTE
AUTÓMATAS Y COMPILADORES 9
GRAMÁTICAS LL(I): CONJUNTOS PRIMERO Y SIGUIENTE
AUTÓMATAS Y COMPILADORES 10
ANALIZADOR SINTÁCTICO DESCENDENTE
AUTÓMATAS Y COMPILADORES 11
LA CONDICIÓN LL(I)
Para que una gramática sea LL(1) se debe cumplir que:
1. Para las producciones de la forma 𝐴 → 𝛼1 |𝛼2 |…|𝛼𝑛 nse debe cumplir que:
𝑃𝑅𝐼𝑀𝐸𝑅𝑂𝑆 𝛼𝑖 ∩ 𝑃𝑅𝐼𝑀𝐸𝑅𝑂𝑆 𝛼𝐽 = ∅ para todo i,j (𝑖 ≠ 𝑗).
Esta regla permite decidir que alternativa elegir conociendo solo un símbolo de la entrada.
1. Si 𝐴 ∈ 𝑉𝑛 , tal que 𝜖 ∈ 𝑃𝑅𝐼𝑀𝐸𝑅𝑂𝑆 𝐴 , entonces:
𝑃𝑅𝐼𝑀𝐸𝑅𝑂𝑆 𝛼𝑖 ∩ 𝑆𝐼𝐺𝑈𝐼𝐸𝑁𝑇𝐸𝑆 𝛼𝐽 = ∅
Esta condición garantiza que para aquellos símbolos que pueden derivar la cadena vacía, el primer símbolo
que generan y el siguiente que puede aparecer detrás de ellos sean distintos, sino no sabríamos como
decidir si vamos a empezar a reconocer el no-terminal o que ya lo hemos reconocido.
AUTÓMATAS Y COMPILADORES 12
LA CONDICIÓN LL(I)
EJEMPLO:
AUTÓMATAS Y COMPILADORES 13