jueves, 29 de febrero de 2024
jueves, 15 de febrero de 2024
miércoles, 14 de febrero de 2024
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.
jueves, 8 de febrero de 2024
Investigacion acciones sematicas de los árboles de expresión
análisis
semántico utiliza como entrada el árbol sintáctico detectado para comprobar
restricciones de tipo y otras limitaciones semánticas y preparar la generación
de código. Se trata de determinar el tipo de los resultados intermedios,
comprobar que los argumentos que tiene un operador pertenecen al conjunto de
los operadores posibles, y si son compatibles entre sí, es decir, comprobará
que el significado de lo que se va leyendo es válido
Las acciones semánticas son
procedimientos que se adjuntan a nodos en un árbol de sintaxis y se ejecutan
durante el análisis sintáctico. Se utilizan para agregar significado a la
estructura del árbol de sintaxis.
Los tipos comunes de acciones
semánticas incluyen:
·
Verificación
de tipos: Esto se usa para
asegurarse de que los operados de un operador tengan los tipos
correctos. Por ejemplo, la acción semántica para la suma podría
verificar que ambos operados sean números.
·
Evaluación
de expresiones: Esto
se usa para calcular el valor de una expresión. Por ejemplo, la
acción semántica para la suma podría calcular la suma de los dos operados.
·
Generación
de código: Esto se usa para generar
código de máquina para una expresión. Por ejemplo, la acción
semántica para la suma podría generar código para cargar los dos operados en la
pila y luego sumar ellos.
Las acciones semánticas se pueden
implementar de diversas formas. Un enfoque común es usar una tabla de acciones
semánticas, que es una tabla que mapea nodos en el árbol de sintaxis a acciones
semánticas. Otra El enfoque es usar un lenguaje de acción semántica, que es un
lenguaje especial que se usa para escribir acciones semánticas.
Las acciones semánticas son una
parte importante de los compiladores. Se utilizan para agregar significado a la
estructura del árbol de sintaxis y para generar código de máquina para una
fuente programa.
Aquí hay un ejemplo de un árbol
de expresión para la expresión a + b:
+
/ \
a b
Las acciones semánticas se pueden
adjuntar a cualquier nodo del árbol. Por ejemplo, se podría adjuntar una acción
semántica al nodo + para verificar que los operados a y b sean números. También
se podría adjuntar una acción semántica al nodo + para calcular la suma de a y b.
Las acciones semánticas son una
herramienta poderosa para agregar significado a la estructura del árbol de
sintaxis. Se pueden utilizar para realizar una variedad de tareas, incluida la
verificación de tipos, la evaluación de expresiones y la generación de código.
viernes, 2 de febrero de 2024
4.3 Lenguaje Máquina
4.3 Lenguaje Máquina Es el que proporciona poca o ninguna abstracción del microprocesador de un ordenador. El lenguaje máquina solo es ent...

