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.