Análisis semántico de un compilador

Get Started. It's Free
or sign up with your email address
Análisis semántico de un compilador by Mind Map: Análisis semántico de un compilador

1. Acciones semánticas de un analizador sintáctico

1.1. la salida del analizador sintáctico es alguna representación del árbol sintáctico.

1.1.1. reconoce la secuencia de Token suministrada por el analizador léxico. El analizador sintáctico también hace:

1.1.1.1. Acceder a la tabla de símbolos.

1.1.1.2. Generar código intermedio.

1.1.1.3. Chequeo de tipos (del analizador semántico).

1.1.1.4. Generar errores cuando se producen.

1.1.1.5. En definitiva, realiza casi todas las operaciones de la compilación.

2. Comprobaciones de tipos en expresiones

2.1. consiste en conferir a las construcciones sintácticas del lenguaje la semántica de tipificación.

2.1.1. realizar todo tipo de comprobaciones de dicha índole.

2.1.1.1. Comprobaciones estáticas

2.1.1.1.1. recogen el compendio de todas aquellas tareas de carácter semántico

3. Pila semántica en un analizador sintáctico

3.1. es un autómata de pila que reconoce la estructura de una cadena de componentes léxicos.

3.1.1. inicializa el compilador y para cada símbolo de entrada llama al analizador morfológico y proporciona el siguiente símbolo de entrada.

4. Generación de la tabla de símbolo y de direcciones

4.1. realizan dos importantes funciones en el proceso de traducción: verificar que la semántica sea correcta y ayudar en la generación apropiada de código.

4.1.1. Ambas funciones se realizan insertando o recuperando desde la tabla de símbolos los atributos de las variables usadas en el programa fuente.

4.1.1.1. Una tabla de símbolos puede conceptualizarse como una serie de renglones, cada uno de los cuales contiene una lista de valores de atributos que son asociados con una variable en particular.

5. se insertan acciones semánticas encerradas entre llaves { } dentro de los lados derechos de las producciones.

6. Los esquemas de traducción pueden tener tantos atributos sintetizados como heredados.

7. Análisis semántico

7.1. detectar errores relacionados con la validez de un programa.

7.1.1. recibe la información resultado del análisis sintáctico.

7.1.1.1. puede ser un árbol jerárquico con la información relativa a la organización de los tokens en la instrucción que se esta analizando.

8. Arboles de expresiones

8.1. representan el código de nivel del lenguaje en forma de datos.

8.1.1. Los datos se almacenan en una estructura con forma de árbol.

8.1.1.1. Cada nodo del árbol de expresión representa una expresión.

9. Esquema de traducción

9.1. es una gramática independiente de contexto en la que se asocian atributos con los símbolos gramaticales.

10. Manejo de errores semánticos

10.1. Es una de las misiones más importantes de un compilador, aunque, al mismo tiempo, es lo que más dificulta su realización.

10.1.1. A veces unos errores ocultan otros.

10.1.1.1. A veces un error provoca una avalancha de muchos errores que se solucionan con el primero.

10.1.1.1.1. Es conveniente un buen manejo de errores, y que el compilador detecte todos los errores que tiene el programa y no se pare en el primero que encuentre.