Sei sulla pagina 1di 12

Primeros tiempos software.

qxp 26/05/2009 14:44 PÆgina 51

AUTORES CIENTÍFICO-TÉCNICOS Y ACADÉMICOS

Los primeros tiempos


del software (parte I)
Prof. Doctor Félix García Merayo
Vicepresidente de ACTA

No hay atajo sin trabajo


Refrán

à Introducción

E n 1993 la National Academy of Engineering, Academia Nacional de


Ingeniería, concedió su premio Charles Stark Draper a John Backus.
¿Cuáles eran sus méritos para merecer tan apreciado galardón? Fue sin
duda su intervención en el desarrollo del lenguaje FORTRAN, primer len-
guaje de ordenador de alto nivel y de propósito general. La decisión de la
Academia fue aplaudida por la mayor parte de los profesionales de la com-
putación, muchos de los cuales sabían bien de la contribución que Backus
y su lenguaje FORTRAN habían tenido en el desarrollo de su propia pro-
fesión. Fortran (actualmente ya no se escribe con letras mayúsculas), aun-
que en uso hoy día, ha sido superado por otros lenguajes como C++,
Visual Basic o por sistemas de software como UNIX, AIX o Windows, que
reflejan mejor los cambios habidos en el hardware en general o en el entor-
no de los ordenadores personales y las estaciones de trabajo. Al aceptar el
premio, Backus reconoció que el lenguaje había sido el resultado de un tra-
bajo en equipo. Estos fueron sus colaboradores, todos como él trabajando
en aquel momento para la compañía IBM: Ziller, Herrick, Beeber, Sheldon
Best, Goldberg, Mitchell, Nelson Sayre, Sheridan y Stern. También Hug-
hes, del Libermore Lab, y Nutt, de la United Aircraft Corporation.

Donald Knuth fue considerado por muchos como el programador


más grande del mundo, The World’s Greatest Programmer. Alguna
vez dijo que siempre se levantaba por las mañanas con una idea
nueva que le capacitaba para añadir un par de líneas más a su pro-
grama del día anterior, lo que le proporcionaba una gran satisfacció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.

Harvard Mark I/IBM ASCC.

Este relato marca el comienzo de la programación


de computadores en los Estados Unidos. Grace escri-
bió la secuencia de códigos para la serie pedida y más
tarde también para expresiones matemáticas mucho
más complicadas, entre ellas, formulaciones físicas
para el diseño de lentes.
Las secuencias de código que se empleaban con
gran frecuencia acabaron siendo cableadas dentro de Grace Murray Hopper.
los circuitos del Mark I, aunque ello no presentaba
demasiada flexibilidad. Pero no debemos olvidar que Ninguna de las dos máquinas citadas eran capa-
ese computador no tenía el programa almacenado, ces de almacenar los programas en su memoria inter-
por lo que Grace tuvo necesariamente que desarrollar na, elemento que hoy conocemos como memoria
otras secuencias de instrucciones de menos uso en principal; pero de estos diseños primitivos nació la
sendas cintas de papel. Muy pronto se dio cuenta de idea de conseguir una computadora capaz de alma-
que de existir una manera de reutilizar las cintas ya cenar ella misma los programas y los datos con los
codificadas para otro problema, se ahorrarían que debían ejecutarse esos programas. Se estaba
muchas horas de trabajo. Eso no lo permitía la apuntando a la máquina de programa almacenado.
máquina en cuestión de una forma sencilla pero la En este sentido, tanto la realidad de Grace Hopper
idea tomó raíces y progresó de manera que posterio- preparando cintas capaces de utilizarse más de una
res modificaciones permitieron que se montaran vez como la de Rutishauser, que operaba en el Insti-
carretes de cintas conectadas a la máquina. tuto Técnico Federal de Zürich con la Z4 en 1952,
que consideraba que la misma calculadora capaz de
resolver un problema debía ser la que preparase sus
propias instrucciones, constituyeron el momento críti-
co del nacimiento del software.
Con la aparición del computador de programa
almacenado, cualquier secuencia de instrucciones que
se necesitara más de una vez, se almacenaba en una
cinta de papel. Cuando un problema determinado
requería esa secuencia, el computador leía la cinta,
almacenaba en memoria interna dicha secuencia y la
Perforadora de cinta de papel. insertaba en el lugar apropiado del programa general
o programa principal. Con este sistema, el programa-
Por ello, en un diseño posterior de la computado- dor podía escribir programas cada vez más complejos
ra, el Mark III, Aitken desarrolló un dispositivo encar- y sofisticados sin tener que rescribir secuencias de ins-
gado de recibir las instrucciones del programador, trucciones en binario ya escritas por él o por otros pro-

55
Primeros tiempos software.qxp 26/05/2009 14:44 PÆgina 56

ACTA
Los primeros tiempos del software (parte I)

gramadores: nacía así la biblioteca de rutinas, donde


podían encontrarse los códigos más usuales. Uno de
los primeros computadores de programa almacenado,
el EDSAC, en Cambridge, Inglaterra, hacía uso de
esta filosofía: poseía una amplia biblioteca de secuen-
cias (hoy las llamamos subrutinas) escritas de antema-
no, desarrolladas, verificadas y perforadas en cintas de
papel que permitían al programador incorporarlas a
sus propios programas. Actualmente, esta mecánica
recibe el nombre de llamada a una subrutina, y se lleva
a cabo mediante una sentencia CALL que contiene el
nombre de la secuencia de código que se necesita (a
la que se llama). Tarjeta perforada de 90 columnas tipo IBM.

à
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

Estos sistemas llegaron a conocerse como lengua-


El primer sistema de programación que trabajaba jes de programación. La aparición de este término se
como un compilador moderno fue desarrollado a debe a que tenían algunos atributos comunes con los
principio de los años cincuenta en el Instituto de Tec- lenguajes naturales con los que se expresa el hombre
nología de Massachussets, MIT. La autoría se debió a como, por ejemplo, algunas reglas sintácticas para su
H. Laning y N. Zierler (le llamaron indistintamente construcción. La historia del desarrollo del software
programa traductor o programa interpretativo), y se ha recorrido su camino, en muchas ocasiones, para-
trataba de un sistema para una computadora conoci- lelamente a la historia de los lenguajes de programa-
da con el nombre de Whirlwind del citado instituto. ción de alto nivel. Entendemos por este tipo de len-
Nunca se le dio nombre a tal sistema pero fue descri- guajes, aquellos que generan código de máquina (en
to en un manual titulado A Program for Translation of binario) a partir de códigos cercanos al álgebra o cer-
Mathematical Equations for Whirlwind I; es decir, se canos a la forma en que se describe un proceso.
trataba de un sistema otra vez relacionado con las Ahora bien, es necesario añadir que aunque los len-
matemáticas; esta vez, con la resolución de ecuacio- guajes de alto nivel se hicieron imprescindibles, la
nes. John Backus lo calificó como un elegante con- programación en muchas instalaciones continuó
cepto llevado a cabo elegantemente. A diferencia de haciéndose a niveles mucho más bajos de programa-
los compiladores UNIVAC, la filosofía de este sistema ción y, por tanto, más cercanos a la máquina, incluso
estaba mucho más cerca de las tendencias informáti- bien entrada la década de los sesenta. Aunque se
cas modernas. En concreto, tomaba como input los denominaban lenguajes, la verdad es que estos códi-
comandos del usuario y generaba como output, gos de bajo nivel generaban realmente una sola ins-
como salida, un código de máquina equivalente que trucción de máquina (o como mucho algunas pocas)
no solamente era capaz de ejecutar los comandos ori- por cada instrucción original o fuente escrita por el
ginales sino también hacía un seguimiento de las programador. Después, cada uno de los códigos
posiciones de memoria utilizadas, manejaba bucles fuente se traducía, en una correspondencia uno-a-
repetitivos, así como otras tareas. Los comandos de uno, al código binario correspondiente que el compu-
este sistema algebraico de Laning y Zierler se escribían tador ejecutaba ya directamente. Debido a todas
utilizando una sintaxis análoga a la empleada por el estas acciones, se decía (y actualmente también) que
álgebra; se traducían luego al código de la máquina tales programas se ensamblaban pero no que se com-
Whirlwind con lo que ésta podía ya ejecutarlos. pilaban y el programa encargado de ese ensamblaje
recibió el nombre de programa ensamblador.
El sistema realmente no fue, aunque pudiera
parecerlo, un lenguaje de programación de propósito Veamos un ejemplo de la sintaxis de una instruc-
general, sino más bien un medio para resolver única- ción, la suma, escrita en un lenguaje ensamblador.
mente ecuaciones algebraicas. Por lo tanto, no pre-
sentaba ninguna utilidad para todos aquellos usuarios
del sistema UNIVAC que estaban interesados en solu- INSTRUCCIONES PARA SUMAR
cionar aplicaciones de gestión y de negocio. Por ello, DOS CANTIDADES X + Y = Z
Backus, después de sus piropos iniciales para el siste-
L R1 , X
ma, fue luego más realista al decir que, a pesar de la
publicidad que se hizo del mismo, fue totalmente A R1 , Y
ignorado. Hemos leído que la razón que daba Backus ST R1 , Z
para esa ignorancia del producto en el mercado fue
que el sistema amenazaba lo que él denominaba el La primera instrucción se indica con el mne-
“sacerdocio de los programadores”: poseían un per- mónico L, de LOAD, cargar. Traslada el contenido
verso orgullo motivado por su habilidad para trabajar de la posición de memoria que el programador ha
en código de máquina utilizando siempre técnicas y llamado X, y que es precisamente donde está el
trucos que otros no podían descubrir. Donald Knuth, primer sumando, al registro del procesador R1.
que había examinado y analizado en 1980 varios sis- La segunda instrucción A, de ADD, suma el
temas de programación, veía otra razón: el sistema contenido que ya tenía el registro R1 con el segun-
era diez veces más lento que otros sistemas de codifi- do dato que se encuentra en la posición de la
cación aparecidos para Whirlwind.

57
Primeros tiempos software.qxp 26/05/2009 14:44 PÆgina 58

ACTA
Los primeros tiempos del software (parte I)

ensamblador para la máquina IBM 704. Ese leguaje,


memoria principal, conocida mnemónicamente con las consiguientes variaciones y mejoras, llegó
como Y. El resultado de la suma queda temporal- hasta los tiempos en que apareció en el mercado la
mente en R1. tercera generación de ordenadores con la máquina
Por último, se lleva el resultado de la suma System/360 de la compañía IBM. Los ensambladores
desde R1 a una posición de memoria fuera del siguen siendo programas vitales para los programa-
registro del procesador, concretamente a la posi- dores.
ción simbólica Z. Para ello se ha empleado la ins-
trucción ST, STORE, almacenar.
En Z quedará, como hemos dicho, la suma de
las dos cantidades X e Y.
Puede verse que se emplean mnemónicos no
à Grupos de usuarios
SHARE, GUIDE y GSE
sólo para indicar códigos de operación, sino tam- Es curioso observar que mientras los fabricantes y
bién para designar simbólicamente las posiciones suministradores de computadores estaban muy intere-
de memoria o los registros donde se ejecutan las sados en el desarrollo de lenguajes de alto nivel para
operaciones. sus máquinas, la corriente de las aún pequeñas comu-
nidades de usuarios caminaba por otras sendas. En
1955, varios usuarios de la máquina IBM 701, ubica-
Aparecieron ampliaciones a esa correspondencia dos en el área de Los Ángeles, pasaron a utilizar una
uno-a-uno que dieron lugar a lo que actualmente se nueva máquina, migraron a la IBM 704, que ofrecía
denomina macro. Se trataba de instrucciones fuente mejores rendimientos y más capacidades, y todos ellos
únicas pero que generaban más de una instrucción se agruparon con el fin de compartir experiencias, con-
de máquina. Muchas instalaciones comerciales siderando que ello sería mejor que trabajar sin relación
recientes mantuvieron extensas bibliotecas de macros alguna. En agosto de 1955 mantuvieron el primer
para realizar, por ejemplo, operaciones como la clasi- encuentro en la sede de RAND Corporation (era un
ficación de datos o la intercalación de unos con otros. lugar neutral), en Santa Mónica. A esa reunión acudie-
ron representantes de compañías tan importantes
Una de las tareas importantes del ensamblador como la North America Aviation y la Lockheed. El
era, y lo es actualmente, distribuir la memoria total de grupo se llamó SHARE (compartir), grupo con un cre-
la máquina a la vista de todos los símbolos de las cimiento rápido y que muy pronto comenzó a desarro-
variables que forman el programa, así como mante- llar bibliotecas de rutinas variadas; entre otras, rutinas
ner un control de la memoria durante la ejecución de orientadas al álgebra de matrices. Cada miembro del
dicho programa. grupo podía utilizar los desarrollos de los demás.

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)

Es curioso mencionar aquí a John von Newman:


se encargó de evaluar el diseño de la máquina
EDVAC de acuerdo con las posibilidades que pre-
sentaba para clasificar los datos. Este fue su razona-
miento: si la EDVAC podía clasificar tan bien como
lo hacían las máquinas clasificadoras mecánicas,
aquella debería considerarse como una máquina de
propósito general. Un programa de clasificación
mecanografiado en 1945 por Von Newman en su
máquina de escribir y que más tarde fue procesado
por la EDVAC, fue probablemente el primer progra-
ma existente de clasificación preparado para un
computador de programa almacenado. Lo mismo Donald Knuth.
ocurrió con Eckert y Mauchly cuando comenzaron a
construir el UNIVAC. Entre sus tareas estaba el des- Para finalizar, añadir que las rutinas de software
arrollo de un software para la clasificación e interca- desarrolladas en UNIVAC por Holberton y su equipo
lación de datos. Esto no lo hicieron solos; colaboró constituyeron verdaderas piezas maestras, cada una de
con ellos Frances Betty Holberton, una de las perso- ellas de un contenido con un alto grado de compleji-
nas que habían abandonado el proyecto ENIAC y dad. Incluso ella misma reconoció este hecho cuando
que había marchado con Eckert a la Eckert-Mauchly comentaba que se hacía necesario disponer de rutinas
Corporation. Betty tuvo allí la responsabilidad del más sencillas que no dieran lugar a ese uso masivo de
desarrollo del software para el UNIVAC. Hemos operaciones de clasificación. Pero habría que esperar a
dicho desarrollo del software. En aquellos tiempos que determinados recursos físicos de los sistemas de
no se conocía esa tarea por el nombre que le hemos computación, particularmente las memorias, tuvieran
dado; era más bien y simplemente un tipo de pro- una mayor capacidad y su tecnología de fabricación las
gramación. abaratara; debería pasarse de la memoria de núcleos
de ferrita, que era la utilizada, a la de transistores. Y eso
En 1952 apareció como resultado de los trabajos aún tardaría en llegar algunos años. De todas formas,
de Betty uno de los primeros productos debido a su con la aparición de los discos magnéticos mencionados
colaboración. Se trataba de una rutina encargada de anteriormente, los problemas de tiempo se aliviaron
leer y clasificar los datos almacenados en las cintas mucho. Apareció el concepto de listas encadenadas y,
del UNIVAC. Donald Knuth dijo del producto que era como consecuencia, las correspondientes técnicas
la primera rutina importante del software para la pro- mediante las cuales cada registro de una lista contenía
gramación automática que nunca antes se había des- información del siguiente (o anterior) registro. Con ello
arrollado. la clasificación fue perdiendo su importancia.
Las técnicas desarrolladas por Holberton para Para finalizar esta parte queremos añadir unas fra-
aquella programación incipiente sirvieron de patrón ses de Knuth que adornan de mérito todos los des-
en el mundo de la computación durante muchos arrollos habidos en el área del software: Siempre me
años. he dado cuenta de que la tarea de escribir un softwa-
re es mucho más difícil que cualquier otra cosa que yo
Es importante notar el hecho de que las cintas haya hecho en mi vida. Tenía que retener muchas
albergaban más datos que los que podían almacenar- cosas en mi cabeza al mismo tiempo. Y esto lo dijo
se en la memoria. Téngase en cuenta que el compu- Donald Knuth, que fue uno de los mejores implanta-
tador no puede procesar información alguna que dores de reglas para la construcción del software y
antes no se haya almacenado en esa memoria princi- uno de los más grandes programadores de todos los
pal. Por lo tanto, las rutinas debían leer la información tiempos, como ya se ha advertido.
de las cintas contenida en un pequeño bloque de

à
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)

más de lo que los primeros usuarios e inventores de


la misma pensaron. Se deriva del francés langue, len-
gua, lo que implica que es hablado. Pero los lengua-
jes de programación no se hablan, como los lenguajes
naturales, sino que se escriben de acuerdo con unas
determinadas reglas sintácticas muy precisas. Lo que
vamos a describir a continuación tiene mucho que
ver con esa noción de lenguaje de programación
que vamos a comenzar definiendo. Un algoritmo es
una secuencia de operaciones que se ejecutan sobre
un conjunto inicial de objetos para producir un con-
junto final de otros objetos diferentes. Un lenguaje de
programación es un conjunto de convenciones para
escribir algoritmos. Un algoritmo expresado en un Peter B. Sheridan, proyecto Fortran.
lenguaje de programación es un programa.
El 10 de noviembre de 1954, IBM publica a través
Nos referiremos ahora a dos puntas de lanza den- de su grupo de investigación para la programación un
tro de esos lenguajes de programación pero de alto primer informe titulado PRELIMINARY REPORT,
nivel cuyos respetivos diseños se llevaron a cabo bien Specifications for the IBM Mathematical Formula
entrada la década de los cincuenta: FORTRAN y Translating System, FORTRAN, en el que se anuncia-
COBOL fueron sus nombres. El primero orientado a ban los objetivos de tal lenguaje: El sistema de Tra-
las aplicaciones matemáticas y, como consecuencia, a ducción de Fórmulas Matemáticas de IBM, o
las técnico-científicas, y el segundo a las aplicaciones brevemente FORTRAN, comprenderá un amplio
de gestión. FORTRAN nació, como se ha señalado, conjunto de programas capaces de aceptar en el
en IBM, y la iniciativa de COBOL se produjo en el IBM-704 la formulación concisa de un problema
Departamento de Defensa de los Estados Unidos. basada en la notación matemática y de producir auto-
máticamente un programa 704 de alta velocidad
En una publicación actual de la ACM, Fortran encaminado a la solución del problema. Del comité
Forum, en su número de diciembre de 2006 se reco- encargado del proyecto, de su estudio, diseño y des-
gía el siguiente comentario: En 1954, un equipo de arrollo encabezado por John W. Backus, ya hablamos
IBM liderado por John Backus comenzó a trabajar en en las primeras líneas de este artículo.
el primer lenguaje de programación de alto nivel,
FORTRAN, lo que fue anunciado a la comunidad del
mundo de la computación en la conferencia Western
Joint Computer Conference que tuvo lugar en los
Ángeles, California, en febrero de 1957. A mediados
de abril del mismo año aparece el primer documento
sobre el compilador FORTRAN, compilador construi-
do y adaptado para la máquina IBM 704. FORTRAN,
escrito con mayúsculas hasta hace pocos años, signi-
fica Formula Translation, es decir, Traducción de fór-
mulas. Su nombre le viene del hecho de que su sinta-
xis (símbolos y reglas) era, y es, similar a la del
álgebra matemática. Irving Ziller, proyecto Fortran.

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.

Parte de las primeras versiones de COBOL se Lenguajes de Programación, Allen B. Tucker,


debieron al trabajo y entusiasmo que Grace Hopper McGraw-Hill, 1987.
puso en el desarrollo de los primeros compiladores Fundamental Algorithms, Serie The Art of Computer
para el UNIVAC. Así, allá por el año cincuenta y seis, Programming, Volumen 1, Donald E. Knuth,
Grace ya había desarrollado varios compiladores Addison-Wesley, 1977.

62

Potrebbero piacerti anche