Tomado de Museo Informático/ Personalidades Informáticas
Mi origen y mis estudios
Finalicé
mi secundario en 1958 como bachiller especializado en fisicomatemáticas, con la
expectativa de llegar a ser ingeniero naval. Para ello, me inscribí en el curso
de ingreso de la Facultad de Ingeniería de la UBA, pero como demoraba su
iniciación, mientras tanto comencé el de la Facultad de Ciencias Exactas.
Ingresé en
ambas y, como me fue gustando más el ambiente entusiasta e informal de la
Licenciatura en Matemáticas, de la FCEN, que el más formal de la Facultad de
Ingeniería, terminé dedicándome a matemáticas. De todas maneras, mi inclinación
ingenieril se enfocó hacia lo práctico y cursé optativas propias de matemática
aplicada (Seminario Elemental de Cálculo Numérico, Investigación Operativa),
orientándome hacia esta última especialidad.
Consciente de que sin recursos de cómputo poco se podía hacer en Investigación Operativa,
cuando se creó el Instituto del Cálculo realicé un curso de Autocode para
Mercury dado por Ernesto García Camarero y, cuando se abrió la carrera de
Computador Científico, me inscribí en ella, con muchas asignaturas comunes ya
aprobadas.
En esta
carrera fue fundamental el curso de Programación dictado por Victoria Bajar y
Julián Aráoz, que se extendía a través de los conjuntos de instrucciones de la
Ferranti Mercury (un computador con memoria de longitud de palabra fija, que
operaba en un acumulador de aritmética binaria de punto flotante y varios
registros de enteros, además de contar con dos tambores para almacenamiento
secundario) y su lenguaje cuasi absoluto PIG 2, y de la IBM 1401 (un computador
con memoria de caracteres BCD con zona, que operaba carácter a carácter con
aritmética decimal, permitiendo procesar campos de diversa longitud determinada
por un bit extra denominado “marca de palabra”) y su lenguaje simbólico SPS.
En
realidad, el hecho de tener que aprender inicial y casi simultáneamente dos
equipos de arquitectura totalmente diferente, me facilitó el desarrollo de
cierta capacidad de abstracción que hizo que no encontrase mayores dificultades
con los diversos equipos y lenguajes vistos a lo largo de mi vida profesional.
La época y
la oportunidad
Tuve la
suerte de estudiar e insertarme laboralmente en una época excepcional de
desarrollo. En Argentina, el gobierno acababa de crear el CONICET, que impulsó
la investigación, así como el INTI y el INTA, que impulsaron un importante
desarrollo en industrias PYMES y en la producción agropecuaria. En el mundo,
UNESCO convocaba en 1959 a un Congreso Mundial sobre Computación, del cual
surgió poco después IFIP, la Federación Internacional para el Procesamiento de
la Información, que tuvo su correlato en Argentina en la SAC, Sociedad
Argentina del Cálculo, impulsada por entusiastas de la FCEN. Simultáneamente,
se creaba IFORS, la Federación Internacional de Sociedades de Investigación
Operativa, que tuvo su correlato en SADIO, la Sociedad Argentina de
Investigación Operativa, en la que había principalmente ingenieros, pero
convivían con gente de ciencias exactas y económicas.
Estas
asociaciones organizaban en 1961 un 1er Congreso Argentino de Técnicas
Matemáticas aplicadas a la Industria, el Comercio y la Administración Pública,
que terminó siendo el evento antecesor de las JAIIOs, Jornadas Argentinas de
Informática que aún se vienen realizando y suman más de cuarenta. También
ocurrió que SAC, menos formal y más sacudida por los avatares que afectaron a
la FCEN, terminó fusionada de hecho con SADIO a partir de 1985, que ya había
asumido la representación argentina en IFIP.
Mis
primeros trabajos, los equipos que utilicé y algunas particularidades y
anécdotas
Aún
estudiante, en 1963 me incorporé a Hijos de Ybarra, una empresa aceitera y
distribuidora de productos de almacén, en donde intenté reducir costos y
mejorar procesos de distribución. Poco después se compró un computador Bull
Gamma 10 para reemplazar equipos de registro unitario en el proceso de
facturación y cuentas corrientes. El Gamma 10 tenía una memoria de 1024
caracteres, impresora y entrada/salida por tarjetas, sin almacenamiento
auxiliar. La memoria rendía porque las instrucciones ocupaban sólo 3
caracteres, con direccionamiento indirecto, ya que los datos se almacenaban en
tablas. Después de realizar en absoluto la mayor parte de los programas,
descubrimos que había un ensamblador básico que traducía códigos mnemotécnicos
y permitía alguna mejora en el direccionamiento de los saltos.
Hay que
recordar que esto era antes de julio de 1966, cuando Dijkstra publicó su
primera carta criticando el uso del GO TO y proponiendo algo que devino en
programación estructurada. Aún recuerdo un artículo humorístico de un
Datamation posterior, proponiendo el reemplazo del inadecuado GO TO por un “más
moderno y práctico” CAME FROM.
Después de
la experiencia de Ybarra, pasé a Acindar, Industria Argentina de Aceros, hoy
parte de Arcelor-Mittal, donde participé en proyectos especiales y programé una
IBM 1401 de 8k con 4 unidades de cinta magnética. Como la 1401 estaba en
Rosario, tuvimos que recurrir a un antecesor del teleprocesamiento, que
consistía en enviar cajas con tarjetas perforadas por comisionista y recibir
unos días después los listados con los resultados. Para facilitar nuestra
programación y automatizar las pruebas en una máquina que no tenía sistema
operativo, utilizamos el ensamblador Autocoder, al cual se le podían agregar
macroinstrucciones, algunas provistas por IBM, como las macros de
entrada/salida del IOCS y otras creadas por nosotros, para evitar errores
comunes de programación que se producían por mal alineamiento de los operandos
en la división o para leer y enganchar programas. Estas últimas permitían la
carga de datos de prueba seguida con la ejecución del programa a probar y la
impresión de los datos resultantes a partir de la finalización o interrupción
de la prueba, lo que implicaba imprimir tanto los archivos generados como
volcar el contenido de memoria formateado en forma legible.
Lo que
resultaba sensacional en la 1401 era su compilador Fortran, que cargaba el
simbólico en memoria y para compilarlo, iban pasando 52 fases o partes del
compilador, cargados desde tarjetas o cinta magnética, hasta generar el
programa objeto que podía dejarlo en memoria para ser inmediatamente ejecutado.
Obviamente, esto planteaba una seria restricción a la dimensión del programa fuente,
no sólo en su extensión sino que había que reducir los nombres de las variables
utilizadas para que entrasen más instrucciones. El Fortran traía, además, un
monitor elemental, que en una máquina que carecía de sistema operativo,
permitía cargar diversos módulos de programas compilados por separado para
realizar operaciones de cálculo complejas.
No hay comentarios:
Publicar un comentario
COMENTARIOS SON MÁS QUE BIENVENIDOS. POR FAVOR CON NOMBRE Y APELLIDO. LOS COMENTARIOS AJENOS A LA TEMÁTICA DE ESTE BLOG SERÁN ELIMINADOS.