Variables, ámbito y comprobación de tipos

Get Started. It's Free
or sign up with your email address
Variables, ámbito y comprobación de tipos by Mind Map: Variables, ámbito y comprobación de tipos

1. VARIABLE

1.1. Nombre: Cadena de caracteres para reconocer una ENTIDAD de un programa

1.1.1. Son los identificadores mas numerosos de un programa

1.1.2. Algunos lenguajes limitan su longitud (ej.31 en C) otros no lo hacen

1.1.3. El conector mas utilizado es  _ (guión bajo)

1.1.4. La gran mayoría de lenguajes es CASE SENSITIVE es decir distingue entre mayúsculas y minúsculas los nombres de sus identificadores.

1.1.5. Existen palabras ESPECIALES predefinidas por el lenguaje que permiten separar entidades sintácticas de los programas

1.1.5.1. Palabras clave: Son palabras especiales de acuerdo a su contexto

1.1.5.2. Palabras reservadas: No se puede emplear como un identificador

1.1.5.2.1. Algunos lenguajes cuentan con nombres predefinidos que pueden ser cambiados por el usuario (re definición)

1.1.5.2.2. El numero de palabras reservadas es proporcional a la complicidad del lenguaje

1.2. Dirección: Estancia de la memoria a la que esta asociada la variable

1.2.1. Un mismo nombre puede tener asociado diferentes direcciones,común en parámetros, variables locales y globales

1.2.2. Alias: No es mas que dos o más nombres distintos para referenciar la misma dirección

1.2.2.1. Registros o Uniones: Ahorro de espacio en el almacenamiento de tipos diferentes en la misma dirección

1.2.2.2. Apuntadores: Cuando apuntan a la misma localización de memoria

1.2.3. I-VALOR

1.3. Tipo: Determina esencialmente el RANGOde valores que puede tomar la variable y el conjunto de OPERTACIONESdefinidas para su tipo.

1.4. Valor: Contenido de la celda o celdas de memoria asociadas a variables

1.4.1. Para acceder a un R-VALOR primero debe determinarse su I-VALOR

1.4.2. R-VALOR

2. LIGADURA (BINDING)

2.1. Definición: Asociación entre un atributo y una entidad. En el momento que se produce se denomina tiempo de ligadura

2.2. Ligadura de Tipos

2.2.1. Ligadura Estática

2.2.1.1. Ocurre antes del tiempo de ejecución y permanece inalterable durante la ejecución del programa

2.2.1.1.1. Declaración explícita: Se utiliza una sentencia que declara una lista de identificadores coomo un tipo determinado

2.2.1.1.2. Declaración Implícita: Forma de asociar variables con tipos a través de convenciones sintácticas

2.2.1.1.3. Algoritmo de inferencia de tipos: Determina los tipos de las variables que intervienen en las expresiones sin que sean declaradas

2.2.2. Ligadura Dinámica

2.2.2.1. Ocurre durante del tiempo de ejecución o puede cambiar en el transcurso de la ejecución del programa

2.2.2.1.1. VENTAJA: Flexibilidad de programación

2.2.2.1.2. DESVENTAJA: No detección de incorrecciones en tipo de asignaciones

2.2.2.2. Coste de implementación mayor

2.2.2.2.1. Comprobación de tipos

2.2.2.2.2. Mantenimiento del descriptor asociado a cada variable

2.2.2.2.3. Cambio en el tamaño de la memoria asociada a la variable

2.3. Ligadura de espacio y tiempo de vida

2.3.1. Proceso de asignación: Ligar celdas de memoria a la variable

2.3.2. Proceso de des asignación: Desligar celdas de memoria de la variable

2.3.3. Tiempo de vida: Tiempo en cuala variable esta ligada a una localización específica de memoria

2.3.4. Clasificación de Variables

2.3.4.1. Variables Estáticas: Ligadas a celdas de memoria antes de la ejecución del programa hasta su finalización

2.3.4.1.1. VENTAJA: Eficiencia con direccionamiento directo y no sobrecarga  en tiempo de ejecución

2.3.4.1.2. DESVENTAJA: Reducida flexibilidad - recursividad nula

2.3.4.1.3. Variables globales

2.3.4.2. Variables Dinámicas de pila: La ligadura se produce cuando se elabora la sentencia de declaración

2.3.4.2.1. La asignación se produce en tiempo de elaboración

2.3.4.2.2. La designación al devolver el control al procedimiento que lo llama

2.3.4.2.3. Variables locales

2.3.4.2.4. El espacio se asigna en la pila de tiempo de ejecución

2.3.4.2.5. VENTAJA: Comparten mismo espacio de memoria (pila) - recursividad

2.3.4.2.6. DESVENTAJA: Sobre carga en tiempo de ejecución debido asignación des asignación

2.3.4.3. Variables dinámicas de montón

2.3.4.3.1. Explícitas

2.3.4.3.2. Implícitas

3. TIPOS

3.1. Comprobación de tipos

3.1.1. Actividad que nos asegura que los operandos de un operador son de tipos compatibles

3.1.1.1. Subprograma - parámetros

3.1.1.2. Asignación - operador binario

3.1.2. Coerción: Conversión a un tipo legal implícitamente por elcompilador

3.1.3. Error de tipos: Aplicación de un operador a un operando de tipo inapropiado

3.1.4. De acuerdo al tipo de ligadura dinámica o estática

3.2. Disciplina de Tipos

3.2.1. Detección de errores de tipo

3.3. Compatibilidad de Tipos

3.3.1. Métodos

3.3.1.1. Compatibilidad de tipos nominal: dos variables tienen tipos compatibles si están ligadas al mismo nombre de tipo

3.3.1.2. Compatibilidad de tipos estructural: dos variables tienen tipos compatibles si sus tipos tienen la misma estructura

3.3.1.3. Equivalencia de declaración: dos variables tienen tipos compatibles si uno de los tipos está definido con el nombre del otro

4. ÁMBITO

4.1. Definición: Rango de sentencias en las que es visible la variable

4.2. Ámbito Estático: Método de ligadura de nombres a variables no locales que ocurre en tiempo de compilación

4.2.1. Una declaración de una variable oculta cualquier declaración de otra variable con el mismo nombre

4.2.2. Algunos LP permiten definir nuevos ámbitos estáticos en mitad de código ejecutable

4.2.3. Las secciones de código en la que pueden definirse variables locales se denominan bloques

4.2.4. Evaluación: Proporciona un método de acceso a variables no locales adecuado en la mayoría de los casos

4.3. Ámbito Dinámico:  Basado en la secuencia de llamadas a subprogramas y no en la relación sintáctica entre ellos

4.3.1. El ámbito sólo puede determinarse en tiempo de ejecución

4.3.2. Evaluación: Una sentencia en un sub programa que contiene una referencia a una variable no local puede relacionarse con una variable diferente cada vez que se ejecuta

4.3.3. VENTAJA: el subprograma hereda el contexto de sus llamadores

4.4. Entorno de Referencia: colección de todos los identificadores visibles en dicha sentencia

4.4.1. Ámbito estático: compuesto por las variables declaradas en su ámbito local más todas las variables visibles de sus antepasados estáticos

4.4.2. Ámbito dinámico: compuesto por las variables declaradas localmente más todas las variables visibles del resto de sub programas activos

5. CONSTANTES

5.1. Definición: Objeto al que se le liga un valor sólo en el momento en el que se le liga el espacio

5.2. VENTAJA: Aumenta la fiabilidad y legibilidad de los programas

6. INICIALIZACIÓN DE VARIABLES

6.1. Definición: Ligadura de un valor a una variable en el momento en el que también se le liga el almacenamiento

6.2. Variables estáticas: inicialización sucede una sola vez antes del momento de la ejecución

6.3. Variables con ligadura dinámica de espacio: la inicialización también es dinámica

6.4. Variables no inicializadas: Se les liga memoria pero su contenido es arbitrario y no es interpretado