# La variable

- Sitio: Ikusmira — enciclopedia en castellano de ciencias sociales y humanidades
- URL canónica: https://ikusmira.org/p/la-variable/
- Categoría: Informática
- Publicado: 2025-10-02
- Autoría: Josemari Sarasola Ledesma — Editor coordinador; Profesor titular de escuela universitaria, Universidad del País Vasco/Euskal Herriko Unibertsitatea
- Perfiles del autor: https://ekoizpen-zientifikoa.ehu.eus/investigadores/127490/detalle, https://dialnet.unirioja.es/servlet/autor?codigo=333202
- Política editorial (autoría, revisión, correcciones, financiación): https://ikusmira.org/politica-editorial/

Una **variable** es un nombre atado a una caja cuyo contenido puede cambiar mientras el nombre se queda quieto. Eso es todo, y cuesta más de lo que parece, porque choca con algo aprendido en la escuela: en matemáticas, `x = x + 1` es una falsedad, una ecuación sin solución; en un programa, `total = total + 1` es una orden rutinaria que significa «saca lo que hay en la caja `total`, súmale uno y guarda el resultado en la misma caja». El signo igual no afirma que dos cosas sean lo mismo: manda mover un valor de un sitio a otro. Quien lo lee como una ecuación entiende mal cada línea que lee; quien lo lee como una orden ya sabe la mitad de lo necesario para leer programas.

La figura de esta página dibuja ese modelo de cajas. A la izquierda hay un programa pequeño, numerado línea a línea; a la derecha, la memoria: una caja rotulada por cada nombre que el programa usa, con su valor actual y, cuando algo lo sustituye, el valor anterior tachado al lado. El desplegable ofrece cuatro programas: calcular un precio con IVA, contar y sumar «a mano» repitiendo líneas, y dos maneras de intercambiar el contenido de dos cajas, una con una tercera caja auxiliar y otra ingenua que pierde un valor sin remedio. El botón «Un paso» ejecuta la línea resaltada y actualiza la memoria; «Ejecutar» encadena los pasos hasta el final (y mientras tanto se llama «Pausa»); «Reiniciar» vacía las cajas y devuelve el cursor a la primera línea. Debajo, un texto cuenta cada paso con sus números: «total pasa de 14,52 a 15,52».



Hacer esto con lápiz y papel se llama *trazar* un programa, y es el oficio básico de quien programa. Leer código no es leerlo como se lee un párrafo, de principio a fin captando la idea general; es simularlo, llevar en la cabeza el conjunto de cajas y su contenido en cada instante. Ese conjunto tiene nombre propio: el *estado*. Un programa es, visto así, una máquina de transformar estados: cada línea toma el estado anterior y produce el siguiente, y el programa entero es la cadena de todas esas transformaciones. Edsger Dijkstra construyó sobre esto una disciplina completa en *A Discipline of Programming* (1976): razonar sobre un programa es razonar sobre los estados por los que puede pasar, y la dificultad de programar consiste en que hay que preverlos todos sin ejecutar ninguno.

El tercer y el cuarto programa del desplegable muestran que las cajas no son una metáfora decorativa. Intercambiar el contenido de `a` y `b` parece trivial:

```
a = b
b = a
```

Pero la primera orden copia el valor de `b` en la caja `a` y destruye lo que había en ella; cuando llega la segunda, el valor original de `a` ya no existe en ninguna parte y ambas cajas guardan lo mismo. La solución es material: hace falta una tercera caja, `aux`, que custodie el valor de `a` mientras dura la mudanza:

```
aux = a
a = b
b = aux
```

Es el primer problema de muchos cursos de programación, y se resuelve mal exactamente en la medida en que uno no cree de verdad en las cajas.

El modelo tiene dirección y fecha. En el *First Draft of a Report on the EDVAC* (1945), John von Neumann describió una máquina cuyo programa viviría en la misma memoria que sus datos, una memoria organizada como celdas numeradas que se pueden escribir y releer: las cajas de la figura, con dirección postal incluida. Cuando Maurice Wilkes puso en marcha el EDSAC en Cambridge, en 1949, aquella arquitectura funcionó por primera vez, y el manual que publicó con Wheeler y Gill en 1951 enseñaba a programar exactamente así: moviendo valores entre celdas. La variable con nombre llegó con los lenguajes. En FORTRAN (1957), John Backus y su equipo hicieron de la asignación la frase central del lenguaje, y el nombre dejó de ser una dirección numérica para convertirse en una palabra elegida por el programador. La caja siguió siendo la misma; lo que cambió fue la etiqueta.

Queda una incomodidad deliberada en el segundo programa del desplegable. Sumar 1 + 2 + 3 exige escribir tres veces la misma línea con números distintos, y sumar hasta cien exigiría escribirla cien veces. Escribir la misma orden cinco veces seguidas es la señal de que la máquina debería repetirla ella sola, cambiando en cada vuelta lo que cambia. De eso trata el siguiente capítulo: el bucle.

## Fuentes

- John von Neumann — *First Draft of a Report on the EDVAC*, Moore School of Electrical Engineering, Universidad de Pensilvania (1945)
- Maurice V. Wilkes, David J. Wheeler y Stanley Gill — *The Preparation of Programs for an Electronic Digital Computer*, Addison-Wesley, Cambridge (Massachusetts) (1951)
- John W. Backus et al. — *The FORTRAN Automatic Coding System*, Proceedings of the Western Joint Computer Conference (1957)
- Edsger W. Dijkstra — *A Discipline of Programming*, Prentice-Hall, Englewood Cliffs (Nueva Jersey) (1976)

---

Cómo citar: Sarasola, Josemari (2025). «La variable». Ikusmira. https://ikusmira.org/p/la-variable/
Índice del sitio para modelos: https://ikusmira.org/llms.txt
