Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
à Introducción
51
Primeros tiempos software.qxp 26/05/2009 14:44 PÆgina 52
ACTA
Los primeros tiempos del software (parte I)
Añadía que eso mismo debía pasarles a los poetas, a todas ellas montadas sobre un núcleo de hardware.
los músicos o a los pintores. A él, la programación le Incluso en el centro de esa esfera, el denominado
producía ese sentimiento. nivel del procesador central, no existe una distinción
clara: chips que contienen microcódigo son capaces
En uno de mis anteriores artículos preparado para
de dirigir otros chips con el fin de realizar la mayor
los Manuales de ACTA, concretamente el titulado La
parte de las operaciones básicas del procesador. Téc-
larga vida de un lenguaje de programación, mencio-
nicamente esos códigos reciben el nombre de firmwa-
naba, entre otras cosas, que acababa de cumplirse en
re, término que por sí sugiere una distinción más bien
aquel momento el cincuentenario del diseño y crea-
borrosa.
ción del lenguaje FORTRAN con la producción de su
primer compilador (año 1957). En él se contaba su Veamos un ejemplo con el que nos encontramos
historia, el desarrollo de las distintas versiones a lo a diario. Situemos el microcódigo en un extremo, y
largo de los años y las aplicaciones hechas con ese pongamos en el otro un cajero, una máquina expen-
lenguaje. Añadiremos ahora que su utilización está dedora de billetes de un banco. Para servirse de esa
aún presente en todas las aplicaciones donde se hace máquina, el usuario presionará una serie de teclas en
necesaria la colaboración de arquitecturas de altas una secuencia determinada dando lugar con ello a
prestaciones, los supercomputadores, para resolver que el computador que gobierna esa máquina ejecu-
problemas técnico-científicos de alta gama y de cálcu- te un conjunto de operaciones complejas pero de
lo intensivo. forma correcta. Los diseñadores de tales máquinas
Volvamos al premio Draper. Fue instituido preci- tienen claro que sus usuarios no tienen por qué cono-
samente para dar a los ingenieros el prestigio y la cer nada de ordenadores, pero lo cierto es que, en
dotación económica que los Nobel conceden a los este caso, el cliente del banco lo que hace (sin saber-
científicos. En el caso que nos ocupa, fue concedido lo) es programar el computador que está detrás de la
a Backus, como hemos dicho, para reconocer el des- máquina dispensadora. El uso de estas máquinas
arrollo de un software, es decir, algo que, por defini- comparte muchos de los atributos que le son comu-
ción, no tiene esencia física, algo que no es hardwa- nes también a la programación. Por ejemplo, si el
re. Fue concedido también por algo que, en la época cliente presiona una tecla errónea en una larga suce-
del desarrollo de los primeros computadores, pocos sión de ellas, la transacción quedará totalmente inva-
pensaban que sería necesario. Pero no sólo era nece- lidada. Además, si las reglas son demasiadas, ello
sario un software, sino que en la década de los pondrá en evidencia un pobre diseño de la máquina
noventa su desarrollo y marketing sobrepasaron el y confundirá al usuario más experto. Tenemos otro
del propio hardware. Tanto es así que, en muchos ejemplo similar cuando se trata de una grabadora de
casos, se ha convertido en una utilidad barata y de vídeo casera, grabadoras que muchos usuarios
producción masiva. ¿Cómo ha emergido el software encuentran o han encontrado alguna vez dificultades
y cuál ha sido su relación con la evolución del hard- para programarlas.
ware? ¿Cuáles fueron sus etapas constructivas y su Pues bien; la esencia del software se encuentra
orientación a lo largo de los primeros años de su precisamente entre esos dos extremos aludidos. Scott
puesta en servicio? Estas son algunas de las cuestio- Kim, diseñador de ordenadores personales, decía que
nes a las que tratamos de dar contestación a lo largo no existe diferencia fundamental entre la programa-
de este escrito. ción de computadores y la utilización del propio com-
putador. El significado de sus palabras aplicado al
à
ejemplo de las capas concéntricas, indica que esas
Una definición capas son finas y continuas y se extienden desde el
microcódigo encastrado en el firmware hasta el menú
de comandos situados más al exterior, en la parte
Una definición simple del concepto software es la periférica, como ocurre en la máquina expendedora
siguiente: conjunto de instrucciones capaces de dirigir de moneda. El software está situado en algún lugar en
al ordenador para realizar una tarea específica. Con medio de las capas extremas.
esa palabra indicamos una entidad única, separada
del hardware, capaz de trabajar, sin embargo, en cola- Otros, sin embargo, no opinan así. La gente encar-
boración con él para resolver un problema concreto. gada del desarrollo de complejos sistemas de software
Hemos dicho entidad única, pero ciertamente no es comentan con frecuencia que su trabajo tiene poco
así. Un sistema de computación es como una esfera que ver con la programación de computadores que se
formada por capas sucesivas concéntricas, correspon- enseña en las escuelas. Y lo que es aún peor; esa ense-
diendo cada una de ellas a un tipo de software y ñanza, utilizando ejemplos demasiado simples, produ-
52
Primeros tiempos software.qxp 27/05/2009 10:26 PÆgina 53
Los primeros
tiempos del
software (parte I)
El ingeniero estadounidense Howard H. Aitken, como sucedió con Grace Hopper, tam-
Aitken nació en Hoboken, Nueva Jersey, el 9 bién fue oficial pero, en su caso, de la Reserva
de marzo de 1900. Sus primeros estudios supe- Naval de los Estados Unidos. Falleció el 14 de
riores los cursa en la Universidad de Wiscosin- marzo de 1973, en San Luis, Misuri.
Madison, obteniendo más tarde, en 1939, su
grado de doctor en Harvard, donde fue profesor
de Física. Fue el alma del diseño de una calcula- ce en los estudiantes la falsa sensación de que la pro-
dora electromecánica que le facilitara la solución ducción del software es mucho más simple de lo que
numérica de ciertas ecuaciones diferenciales que en realidad es. El desarrollo de un software de calidad
había encontrado durante sus investigaciones. no se reduce a la escritura de buenos programas indi-
Se la bautizó, en principio, con el nombre de viduales. Consiste en escribir un conjunto de progra-
Automatic Sequence Controlled Calculator- mas capaces de interactuar entre ellos y con todos en
ASCC, conocida más tarde como Harvard Mark I. su conjunto, dando lugar a un sistema complejo que
Para su construcción se basó en la máquina de funcione. De eso se ocupa precisamente la ingeniería
Babbage y en la utilización de tarjetas perfora- del software: diseñar, producir y sintonizar.
das. El proyecto de la máquina finalizó en 1944
cuando se contó con la ayuda financiera de IBM La historia del software no debería tratarse de
y la colaboración como programadora de Grace forma separada de la historia del hardware. Muchos
Hopper. Aunque los primeros trabajos se habían ejemplos demuestran que se han dado innovaciones
llevado a cabo con fondos de la Universidad de en el software que han tenido poco o ningún impac-
Harvard, se hicieron necesarias otras subvencio- to hasta que no han podido combinarse con las
nes para acabar el proyecto y éstas fueron efec- correspondientes innovaciones del hardware habidas
tivas cuando Aitken entró en contacto con Tho- en el tiempo. De la misma forma, el comentario tan-
mas Watson, presidente de IBM, y éste aceptó la tas veces repetido de que el progreso del hardware
financiación. Aitken aprovechó la experiencia de medido, por ejemplo, por el número de circuitos con-
expertos de IBM trabajando, en particular, con tenidos en un chip de silicio deja muy atrás el progre-
tres de sus más importantes ingenieros: Durface, so del software, probablemente es falsa. Por supuesto
Hamilton y Lake. debe reconocerse que la tecnología del hardware
En enero de 1943 el proyecto de Aitken se tiene que superar en ocasiones los propios límites de
hace realidad. La máquina electromecánica se la física, límites que contribuyen a que el diseño en
había terminado de construir en los laboratorios esa tecnología sea con frecuencia muy complejo.
que IBM tenía en Endicott, donde se hicieron las
primeras pruebas de funcionamiento. Pasó luego
a Harvard, dándose a conocer en 1944. Fue la Algunos conceptos relacionados
primera calculadora terminada, fiable y operati- con el software
va. Sus dimensiones eran extraordinarias: 15 Software. Conjunto de programas que un
metros de largo y 2,5 de ancho; su peso era de computador necesita y utiliza para realizar su tra-
unas 5 toneladas. Empleaba relés electromecáni- bajo. Es un término genérico con el que se indican
cos. Su rendimiento: sumas en menos de un los componentes intangibles, no físicos, de un sis-
segundo, 6 segundos para la multiplicación y 12 tema de computación. Se refiere, por tanto, a los
para la división. programas ejecutados por el computador a dife-
Aitken continuó trabajando en el diseño de rencia de los componentes físicos del mismo. Es
máquinas más avanzadas que la Mark I. Siguieron necesario hacer una distinción entre el software de
la Harvard Mark II, la Mark III y la Mark IV, calcu- sistemas y el software de aplicaciones.
ladora, esta última, ya completamente electrónica Software de sistemas. También conocido
y con una memoria de núcleos de ferrita. como software del sistema, es un tipo de software
Aitken fue galardonado en 1970 con la Meda- ligado al hardware para proporcionar así un siste-
lla Edison que concede la IEEE por una meritoria ma de computación total y efectivo, dando lugar de
carrera de contribuciones pioneras al desarrollo y esa manera a un sistema aceptable y funcional
aplicación de los computadores digitales, así como para el usuario final. Normalmente es suministrado
por su contribución a la enseñanza y formación en por el propio fabricante del computador. En este
ese mismo campo. tipo de software se incluyen el sistema operativo,
53
Primeros tiempos software.qxp 26/05/2009 14:44 PÆgina 54
ACTA
Los primeros tiempos del software (parte I)
los compiladores, los intérpretes, programas de Ensamblador. Programa traductor que toma
servicio, programas de gestión de ficheros, etc. un programa fuente escrito en lenguaje ensambla-
Software de aplicaciones. También conoci- dor y produce un programa objeto en lenguaje de
do como programas de aplicación. Se refiere a un máquina. Un lenguaje ensamblador es un lengua-
software específico con el que se lleva a cabo una je de bajo nivel cuyas sentencias son similares, en
tarea determinada dentro de una organización forma, a las instrucciones del ordenador. La dife-
dada. Por ejemplo, el programa de nómina, el de rencia es que el lenguaje ensamblador emplea
gestión de cuentas corrientes, el de diseño de mnemónicos para indicar los códigos de opera-
carreteras, etc. Con este software se lleva a cabo ción, para las direcciones donde se ubican datos y
un trabajo para un usuario concreto y se escribe resultados, etc., en lugar de números en binario
específicamente para él. que son los utilizados por el propio lenguaje de la
máquina. Dado que cada ordenador tiene su pro-
Ingeniería del software. Conjunto de activi- pio código de máquina dependiente de su hard-
dades encaminadas al diseño, desarrollo, puesta a ware, los lenguajes ensambladores son diferentes
punto y verificación del software. Se incluyen en de una máquina a otra de marca diferente, incluso
esta tarea general los requerimientos del usuario y entre modelos de una misma marca.
del propio software, el diseño detallado de la
arquitectura del producto, el desarrollo de progra- Lenguaje de bajo nivel. Lenguaje cercano a
mas empleando, por ejemplo, técnicas de progra- la máquina. Dispone de un conjunto de instruccio-
mación estructurada, la validación del producto, el nes fuente idéntico al que posee el computador y
análisis de rendimientos, etc. Todo ello encamina- que, por tanto, éste es capaz de ejecutar directa-
do a producir programas eficientes y confiables. mente.
Programa. Conjunto de instrucciones y de Intérprete. Programa particular del software
datos que utilizan esas instrucciones y que el orde- del sistema que traduce un programa de aplica-
nador se encarga de ejecutar secuencialmente ción escrito en un lenguaje de alto nivel capaz de
para llevar a cabo una determinada tarea. Para ser interpretado, como APL o algunos Basic, a
poder ejecutar un programa éste tiene que alma- código de máquina. La diferencia con un compila-
cenarse previamente en la memoria principal del dor es que el intérprete traduce (interpreta) cada
computador. sentencia y luego la ejecuta procediendo así hasta
alcanzar el final del programa.
Instrucción. Elemento básico de un progra-
ma de ordenador que especifica, entre otras cosas,
à
la operación a realizar, dónde se encuentran los
datos con los que operar y dónde se almacenará el
resultado de la operación. Los comienzos (1944-1951)
Sentencia. Unidad básica de un programa de
ordenador escrito mediante un lenguaje fuente Para poder programar la máquina electromecáni-
como Fortran, PL/1, COBOL, etc. Una sentencia ca Harvard Mark I, los usuarios perforaban, por cada
se compone de palabras clave, constantes, opera- instrucción, una serie de orificios alineados (hasta 24
dores simbólicos y nombres de variables. Una sen- por línea) sobre una cinta de papel. En el verano de
tencia da lugar a varias instrucciones de máquina 1944, año en que la máquina fue dada a conocer
cuando es compilada. públicamente, la Marina de los Estados Unidos orde-
nó a Grace Murray Hopper, que era una oficial de la
Compilador. Programa particular del softwa- Navy trabajando en el Computation Lab, Laboratorio
re del sistema que traduce un programa de aplica- de Computación, ayudar a Howard Aitken en la pro-
ción escrito en un lenguaje de alto nivel, como C gramación del Mark I. Grace había sido profesora de
o Fortran, a código de máquina. Por eso se dice matemáticas en el Vassar College y decidió abando-
que los lenguajes de alto nivel se compilan com- nar ese empleo para trasladarse a la escuela de guar-
pletos antes de ejecutarlos. El usuario escribe un diamarinas Midshipmen School, donde quedó matri-
programa fuente en un cierto lenguaje y el compi- culada. Grace tenía ya varios galones en la
lador produce un programa objeto en lenguaje de bocamanga de su uniforme cuando se vio por vez pri-
máquina como resultado de la compilación. Sólo mera con Aitken y contaba así el encuentro: Aitken
el programa objeto es ejecutable. me mostró, blandiéndolo en su mano, un objeto
ancho con tres cintas y me dijo: esto es una compu-
54
Primeros tiempos software.qxp 26/05/2009 14:44 PÆgina 55
Los primeros
tiempos del
software (parte I)
tadora. Yo dije, sí, señor. ¿Qué otra cosa podía tecleadas en un gran tablero a modo de máquina de
decir? Me añadió que le gustaría que yo calculara los escribir y empleando una notación matemática ordi-
coeficientes de la serie del arco tangente para el jue- naria, siendo después traducidas a un código numé-
ves siguiente. De nuevo, ¿qué podría contestarle? Sí, rico que el Mark III ya era capaz de ejecutar. Esos
señor. No sabía realmente lo que estaba pasando pero códigos se grababan en una cinta magnética, se leían
así fue mi encuentro con Howard Hathaway Aitken. a continuación por la computadora y después se eje-
cutaban. Añadir que las secuencias utilizadas con más
frecuencia se almacenaban en un tambor magnético
para no tener que repetirlas. Es la misma idea que
tuvo Konrad Zuse en Alemania empleando cintas de
papel para introducir la secuencia de comandos en su
máquina Z4.
55
Primeros tiempos software.qxp 26/05/2009 14:44 PÆgina 56
ACTA
Los primeros tiempos del software (parte I)
à
biblioteca. Entonces, y siguiendo la definición de
Grace, el modo como trabajaba un compilador era el
Los compiladores UNIVAC (1952) de un programa que copiaba el código contenido en
una subrutina en el lugar adecuado de un programa
Decimos compilar para traducir el verbo inglés to principal, exactamente donde el programador sabía
compile. Uno de los primeros significados que encon- que tenía que estar. Esas subrutinas tenían un alcance
tramos para esta palabra es: reunir información prove- limitado y solían estar restringidas a cálculos clásicos
niente de lugares distintos y colocarla en un libro, en un como el del seno, el coseno, logaritmos y, sobre todo,
informe o en una lista; poner todo junto (Cambridge, a operaciones aritméticas en coma flotante de cantida-
International Dictionary of English). Pero ¿de dónde des expresadas en lo que hoy conocemos como nota-
hemos heredado la palabra compilar y cuándo la ción científica. No obstante, los compiladores eran pie-
empleamos en cuestiones informáticas? Tal como zas de software muy complejas. Copiar una rutina
hemos dicho más arriba, las secuencias de código se como, por ejemplo, la del cálculo del seno de un argu-
perforaban, primero en cintas de papel, luego en blo- mento, requería especificar la localización del valor de
ques de fichas de cartulina. De esa manera, un progra- ese argumento, así como la localización donde debe-
ma podía prepararse seleccionando los bloques de ría estar ubicado el resultado del cálculo, lugar que era
fichas apropiados en los que se habían escrito, perfora- diferente para cada ejecución del programa principal
do, los códigos provisionales, los códigos de transición que se sirviera de tal subrutina. Por todo lo dicho,
(el programa fuente). Luego se agrupaba el resultado resulta inapropiado utilizar, como se hace alguna vez,
en un nuevo bloque de fichas. Esa actividad recibió el la palabra ensamblar en lugar de compilar, para signi-
nombre de compilar. A principios de los cincuenta, los ficar la construcción de un programa a base de blo-
usuarios de ordenadores desarrollaron programas que ques de subrutinas. La compilación integraba subruti-
aligeraron al computador en estas tareas, y esos pro- nas en un flujo continuo de instrucciones.
gramas recibieron el nombre de compiladores: había Como se ha dicho, Grace era oficial de la Marina,
nacido el software de sistemas. Precisamente, fue dedicándose a la computación en ese cuerpo; pero en
Grace Hopper quien jugó un papel crucial, no sólo en cierto momento fue persuadida por Jonh Mauchly
el desarrollo de esos compiladores, sino también en la para que dejara su empleo y colaborara con él en su
transmisión del concepto desde el laboratorio de la trabajo de programación de la nueva máquina UNI-
Universidad de Harvard al mundo comercial. VAC, Universal Automatic Computer, que se estaba
El término compilador fue definido por Hopper construyendo en aquel entonces. Grace Hopper
como una rutina constructora de programas capaz de aceptó, pero sus sentimientos de fuerte vinculación
generar un programa determinado con el objeto de con la Marina (su bisabuelo también había perteneci-
resolver un problema específico. Hoy día recibe el do al mismo cuerpo) le hicieron regresar pronto, lle-
nombre de compilador aquel programa que traduce gando a alcanzar el grado de contralmirante cuando
las instrucciones escritas en un lenguaje familiar para llegó su retiro definitivo.
el usuario de ordenadores a un código binario que el Hopper dio el nombre de programación automá-
computador puede ejecutar posteriormente. Evidente- tica (automatic programming) a la actividad de dise-
mente este concepto no coincide con el que tenía ñar y utilizar los compiladores. Produjo el compilador
Hopper. Para ella, como se ha dicho, un compilador A-0 para el UNIVAC en 1952 y más tarde, en 1953,
tomaba y utilizaba subrutinas almacenadas en una el A-1 y el A-2. Volveremos a referirnos a ella.
56
Primeros tiempos software.qxp 26/05/2009 14:44 PÆgina 57
Los primeros
tiempos del
software (parte I)
à El sistema Whirlwind de
Laning y Zierler (1954)
à Ensambladores
57
Primeros tiempos software.qxp 26/05/2009 14:44 PÆgina 58
ACTA
Los primeros tiempos del software (parte I)
Tabuladora IBM-407.
Esquema en papel mostrando el panel cableado
de una tabuladora de IBM.
Es importante mencionar aquí que un grupo de
usuarios de máquinas IBM en Estados Unidos,
SHARE, grupo del que hablaremos a continuación, IBM, que había comenzado el patrocinio de los
fue quien se encargó de diseñar y desarrollar un usuarios de sus equipos de tabulación, las tabulado-
58
Primeros tiempos software.qxp 26/05/2009 14:44 PÆgina 59
Los primeros
tiempos del
software (parte I)
ras de programa cableado en un panel, amplió ese datos denominados ficheros. Estos ficheros estaban
soporte, y aún sigue haciéndolo, al grupo SHARE, formados por registros almacenados secuencialmente
que adquiría otro tipo de máquinas, sus computado- en memorias externas, normalmente en carretes de
res de programa almacenado. Sin duda alguna, la cintas magnéticas, que ofrecían grandes ventajas fren-
creación del grupo fue una verdadera bendición para te a la utilización común de las tarjetas perforadas,
IBM; en el grupo estaban todos los usuarios de los aunque la técnica de almacenamiento fuera la
grandes ordenadores de aquel entonces. En un solo misma: registro tras registro en secuencia. Pero para
año, la asociación llegó a tener 62 miembros y se con- utilizar esos datos era necesario clasificarlos primero
sidera que la propia asociación ayudó a IBM a ven- en un cierto orden, alfabético, numérico, ascendente,
der su ordenador 704. SHARE influía, y mucho, con descendente. Con ello, y después de esa operación,
su opinión en las estrategias y futuras direcciones de era sencillo encontrar un dato concreto en un fichero.
IBM. De modo que SHARE se sentaba a la mesa La clasificación de datos, ya fuera numérica o alfabé-
con IBM para ayudar a tomar decisiones sobre los tica, dominó la computación, sobre todo la de tipo
futuros programas de producción, tanto de software comercial, desde los primeros años. En 1973 se esti-
como de hardware. mó que ocupaba un 25% del tiempo total del ordena-
dor. Se daba con frecuencia la situación de tener que
Mucho más tarde, y a imitación de SHARE, nacie- clasificar un gran fichero sólo para encontrar un par
ron otras asociaciones de usuarios. La de minis de de registros en el mismo, lo que suponía un alto coste
Digital Equipment se llamó DECUS y en Europa, de tiempo del ordenador. Los analistas de sistemas
COMMON, reúne a los usuarios de minis de IBM. trataron de minimizar este tipo de situaciones, aun-
Pero volviendo a SHARE, hemos de señalar la que no pudieron evitarlo completamente.
aparición que de la misma se produjo en otros conti-
La programación tenía que sincronizarse con la
nentes. En lo referente a Europa, hemos vivido su his-
propia clasificación, ya que las tareas comunes en una
toria y su actuación desde el año 1962, primero como
compañía consistían en un proceso de los datos, una
usuario de IBM y más tarde desde el mismo seno de
actualización de los ficheros y en la impresión de los
la compañía. En Europa agrupaba a los usuarios téc-
correspondientes informes de salida. Y entre las ope-
nico-científicos, universidades, laboratorios de inves-
raciones de proceso estaban embebidas las operacio-
tigación, desarrollo y producción. A la sombra de
nes de clasificación de registros y de resultados impre-
SHARE apareció en Europa otra asociación: GUIDE.
sos de acuerdo con una determinada clave, tareas que
Agrupaba a usuarios de otro tipo: los de los grandes
se llevaban a cabo mediante programas de clasifica-
centros de cálculo de empresas de gestión, comercia-
ción ad hoc. Los resultados en papel se encuaderna-
les y entidades financieras. Ambas asociaciones se
ban y, a partir de esos legajos, era posible tener acce-
fundieron en una sola en 1995, mediante un acuerdo
so a los datos corporativos de la empresa. Por
firmado entre los presidentes de SHARE y GUIDE, en
ejemplo, si un cliente de una compañía de seguros
Viena, con el reconocimiento de IBM. La fusión pasó
deseaba conocer el estado de su póliza, el empleado
a denominarse GSE, GUIDE SHARE EUROPE, aso-
de esa compañía entraba en el listado correspondien-
ciación que, con más de 4.000 asociados actualmen-
te clasificado por número de cliente, y accedía así a la
te, aún permanece y que se ha establecido en casi
información del peticionario. Todo esto nos indica que
todos los países de Europa donde IBM tiene merca-
la clasificación e intercalación de unos registros con
do. GSE mantiene estrechas relaciones e intercam-
otros dentro de un mismo fichero se presentó en los
bios con SHARE de Estados Unidos. Finalizar dicien-
principios del procesamiento como algo inevitable y
do que nos sentimos muy honrados al haber sido
dominante. Sólo cuando aparecieron en el mercado
elegido para presidir actualmente las Regiones de
los discos magnéticos como memoria externa del
España y Portugal en el seno de GSE.
computador, los tiempos de búsqueda en ficheros se
à
acortaron drásticamente, ya que con este soporte de
hardware, la búsqueda de un registro podía hacerse al
La clasificación e azar, es decir, de forma directa sin tener que recorrer
intercalación de datos todo el fichero hasta llegar al registro requerido.
Cuando los métodos de acceso al disco fueron
Las primeras instalaciones, tanto comerciales madurando, la clasificación fue perdiendo protago-
como científicas, tuvieron que enfrentarse a una tarea nismo, aunque realmente esta operación no desapa-
que era muy común y que estaba íntimamente ligada reció hasta bien llegado el final de la década de los
al hardware, como era el manejo de conjuntos de sesenta.
59
Primeros tiempos software.qxp 26/05/2009 14:44 PÆgina 60
ACTA
Los primeros tiempos del software (parte I)
à
registros, llevarlo a la memoria, clasificarlo interna-
mente y volver a grabar en la cinta el bloque ya clasi-
ficado y así sucesivamente con el resto de los bloques La aparición de
de la cinta magnética. dos lenguajes clave
Para poder realizar las operaciones anteriores era
necesario utilizar simultáneamente dos carretes de El uso de la palabra inglesa language podría resul-
cintas que eran leídas hacía adelante y hacia atrás. tar arriesgado en informática ya que implica mucho
60
Primeros tiempos software.qxp 26/05/2009 14:44 PÆgina 61
Los primeros
tiempos del
software (parte I)
Fortran, escrito con minúsculas como se hace ya ¿Cuáles fueron las razones del éxito de este lengua-
en la actualidad, causó un gran éxito en la comuni- je? En primer lugar, su adaptación al lenguaje natural de
dad de usuarios de IBM desde su comienzo y tal len- las matemáticas constituía una sintonía casi perfecta,
guaje, que aún hoy día se mantiene vivo y es amplia- con la utilización casi de los mismos símbolos de opera-
mente utilizado, como se ha dicho, sobre todo en el ción y la posibilidad del empleo de exponentes y subín-
procesamiento paralelo y en la supercomputación, ha dices. Los científicos y los ingenieros lo encontraron
sido a lo largo de los años modificado, ampliado y totalmente familiar. En segundo lugar, IBM tuvo el acier-
estandarizado en todas las sucesivas versiones que to de editar unos manuales muy concisos, claros y de
han ido apareciendo. fácil comprensión destinados a aprender el lenguaje y
61
Primeros tiempos software.qxp 26/05/2009 14:44 PÆgina 62
ACTA
Los primeros tiempos del software (parte I)
producir con él los primeros programas. El sistema para aplicaciones comerciales, tales como el B-0,
FORTRAN (lenguaje fuente y compilador) era un siste- también conocido con los nombres de MATH-MATIC
ma mucho más rápido que el desarrollado por Laning o FLOW-MATIC. Así mismo tuvo su influencia en el
y Zierler: se escribían los programas fuente en pocas COBOL un proyecto de IBM llamado Comercial
horas y éstos producían unos programas de máquina Translator. La compañía Honeywell también desarro-
que se ejecutaban en menos tiempo. Por supuesto que lló otro lenguaje comercial, FACT, que en muchos
la eficiencia de los códigos objeto era muy sobresalien- aspectos superaba al COBOL, pero no logró el reco-
te y superaba a los códigos máquina escritos por pro- nocimiento del gobierno americano.
gramadores directamente en ese lenguaje a nivel de A Grace Hopper se debe la idea de que en COBOL
máquina. Backus y su equipo dotaron al lenguaje con se pudieran manejar nombres con gran número de
el uso de la aritmética de coma flotante de una forma caracteres como se hace en un lenguaje natural. Por
rápida y eficiente. Este tipo de aritmética es vital para ejemplo, en Fortran se escribe la sentencia,
las aplicaciones tanto técnicas como científicas. Por últi-
mo, y esto ha sido criticado siempre por muchos pro- IF A > B
gramadores de alto nivel (pero desconocedores de la para comparar dos variables y tomar la correspon-
ingeniería y sus aplicaciones), el sistema Fortran escon- diente decisión según el resultado de la comparación;
día para el usuario los detalles más internos del hardwa- en COBOL podía hacerse mediante la sentencia
re de la máquina, lo cual era algo superfluo para ese equivalente así:
tipo de usuarios, interesados sobre todo, y sólo, en pro-
ducir aplicaciones de forma sencilla y rápida, es decir, IF HORAS-EMPLEADO IS
en concentrarse en la solución de su propio problema. GREATER THAN MAXIMO
IBM, que ha sido líder del mercado de los ordena- Este tipo de sintaxis parecía darle a COBOL la
dores, también tuvo una posición dominante con el posibilidad de convertirse en un lenguaje autodocu-
éxito de este lenguaje. Todas las demás marcas anun- mentado. Bastaba con leer sus sentencias para com-
ciaron y pusieron a disposición de sus usuarios el sis- prender el significado y la finalidad de la aplicación
tema Fortran. total. La realidad es bastante diferente. Ni los creado-
res de un programa son capaces, con el paso de los
El éxito del lenguaje Fortran ocurrió paralelo al años, de recordar y saber con certeza el significado de
desarrollo y aparición en el mundo comercial y de ges- lo que escribieron.
tión del COBOL, Common Business Oriented Lan-
guaje, desarrollado pocos años más tarde y nacido, Lo mismo que ha pasado con Fortran, también
como ya hemos dicho, en el Departamento de Defen- COBOL ha sobrevivido a las distintas generaciones
sa, que en mayo de 1959 formó un comité para estu- de ordenadores y ha llegado hasta nuestros días.
diar la posibilidad de desarrollar un lenguaje de pro- Hemos arribado así hasta la década de los sesen-
gramación común para los negocios. El esfuerzo se ta después de recorrer los hitos del software desde sus
concentró en la producción de las especificaciones de primeros tiempos. Enlazaremos en una próxima oca-
tal lenguaje, que aparecieron al final del mismo año. sión con los hechos históricos descritos y los extende-
Hechas públicas las bases, varios fabricantes procedie- remos en el tiempo más allá de 1960.
ron a escribir compiladores para sus propios modelos
à
de máquinas. Al año siguiente, 1960, el gobierno de
los Estados Unidos anunció que todos los ordenado-
res deberían poder procesar aplicaciones escritas en
Referencias
COBOL. Ello llevó a ese lenguaje a ser estandarizado
de tal forma que una aplicación escrita en COBOL The Programming Language Landscape, Henry
podía, sin cambios, ser ejecutada en cualquier máqui- Ledgard y Michael Marcotty, SRA Inc, 1981.
na, cualquiera que fuese su proveedor. La cuestión de A History of Modern Computing, P. E. Ceruzzi, The
si COBOL es un lenguaje bien diseñado y lo suficien- MIT Press, 2003.
temente potente para su campo de aplicaciones, es un
debate que ha llegado hasta nuestros días. Fortran Forum, ACM Press, SIGPLAN.
62