Segundo semestre



VARIABLE GLOBAL


Una variable global es, en informática, una variable accesible en todos los ámbitos de un programa informático. Los mecanismos de interacción con variables globales se denominan mecanismos de entorno global. El concepto de entorno global contrasta con el de entorno local donde todas las variables son locales sin memoria compartida (y por ello todas las iteraciones pueden restringirse al intercambio de mensajes).

El uso de este tipo de variables suele considerarse como una mala práctica, por el riesgo que conlleva esa deslocalización: una variable global puede ser modificada en cualquier parte del programa (a menos que resida en una sección de memoria protegida) y cualquier parte del programa depende de ella. Es por ello que una variable global tiene un potencial ilimitado para crear dependencias, factor éste que aumenta la complejidad. Sin embargo, en algunas ocasiones, las variables globales resultan muy útiles. Por ejemplo, se pueden usar para evitar tener que pasar variables usadas muy frecuentemente de forma continua entre diferentes subrutinas.



VARIABLE LOCAL


Una variable local es, en informática, la variable a la que se le otorga un ámbito local. Tales variables sólo pueden accederse desde la función o bloque de instrucciones en donde se declaran. Las variables locales se contraponen a las variables globales.

En la mayoría de lenguajes de programación las variables locales son variables automáticas almacenadas directamente en la pila de llamadas. Esto significa que cuando una función recursiva se llama a sí misma, las variables locales reciben, en cada instancia de la función, espacio para el direccionamiento de memoria separados. De esta forma las variables con este ámbito se pueden declarar, reescribir y leer sin riesgo de efectos secundarios para los procesos fuera del bloque en el que son declarados.

Los lenguajes de programación que se sirven de la semántica llamada por valor semantics proven una subrutina llamada con su propia copia local de los argumentos que se pasan. En la mayoría de lenguajes, a estos parámetros locales se les trata igual que otras variables locales dentro de la subrutina. Por otro lado las semánticas llamada por referencia y llamada por nombre permiten que los parámetros actuen como alias de los argumentos que se pasan, permitiendo a la subrutina modificar variables al margen de su ámbito.

Algunos expertos abogan por limitarse al uso de variables locales para evitar efectos laterales en el resto del software motivados por un cambio en un módulo en particular.