miércoles, 18 de abril de 2018

Alcances de la programación.

¿Qué quiere decir Alcance? 

*El alcance de una asociación es la región de un programa en la cual dicha asociación está activa y visible. 

*Se usa simplemente alcance para hacer referencia a la región de un programa en la que un nombre o una asociación tiene validez. 

*Puede ser estático o dinámico

Dos significados diferentes según el contexto:

 • Para una asociación particular, su alcance es la región de un programa en la cual está activa y visible.

• Si consideramos más de una asociación, un alcance es una región de un programa de tamaño máximo en la cual no hay cambios en las asociaciones – típicamente un bloque

 • Al ingresar – se elaboran las asociaciones que deben activarse.

 • Al salir – se destruyen las asociaciones que deben desactivarse. 

• Ambiente de Referencia – conjunto de asociaciones activas en un punto dado del programa.

 • Calculado usando reglas de Alcance Estático o Dinámico.

 • Mantenido usando las técnicas de almacenamiento global o local que estudiamos en la clase pasada.

Imagen relacionada


¿Qué puede verse y dónde?

Globales – dentro de todo el módulo o programa. 

• Locales – dentro del procedimiento o bloque que las contiene. 

• De “afuera hacia adentro”, hay visibilidad.


¿Y cómo puede ser útil? 

Simplifica la adaptación de rutinas en algunos casos: en lugar de pasar argumentos, las rutinas pueden usar variables que sean controladas por alcance dinámico. 

• Ese problema se puede resolver sin usar alcance dinámico: 

• Usando polimorfismo con parámetros por defecto. 

• Usando varias rutinas con parámetros diferentes. 

• Se puede usar una variable global/local estática, salvarla, poner el valor nuevo, llamar a la rutina y restaurarla después.  

Tipos de alcances**

Alcance Estatico

Cambien llamado alcance lexicógrafo, el alcance se determina a tiempo de compilación y es independiente del flujo de ejecución.

Variedades simples
       Sólo variables globales (BASIC). 
       Globales y locales sin anidamiento (Fortran). 

Variedades completas – cualquier lenguajes moderno. El programador puede mirar el texto del programa, y pensar en función de sustituciones de variables.


Alcance Anidamiento

• De subrutinas, de bloques, de módulos, de clases. . .

• Regla del Bloque de Alcance más Cercano

• Todo nombre declarado en un alcance es visible en ese bloque y en cualquier bloque anidado dentro de él. . .

• . . . a menos que quede escondida por una declaración para el mismo nombre – un hueco en el alcance.

• Para determinar la asociación de un símbolo foo, buscamos desde el bloque que le contiene hacia los bloques exteriores hasta encontrar la declaración más cercana – nada nuevo. . .

• ¿Y los elementos predefinidos (built-in) del lenguaje?


Alcance Dinámico

• Calculado a tiempo de ejecución.

• Depende del orden de invocación de las subrutinas.

• La asociación actual para un nombre particular es la encontrada más recientemente durante la ejecución y que aún no haya sido destruida.

• El flujo de ejecución es impredecible – las asociaciones no pueden determinarse a tiempo de compilación.

• Diferir verificaciones semánticas a tiempo de ejecución. 


Resultado de imagen para informatica






















No hay comentarios:

Publicar un comentario

Alcances de la programación.

¿Qué quiere decir Alcance?   *El alcance de una asociación es la región de un programa en la cual dicha asociación está activa y visibl...