1.2 Acciones semánticas de un analizador sintáctico

 Es la fase del analizador que se encarga dechequear el texto de entrada en base a una gramática dada. Y en caso de que el programa de entrada sea válido, suministra el árbol sintáctico que lo reconoce.

En teoría, se supone que la salida del analizador sintáctico es alguna representación del árbol sintáctico que reconoce la secuencia de Token suministrada por el analizador léxico.

En la práctica, el analizador sintáctico también hace:

• Acceder a la tabla de símbolos (para hacer parte del trabajo del analizador semántico).
• Chequeo de tipos (del analizador semántico).
• Generar código intermedio.
• Generar errores cuando se producen.
• En definitiva, realiza casi todas las operaciones de la compilación. Este método de trabajo da lugar a los métodos de compilación dirigidos por sintaxis.

1.3 Comprobaciones de tipos en expresiones

 

La labor de comprobación de tipos consiste en conferir a las construcciones sintácticas del lenguaje la semántica de tipificación y en realizar todo tipo de comprobaciones de dicha índole. Por su naturaleza, sin embargo, ésta se encuentra repartida entre la fase de análisis semántico y la generación de código intermedio.

• Comprobaciones estáticas

Las comprobaciones estáticas recogen el compendio de todas aquellas tareas de carácter semántico que, por su naturaleza, pueden ser realizadas directamente durante la fase de compilación mediante el uso de los artefactos y mecanismos propios de dicha fase. Este tipo de comprobaciones son beneficiosas puesto que confieren seguridad a la ejecución del programa.

• Características

Diferente de la dinámica en runtime.

-Ejemplo: comprobación de tipos, flujo de control, unicidad.

• Comprobaciones dinámicas

Las comprobaciones dinámicas son aquellas que no se realizan durante la fase de compilación y se delegan al momento de la ejecución del programa. Ello requiere generar código ejecutable específicamente diseñado para realizar tales comprobaciones. Los lenguajes con una carga excesiva de comprobaciones dinámicas generan programas más largos, lentos e inseguros en ejecución.




FUENTE:


http://itpn.mx/recursosisc/7semestre/leguajesyautomatas2/Unidad%2520I.pdf&ved=2ahUKEwiX0YTIrabvAhVNXq0KHRcuC7cQFjABegQIAhAG&usg=AOvVaw2MKy5I_bEiFiz4okep4O1r




Erasmo Stevens González




Comentarios

Entradas populares de este blog

1.1 Árboles de expresiones

1.4 Pila semántica en un analizador sintáctico