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 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.

Verificación de tipos

Comprueba la compatibildad de tipos de todas las expresiones del código fuente 

recuperando la información durante la gestión de declaraciones. Además se asegura de 

que no existe en el programa ninguna referencia a ningún símbolo no declarado.

Inferencia de tipos

En lenguajes sin tipificación de variables o con sobrecarga se aplican tareas de inferencia de tipos en el nivel gramatical de las expresiones para resovler el tipo de datos de la expresión resultante en función del contexto de evaluación.


 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. 

Verificación de tipos Comprueba la compatibilidad de tipos de todas las expresiones del 

código fuente recuperando la información durante la gestión de declaraciones. 

Además se asegura de que no existe en el programa ninguna referencia a ningún símbolo 

no declarado.

Comentarios

Entradas más populares de este blog

Arboles de expresiones