You are on page 1of 19

 Recuperación en modo de pánico:

 Recuperación a nivel de fase:


 Al descubrir un error , el analizador sintáctico puede realizar una corrección
local de la entrada restante, puede sustituir un prefijo de la entrada restante
por alguna cadena que permita continuar al analizador sintáctico. Una
corrección local típica seria sustituir por una como por un punto y como,
suprimir un punto y coma sobrante, o insertar un punto y coma que falta.

 Este tipo de sustitución puede corregir cualquier cadena de entrada y ha


sido empleado en varios compiladores que corrigen errores. El método se
uso primera vez en al análisis sintáctico descendente.

 Desventaja: Afrontar situaciones en el que el error real se produjo antes del


punto de detección.
 Producción de error:
 Si se tiene idea de los errores comunes , se puede aumentar la gramática
del lenguaje con producciones que generen construcciones erróneas. Se
usa esta gramática aumentada con las producciones de error para construir
el analizador sintáctico. Si este analizador usa una producción de error, se
pueden generar diagnósticos de error apropiados para indicar la
construcción errónea reconocida en la entrada.
 Tipos de base: int , float , double , char , bool
 Tipos Compuesto :arrays, punteros, registros, estructuras , uniones s, clases, etc.
 Tipos complejos: listas, pilas, colas, árboles, montones, tablas, etc.
 Tipos Estáticos:

-> a*b
 Tipos Dinámicos:

 -> Tipo double contendría tanto la valor doble real y algún tipo de etiqueta que
indica "tipo doble“
 ->List
 Suponga que los enteros se convierten a números de punto flotante cuando es
necesario,
 usando un operador unario (float). Por ejemplo, el entero 2 se convierte a un
número de
 punto flotante en el código para la expresión 2 * 3.14:
 Una sobrecarga de un símbolo tiene diferentes significados, dependiendo de su
contexto. La sobrecarga se resuelve cuando se determina un significado único para
cada ocurrencia de un nombre. En esta sección nos enfocaremos en la sobrecarga
que puede resolverse con sólo ver los argumentos de una función, como en Java.
 El algoritmo de unificación en esta sección se extiende a los grafos con ciclos, por
lo que puede utilizarse para evaluar la equivalencia estructural de los tipos
circulares.

 ENTRADA: Un grafo que representa a un tipo y un par de nodos m y n que se van a


unificar.
 SALIDA: El valor booleano verdadero si las expresiones representadas por los
nodos m y n se unifican; falso en cualquier otro caso.
• buscar (n) devuelve el nodo representativo de la clase de equivalencia que contiene
actualmente el nodo n.

• unión (m, n) combina las clases de equivalencias que contienen los nodos m y n. Si uno
de los representantes para las clases de equivalencias de m y n es un nodo no variable,
unión convierte a ese nodo no variable en el representante para la clase de equivalencia
combinada; en caso contrario, unión convierte a uno de los dos representantes
originales en el nuevo representante.

You might also like