Variable (programación)

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 27 de enero de 2021; las comprobaciones requieren 3 ediciones .

Una variable en programación imperativa es un área de memoria  nombrada o direccionable de otra manera cuya dirección se puede usar para acceder a los datos . Los datos contenidos en una variable (es decir, en una dirección de memoria dada) se denominan el valor de esta variable (en resumen: una variable es una pieza de memoria con nombre que tiene un cierto tipo).

En otros paradigmas de programación , por ejemplo, en funcional y lógica , el concepto de variable resulta ser algo diferente. En dichos lenguajes, una variable se define como un nombre con el que se puede asociar un valor , o incluso como una ubicación para almacenar el valor.

El alcance y/o tiempo de vida de una variable en algunos lenguajes viene dado por la clase de almacenamiento .

Clasificación

Tipificación estática y dinámica de variables

Si el tipo de datos se determina en el momento de la compilación , se produce la tipificación estática y, si es en tiempo de ejecución, la tipificación dinámica . En este último caso, a veces se dice que la variable no tiene tipo, aunque los datos contenidos en ella ciertamente pertenecen a un determinado tipo de datos , pero esto ya se aclara durante la ejecución del programa.

En la mayoría de los casos, la tipificación estática reduce la sobrecarga de ejecución del programa porque la tipificación dinámica requiere la sobrecarga de descifrar los tipos de datos y convertirlos en expresiones de tipos mixtos. La escritura estática le permite verificar los tipos en la etapa de compilación del programa. También facilita la detección de errores durante la fase de desarrollo, cuando solucionarlos es menos costoso.

Sin embargo, en muchos casos es necesario utilizar tipado dinámico. Por ejemplo, la necesidad de mantener la compatibilidad al pasar a un nuevo formato de representación de datos (por ejemplo, la parte antigua del proyecto envía la fecha al procedimiento como una cadena de caracteres y los objetos nuevos usan un tipo numérico más moderno).

Variables estáticas y dinámicas

La dirección de una ubicación de memoria con nombre también se puede determinar tanto en tiempo de compilación como en tiempo de ejecución. Las variables pueden ser estáticas o dinámicas en el momento de su creación . Los primeros se crean en el momento en que se inicia el programa o subrutina, y los segundos se crean durante la ejecución del programa.

El direccionamiento dinámico es necesario solo cuando la cantidad de datos que se almacenarán no se conoce exactamente de antemano. Dichos datos se colocan en estructuras dinámicas especiales, cuyo tipo se elige de acuerdo con los detalles de la tarea y con las capacidades del sistema de programación seleccionado. Puede ser una pila , un montón , una cola , etc. Incluso un archivo, en el sentido que N. Wirth puso en Pascal , es una estructura dinámica.

Variables locales y globales. Ámbitos

Por alcance , se distinguen variables locales y globales. Los primeros están disponibles solo para una subrutina específica, los segundos para todo el programa. Con la difusión de la programación modular y de objetos , también hubo variables compartidas (disponibles para ciertos niveles de la jerarquía de subrutinas). A veces, el alcance viene dado por la clase de almacenamiento . La visibilidad se puede restringir mediante la introducción de espacios de nombres .

La restricción de visibilidad se inventó tanto para poder usar los mismos nombres de variables (lo cual es razonable cuando las variables realizan una función similar en diferentes subprogramas) como para proteger contra errores asociados con el uso ilegal de variables (sin embargo, para esto, el programador debe poseer y utilizar la lógica adecuada al estructurar los datos).

Variables simples y complejas

Según la presencia de una estructura interna, las variables pueden ser simples o complejas (compuestas).

Los ejemplos más típicos de tipos complejos son array (todos los elementos son del mismo tipo) y record (los elementos pueden tener diferentes tipos).

Se debe enfatizar la relatividad de tal división: para diferentes programas, la misma variable puede tener una estructura diferente.

Por ejemplo, el compilador distingue 4 campos en una variable de tipo real: signos de mantisa y exponente, más sus valores, pero para un programador que compila su programa, una variable real es una única celda de memoria que almacena un número real.

Convenciones de nomenclatura de variables

Véase también

Notas

Enlaces