Está en la página 1de 5

1

ENSAYO

ALUMNO (A):
INSTITUTO TECNOLÓGICO SUPERIOR DE

José Antonio García Reyes


Moisés Samuel López Barrales
Josué Yared Girón Torres
Leslie Yissel López Juárez
Número de Control:
21te0563
21te0564
20te0149

Licenciatura en:
Ingeniería en Sistemas Computacionales.
TEZIUTLÁN

Materia:
Lenguajes y Autómatas II

ASESOR (A):
Carreón Romero María Eugenia

Teziutlán, Puebla; mayo2024

“La Juventud de hoy, Tecnología del Mañana”


José Antonio García Reyes

Moisés Samuel López Barrales

Josué Yared Girón Torres

Leslie Yissel López Juárez

ENSAYO. ENTORNOS EN TIEMPO DE EJECUCIÓN.


INTRODUCCIÓN.
Introducción: Entornos en tiempo de ejecución

Para implementar con precisión las abstracciones definidas en el lenguaje fuente, los compiladores crean y
administran entornos en tiempo de ejecución donde se supone que se ejecutan los programas destino. Estos
entornos son responsables de:

 Asignación y distribución de ubicaciones de almacenamiento para objetos nombrados en el programa


fuente
 Mecanismos para que el programa destino acceda a las variables
 Enlaces entre procedimientos
 Mecanismos para el paso de parámetros
 Interfaces para el sistema operativo, dispositivos de entrada/salida y otros programas

Los entornos en tiempo de ejecución permiten a los compiladores dar soporte a conceptos como nombres,
alcances, enlaces, tipos de datos, operadores, procedimientos, parámetros y construcciones de flujo de control en
la máquina destino.

Este capítulo se centrará en dos temas principales relacionados con los entornos en tiempo de ejecución:

 Asignación de ubicaciones de almacenamiento


 Acceso a variables y datos

También se profundizará en la gestión de la memoria, incluida la asignación de la pila, la gestión del montículo de
datos.

DESARROLLO.
Los entornos en tiempo de ejecución son componentes esenciales de los lenguajes de programación que
proporcionan un entorno para la ejecución de programas. Sirven como interfaz entre el código fuente del
programa y el sistema operativo subyacente. Una de las funciones principales de los entornos en tiempo de
ejecución es organizar el almacenamiento de datos y código en varias áreas de memoria, cada una con un
propósito específico.

Estas áreas de almacenamiento incluyen:

Pila: La pila es una estructura de datos de tipo LIFO (último en entrar, primero en salir) que almacena
información sobre las llamadas a funciones activas. Cada vez que se llama a una función, se crea un nuevo
registro de activación en la pila. Este registro contiene información sobre la llamada a la función
José Antonio García Reyes

Moisés Samuel López Barrales

Josué Yared Girón Torres

Leslie Yissel López Juárez

actual, como las variables locales, los parámetros y la dirección de retorno. Cuando la función retorna, su registro
de activación se elimina de la pila.
Montículo de datos: El montículo de datos es un área de memoria que almacena variables globales y estáticas, así
como objetos creados dinámicamente. A diferencia de la pila, el montículo de datos no sigue una organización
LIFO. En su lugar, los datos se asignan de forma contigua y se accede a ellos mediante punteros.
Registros: Los registros son ubicaciones de almacenamiento de alta velocidad que se encuentran dentro de la
CPU. Proporcionan acceso rápido a los datos que se utilizan con frecuencia, como variables temporales, punteros
y direcciones de memoria. Los registros suelen estar organizados en conjuntos, con cada conjunto dedicado a un
tipo particular de dato o propósito.

Asignación de espacio en la pila.

La pila juega un papel crucial en la gestión de la memoria para las llamadas a funciones. Cuando se llama a una
función, se crea un nuevo registro de activación en la parte superior de la pila. Este registro contiene espacio para
las variables locales de la función, los parámetros pasados a la función y la dirección de retorno a la que debe
saltar la función cuando retorna.

La asignación de espacio en la pila se realiza de forma automática por el compilador. El compilador determina el
tamaño de cada registro de activación en función del número y tipo de variables locales y parámetros utilizados
por la función.

Acceso a los datos no locales

Las funciones a menudo necesitan acceder a datos que no están definidos localmente dentro de su propio ámbito.
Estos datos pueden incluir variables globales, variables estáticas y argumentos pasados por referencia. Para
acceder a estos datos no locales, los registros de activación utilizan punteros de entorno.

Los punteros de entorno son punteros que apuntan al registro de activación de la función que contiene los datos no
locales. Estos punteros se almacenan en los registros de activación de las funciones que necesitan acceder a los
datos no locales.

Conclusión
José Antonio García Reyes

Moisés Samuel López Barrales

Josué Yared Girón Torres

Leslie Yissel López Juárez

La organización del almacenamiento en los entornos en tiempo de ejecución es esencial para la ejecución eficiente
de los programas. La pila proporciona un mecanismo para gestionar las llamadas a funciones y almacenar
variables locales y parámetros. El montículo de datos almacena variables globales y estáticas, así como objetos
creados dinámicamente. Los registros proporcionan acceso rápido a los datos utilizados con frecuencia. Esta
organización permite que los programas se ejecuten de manera eficiente y accedan a los datos de manera rápida y
fiable.

DISCUSIÓN DE DATOS.
NOMBRE ESTILO DE PROGRAMACIÓN NUM. TIEMPO
REPETICIONES
Programa 1 Bloque principal de variables principales 100,000 8.26 s
(fuera del ciclo).
Programa 1 Bloque principal de variables principales 1,000,000 51.51 s
(fuera del ciclo).
Programa 2 Bloque principal de variables principales 100,000 9.42 s
(dentro del ciclo).
Programa 2 Bloque principal de variables principales 1,000,000 54.97 s
(dentro del ciclo).
Programa 3 Argumentos por la creación de objetos 100,000 18 .33 s
(variables principales dentro del ciclo).
Programa 3 Argumentos por la creación de objetos 1,000,000 1m 37s
(variables principales dentro del ciclo).
Programa 4 Argumentos por la creación de objetos 100,000 13.80 s
(variables principales fuera del ciclo).
Programa 4 Argumentos por la creación de objetos 1,000,000 1m 30s
(variables principales fuera del ciclo).
Programa 5 Programación con métodos (variables 100,000 10.95 s
principales fuera del ciclo).
Programa 5 Programación con métodos (variables 1,000,000 1m 28s
principales fuera del ciclo).
Programa 6 Programación con métodos (variables 100,000 15.12 s
principales dentro del ciclo).
Programa 6 Programación con métodos (variables 1,000,000 1m 35s
principales dentro del ciclo).

CONCLUSION.
Al momento en que se declaran las variables principales dentro del ciclo for, estas se inicializan cada vez que el
ciclo vuelve a empezar, por eso es que tarda mas a diferencia de cuando se declaran las variables principales
fuera, ya que solo se declaran una vez y luego solo cambian su valor. En cuanto a los tiempos de cada programa,
se puede observar que los tiempos mas rápidos pertenecen al programa 1 y 2, ya que estos utilizan una sola clase y
consume menos recursos que los demás programas. En segundo lugar se observa que los programas 3 y 4 son mas
rápidos que los 5 y 6, debido a que el 3 y 4
José Antonio García Reyes

Moisés Samuel López Barrales

Josué Yared Girón Torres

Leslie Yissel López Juárez

utilizan una misma clase, pero su método principal manda a llamar métodos creados fuera de él. Y por ultimo se
concluye que los programas 5 y 6 son mas lentos porque mandan a traer clases externas que contienen métodos.
REFERENCIAS.

(S/f). Tecnm.mx. Recuperado el 2 de mayo de 2024, de

https://tie.teziutlan.tecnm.mx/m24/pluginfile.php/32417/mod_resource/content/1/Le

ctura1_Compiladores.pdf

También podría gustarte