Nombre, Alcance y Asociaciones (Bindings) - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

Nombre, Alcance y Asociaciones (Bindings)

Description:

Sentido en el que crece la pila (Stack) Sentido en el que crece el Heap. Objetos Est ticos ... la pila (usualmente. disminuye las. direcciones) Asignaci n Base ... – PowerPoint PPT presentation

Number of Views:125
Avg rating:3.0/5.0
Slides: 24
Provided by: AronL5
Category:

less

Transcript and Presenter's Notes

Title: Nombre, Alcance y Asociaciones (Bindings)


1
Nombre, Alcance y Asociaciones (Bindings)
2
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

3
Nombre, Alcance y Asociaciones
Bindings
Nombres
Importante para lograr capacidad de abstracción
Asociación de un nombre con el objeto a
representar o asociación entre dos objetos
cualesquiera.
4
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.
5
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.
o
x
Proc P int x,y char a10 float z .
2
y
4
Int 2 bits char 1 bits float 4 bits
a
14
z
18
6
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.

7
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

8
Importancia del Momento de la Asociación (Binding
Time)
  • Diseño
  • Implementación
  • Escritura
  • Compilación
  • Enlace
  • Carga
  • Ejecución

Estático Binding Temprano Mayor
eficiencia Lenguajes compilados
Dinámico Banding Tardío Mayor flexibilidad Lenguaj
es interpretados
9
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)

10
Ubicación de Almacenamiento
  • Estáticolos 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 el Heap
Sentido en el que crece la pila (Stack)
11
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.

12
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

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

14
Ejemplo de Marco de Pila
  • - 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)

sp
Subrutina D
fp
Subrutina C
Dirección de crecimiento de la pila (usualmente
disminuye las direcciones)
Subrutina B
15
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

16
Políticas de Asignación
50 Kb
80 Kb
85 Kb
10 Kb
50 Kb
70 Kb
170 Kb
80 Kb
45 Kb
Mem.
Se desea asignar el siguiente bloque tamaño 60 Kb.
First fit
50 Kb
80 Kb
85 Kb
10 Kb
50 Kb
70 Kb
170 Kb
80 Kb
45 Kb
Best fit
50 Kb
80 Kb
85 Kb
10 Kb
50 Kb
70 Kb
170 Kb
80 Kb
45 Kb
17
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.

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

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

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

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

22
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.
23
Tiempo de Vida y Manejo de Memoria
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
  • Durante la compilación
  • Objetos estáticos perduran toda la ejecución
    del programa.
  • 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.
Write a Comment
User Comments (0)
About PowerShow.com