Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time...
-
Upload
armando-trigo -
Category
Documents
-
view
221 -
download
0
Transcript of Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time...
![Page 1: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/1.jpg)
Nombre, Alcance y Asociaciones (Bindings)
![Page 2: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/2.jpg)
Agenda• Definición Nombre y Bindings• Binding Time• Importancia del Binding Time• Eventos relacionados a la Asociación• Ubicación de Almacenamiento• Objetos estáticos• Almacenamiento de Pila• Marco de Pila• Asignación Base del Heap• Políticas de Asignación• Problemas de Fragmentación del Heap• Costo de la Asignación base del Heap• Desasignación Base del Heap• Reglas de Alcance
– Alcance estático• Tiempo de Vida y Manejo de Memoria
![Page 3: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/3.jpg)
Nombres Bindings
Importante para lograr capacidad de abstracción
Asociación de un nombre conel objeto a representar o asociaciónentre dos objetos cualesquiera.
Nombre, Alcance y Asociaciones
![Page 4: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/4.jpg)
Momento de Asociación (Binding Time)
Diseño del Lenguaje: se deciden cuales son las palabras reservadas del lenguaje y que objetos representan.
Implementar el lenguaje: En este momento es cuando se decide que cantidad de bits se van a utilizar para representar los objetos o palabras seleccionadas a la hora del diseño.
![Page 5: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/5.jpg)
Momento de Asociación (Binding Time)
Escritura del programa: Todos los nombre son escogidos por el programador
Compilación del programa: Se hace un mapeo de HLL en la construcción de código de máquina.
Proc P
{ int x,y
char a[10]
float z
….}
o
2
4
14
x
y
a
z18
Int = 2 bitschar = 1 bitsfloat = 4 bits
![Page 6: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/6.jpg)
Momento de Asociación (Binding Time)
• A tiempo de enlace- Resuelve referencias entre módulos.
• A tiempo de carga- Asignación de direcciones de máquina.
• A tiempo de ejecución- Asociación de valores a las variables.
![Page 7: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/7.jpg)
Importancia del Momento de la Asociación (Binding Time)
• Momento de Asociación temprana- Eficiencia
- Lenguaje compilado
• Momento de Asociación tardía- Flexibilidad
- Lenguaje interpretado
![Page 8: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/8.jpg)
Importancia del Momento de la Asociación (Binding Time)
• Diseño
• Implementación
• Escritura
• Compilación
• Enlace
• Carga
• Ejecución
EstáticoBinding TempranoMayor eficiencia
Lenguajes compilados
DinámicoBanding Tardío
Mayor flexibilidadLenguajes interpretados
![Page 9: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/9.jpg)
Eventos relacionados a la Asociación (Binding)
• Creación de objetos
• Creación de asociaciones
• Referencias a variables, subrutinas, tipos, etc.
• Destrucción de objetos
• Destrucción de asociaciones (bindings)
• Activación / Desactivación temporal de asociaciones (bindings)
![Page 10: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/10.jpg)
Ubicación de Almacenamiento
• Estático:los objetos consiguen la dirección fija absoluta (a tiempo de compilación).
• Pila (Stack): los objetos son ubicados en el tope de la pila en conexión con las llamadas a subrutinas.
• Heap: los objetos son asignados/desasignados en cualquier instante (objetos dinámicos), esto puede darse por:– Explicitamente por el programador
– Implicitamente por el recolector de basura (garbage collector).
Sentido en el que crece la pila (Stack)
Sentido en el que crece el Heap
![Page 11: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/11.jpg)
Objetos Estáticos
• Variables globales
• Constantes
• Variables locales para una subrutina, pero retiene valores a través de invocaciones.
• Tabla de símbolos
• Espacio para subrutinas, incluyendo variables locales en lenguajes sin recursión.
![Page 12: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/12.jpg)
Almacenamiento de Pila
• Espacio para subrutinas en un lenguaje que permite recursión.
- Argumentos, variables locales.
- Valores de retorno.
• Secuencia de llamadas de subrutinas- Código llamador- Código del llamado
- Prologo- Epilogo
![Page 13: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/13.jpg)
Marco de Pila
• Específicamente a tiempo de compilación.- El desplazamiento de objetos esta dentro del objeto.
- Apuntador a Frame (Frame pointer)
- Apuntador a Pila (Stack pointer)
• Específicamente a tiempo de ejecución.- La localización absoluta del marco de pila esta en
memoria.
![Page 14: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/14.jpg)
Ejemplo de Marco de Pila
Subrutina B
Subrutina C
Subrutina D
fp
sp
- Variables locales
- Dirección de retorno
- Registro del CPU salvados
- Parámetros reales
- Cadena dinámica
- Cadena estática
- Miscelaneos
- Valor de retorno (en el caso de funciones)
Dirección de crecimiento de la pila (usualmente disminuye las direcciones)
![Page 15: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/15.jpg)
Asignación Base del Heap
• Heap: región de almacenamiento en la cual los bloques pueden asignarse o desasignarse arbitrariamente.
• Administración del almacenamiento:- Lista libre (Free List): lista enlazada de los bloques
libres.
- En cada asignación, se buscar el bloque de tamaño adecuado, la cual puede seguir las siguientes políticas:
- First fit
- Best fit
![Page 16: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/16.jpg)
Políticas de Asignación
Best fit
First fit
Se desea asignar el siguiente bloque tamaño 60 Kb.
50 Kb 80 Kb 85 Kb 10 Kb 50 Kb 70 Kb 170 Kb 80 Kb 45 Kb
Mem.
50 Kb 80 Kb 85 Kb 10 Kb 50 Kb 70 Kb 170 Kb 80 Kb 45 Kb
50 Kb 80 Kb 85 Kb 10 Kb 50 Kb 70 Kb 170 Kb 80 Kb 45 Kb
![Page 17: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/17.jpg)
Problema de Fragmentación del Heap
• Fragmentación interna: es cuando parte del bloque no se utiliza, se da cuando la partición es estática.• Fragmentación externa: consiste cuando hay muchos bloques pequeños sin usar, se da cuando la partición es dinámica.
![Page 18: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/18.jpg)
Costo de la Asignación Base de Heap
• Una lista de bloques libres libre: el costo es lineal al número de bloques libres.
• Varias listas por bloques de distintos tamaños:- Buddy system
- Fibonacci heap.
• Para eliminar la fragmentación externa, el Heap puede ser compactado.
![Page 19: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/19.jpg)
Desasignación Base del Heap
• Explicitamente por el programador:- Eficiente- Puede producir errores indeseables como:
- Referencias guindantes.- Quiebre de memoria.
• Automáticamente por el recolector de basura (garbage collector).
![Page 20: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/20.jpg)
Reglas de Alcance
• Alcance de una asociación: una región de un programa en la cual la asociación es activa.
• Alcance: la región de un programa en la que un nombre o binding es valido.
• El alcance puede ser:- Estático- Dinámico.
![Page 21: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/21.jpg)
Alcance Estático
• Subrutinas Anidadas
• Módulos
• La asociación actual para nombres:- El primero en encontrarse de arriba hacia abajo en
el texto de un programa.
![Page 22: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/22.jpg)
Alcance Estático
Variable globales: dentro de toda la clase o módulo
Variables locales: se encuentran dentro de un Procedimiento o subrutina
Las variables que están afuera si pueden ser vistas adentro,pero las de adentro no pueden ser vistas afuera.
![Page 23: Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.](https://reader034.fdocuments.mx/reader034/viewer/2022042603/5665b42d1a28abb57c8fcb63/html5/thumbnails/23.jpg)
Tiempo de Vida y Manejo de Memoria
Durante la compilación:a) Objetos estáticos: perduran toda la ejecución del programa.b) Objetos locales/de pila: nacen y mueren durante una subrutina,
se almacenan en la pila.c) Objetos dinámicos/de Heap: nacen y mueren en momentos arbitrarios,
se almacenan en el Heap.
Class { static int x = 5 public static void P{ float P; int[ ] z;… z = new int[ 10 ]}… }
Objeto estático
Objeto de pila
Objeto dinámico