| Artículos | 01 SEP 1998

Historia del cálculo asistido (II)

Tags: Histórico
Eloy Anguiano.

El mes anterior vimos como las necesidades de cálculo de los científicos y de los economistas crearon la necesidad de calcular de forma fiable y rápida . También vimos un poco el cómo se habían desarrollado las primeras máquinas mecánicas de calcular . En el siglo XX, estas máquinas se vieron mejoradas introduciendo elementos eléctricos en su maquinaria, simplificándola y aumentando la fiabilidad y rapidez de ejecución .

Sin embargo, estas primeras máquinas calculadoras eran sólo eso, calculadoras . Estaban limitadas en sí mismas, su función no era la de encadenar cálculos . Sólo eran capaces de realizar cálculos simples con una serie de datos de entrada y de dar un resultado . Esto exigía que los científicos anotasen los resultados intermedios, para volverlos a introducir en la operación siguiente en la que interviniese ese resultado parcial . Evidentemente, la tarea era lenta y tediosa y forzaba a un control humano a lo largo de toda la serie de operaciones que se deseasen encadenar .

Los primeros instrumentos que responden a la secuencialidad de instrucciones prefijadas de antemano son los autómatas mecánicos secuenciales . Las primeras aportaciones de cierta consideración a este campo son atribuibles a los árabes y sobre todo a un tratado de mecánica del persa Al Jazzari .

Durante muchos años, los avances en este sentido fueron muy limitados y restringidos . Todos los autómatas construidos en los siglos que siguieron hasta el XVIII no fueron más que instrumentos mecánicos de ejecución cíclica y no programable . Con cíclica me refiero a que, una vez terminada la serie de instrucciones, volvía a ejecutar la inicial de tal forma que el movimiento se volvía a repetir . Además, eran no programables porque la mecánica se desarrollaba específicamente para que el autómata realizase unos determinados movimientos y era imposible reprogramarlo sin cambiar toda la maquinaria .

Los primeros autómatas programables nacieron de una necesidad bien distinta a la de los científicos y economistas . Los primeros fueron los telares . Como puede comprobar, amigo lector, la historia de la informática se nutre de las más diversas fuentes y está fuertemente interrelacionada con el desarrollo preindustrial e industrial de los siglos XVIII y XIX .

El primer resultado concreto lo obtuvo el francés B . Bouchon en 1725 . Los telares de Bouchon recibían las instrucciones de tejido por medio de cintas de papel perforado . Para que el lector pueda imaginarse como funciona basta con decirle que el organillo nació pocos años después y que el principio de funcionamiento era muy similar pero este último tenía protuberancias en lugar de perforaciones . Evidentemente bastaba con cambiar una cinta de papel para cambiar el movimiento del telar y con ello y, por primera vez en la historia, el ?programa? que controlaba el movimiento de la máquina . Sucesivos desarrollos mejoraron estos telares en cuanto a fiabilidad y velocidad pero no creo que sea muy interesante verlos en este reducido espacio . Lo realmente importante y sorprendente es que en pleno siglo XVIII existiesen ya máquinas que pueden ser consideradas como programables con el sentido actual de esta palabra .

Entre 1834 y 1836 C . Babbage desarrolló de forma teórica un sistema de codificación en tarjetas perforadas que permitía la ejecución de cualquier secuencia de operaciones aritméticas o algebraicas con una capacidad de mil registros de cien cifras . Además la secuencia era regulable de acuerdo con saltos y evaluaciones condicionales como más adelante veremos . Aquí entra para mi una de las mujeres mas sorprendentes de su siglo, Ada Augusta Byron, hija de lord Byron y condesa de Lovelace . Ada sentó buena parte de las bases de la lógica de programación moderna y llegó a determinar buena parte de los problemas epistemológicos que supondrían las máquinas programables . Actualmente un lenguaje de programación lleva su nombre haciéndole el honor que merece: el lenguaje ADA . Como curiosidad de los problemas con los que se encontró esa mujer por motivo de su sexo es interesante leer el artículo suyo que presentó en la bibliografía y que, siendo científico, firmó con seudónimo .

La máquina de Babbage disponía de todos los elementos básicos para ser considerada como un verdadero ordenador . En primer lugar, y como era de esperar disponía de dispositivos de entrada y salida . También disponía de un elemento capaz de controlar el orden de procesamiento de los números y su transferencia entre dispositivos, lo que hoy en día denominamos unidad de control . Disponía de lo que Babbage denominó un ?almacén? y que hoy denominamos memoria . Este elemento permitía almacenar números para ser posteriormente procesados . Por último, disponía también de lo que él dio en llamar un ?molino? . El ?molino? era la parte del sistema encargada de procesar los números según las reglas programadas . Este elemento era lo que denominamos unidad aritmético-lógica .

La máquina de Babbage era simplemente un constructo ideológico pero junto con las contribuciones de Ada Byron constituyeron las bases de la arquitectura y la lógica de los ordenadores modernos .

Si hubiese que elegir a alguien como inventor del ordenador yo elegiría a Babbage y a Ada Byron como cooperadora necesaria . Es decir, la revolución de finales del siglo XX, la revolución informática, empezó a gestarse de forma real y tal y como hoy la entendemos a principios del siglo XIX . ¡ Hace más de ciento cincuenta años ! .

Pero lo mas sorprendente es que Babbage es capaz de determinar un proceso que permitiría la evaluación condicional y otro el salto de instrucciones . Con un proceso de evaluación condicional y otro de transferencia de flujo se pueden implementar todas la estructuras básicas de programación que conocemos como los bucles, las subrutinas o los flujos condicionales . Pero veamos cual es ese mecanismo y en qué propiedad matemática se basa .

La propiedad es muy sencilla, es simplemente la propiedad de acarreo en la resta . Supongamos que tenemos numeros de 10 dígitos representando a los números 43 y 57, para saber si uno es mayor que el otro basta con restar 0000000057 a 0000000043, el resultado será 9999999986 y habrá un desbordamiento de resta . Si utilizamos este desbordamiento para mover una palanca, la posición de éstapuede determinar que se ejecute una instrucción u otra . Si ésta es una instrucción de salto, tendremos un control condicional de flujo del programa y por tanto la estructura básica de programación no lineal .

Babbage por su parte había determinado básicamente los elementos de control de flujo pero los su aplicación era un poco rudimentaria . Por su parte, Ada propuso y solucionó el problema del cálculo de los números de Bernoulli a partir de la fórmula de recurrencia en la que dado Bn-1 y n se puede calcular Bn . De esta forma, el cálculo de un determinado número de Bernoulli supondría la llamada a una determinada subrutina n+1 veces ( la última para que la comparación diese el cambio de signo ) sin necesidad de repetir las instrucciones n veces en el programa .

Las estructuras de programación estaban servidas: bucles, saltos, condicionales, subrutinas . . . , todos los elementos básicos que conforman la programación . Pero lo más sorprendente es que de esto hace mas de 150 años y sin máquinas apropiadas para realizar esos procesos . Eran simples constructos teóricos .

En próximos artículos presentaré un poco cómo se han ido desarrollando los instrumentos para llevar a cabo las ideas que, en su momento, no eran más que teorías incomprobables pero que han revolucionado el mundo en los años en los que estas ideas se han hecho realidad .

Bibliografía

- L . F . Menabrea ( realmete A . A . Byron ) . " Sketch of the Analytical E

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información