La computación en México y la influencia de H. V. McIntosh en su desarrollo ^{∗}

Gerardo Cisneros-S.^{†}

Departamento de Aplicación de Microcomputadoras, Instituto de Ciencias, Universidad Autónoma de Puebla,

Apdo. Postal 461, 72000 Puebla, Pue., México.

BITNET: CISNEROS@UNAMVM1^{‡}

Introducción

En un reporte reciente [13], se dió la siguiente definición breve de la computación como disciplina:

“La disciplina de la computación es el estudio sistemático de procesos algorítmicos que describen y transforman información: su teoría, análisis, diseño, eficiencia, instrumentación y aplicación. La pregunta sobre la que se funda toda la computación es ‘¿Qué puede automatizarse (eficientemente)?’ ”

A diferencia de otras disciplinas, en las que la componente tecnológica está bien delimitada y separada (p.ej., Química vs. Ingeniería Química), en la computación ha sido difícil separar las componentes de teoría y experimentación de las de tecnología y aplicación, de modo que continúa el debate sobre si la computación debe pertenecer a un departamento de Matemáticas o a uno de Ingeniería Eléctrica (aunque actualmente la tendencia es que tenga su propio departamento).

El mismo reporte [13] subdivide a la computación en las siguientes subdisciplinas:

• Algoritmos y Estructuras de Datos

• Lenguajes de Programación

• Arquitectura

• Computación Numérica y Simbólica

• Sistemas Operativos

• Metodología e Ingeniería del Software • Sistemas de Bases de Datos y de Recuperación de

Información

• Inteligencia Artificial y Robótica

• Comunicación Humano-Computadora

A juzgar por la ausencia de artículos publicados en revistas de dos sociedades profesionales de los Estados Unidos que tienen alcance internacional, la Association for Computing Machinery y la Computer Society del IEEE, en México no ha habido gran actividad de investigación en computación. Sí se sabe de muchos grupos que la cultivan, pero sus resultados sólo han tenido difusión en foros locales o nacionales. En algunos casos, su actividad ha sido la de usuarios o desarrolladores de paquetes de programas para ser utilizados en la solución de problemas de investigación en otras disciplinas.

La influencia de H. V. McIntosh

Harold V. McIntosh obtuvo la Licenciatura en Ciencias con especialidad en Física de Colorado A&M College en 1949, la Maestría en Ciencias (en Matemáticas) de la Universidad de Cornell en 1952, y terminó créditos doctorales en Cornell y Brandeis; obtuvo el Doctorado de Filosofía en Química Cuántica en la Universidad de Uppsala en 1972.

Ya desde sus tiempos de estudiante la capacidad de McIntosh para inducir a la gente a aprender era evidente. En una entrevista para un artículo sobre Sheldon L. Glashow (Premio Nobel de Física 1979) publicado por The Atlantic Monthly en 1984, Glashow aseguró que lo que aprendió de McIntosh sobre Teoría de Grupos en sus años de estudiante de licenciatura en Cornell fué tanto o más importante que lo aprendido en curso alguno que hubiera tomado [10].

∗Ponencia presentada en la mesa redonda sobre Gráficas, Combinatoria y Computación de la Reunión Nacional de Matemáticos en Homenaje al Dr. José Adem, “Medio Siglo de Matemáticas en México: Estado Actual y Perspectivas”, CIMAT, Guanajuato, 15–17 de julio de 1991.

†Miembro del Sistema Nacional de Investigadores.

‡Dirección actual gerardo@brozo.dgsca.unam.mx

Los últimos lugares en los que trabajó antes de venir a México fueron el Departamento de Física y Astronomía y el Proyecto de Teoría Cuántica de la Universidad de Florida (donde dirigió la tesis doctoral de Victor A. Dulock, Jr.), y RIAS (Research Institute for Advanced Studies, Baltimore, Maryland, E.U.A.), Instituto del cual Welcome W. Bender fuera director y en cuyo Departamento de Matemáticas la actividad era guiada por Solomon Lefschetz.

En México trabajó en el Departamento de Física del Centro de Investigación y Estudios Avanzados del IPN de 1964 a 1965; en este período dirigió las tesis de Licenciatura de Adolfo Guzmán Arenas [20] y Raymundo Segovia Navarro [28], ambas sobre compiladores para el lenguaje de programación CON-VERT, ideado por McIntosh para realizar manipulaciones simbólicas útiles en la solución de problemas de mecánica clásica y cuántica. Tanto Guzmán como Segovia se especializaron en computación y actualmente ambos cuentan con reconocimiento por su trabajo desarrollado en este campo. Como una continuación altamente original de la experiencia adquirida en Baltimore y Florida con el compilador MBLISP de McIntosh, Lowell Hawkinson y Robert A. Yates construyeron en esta época un excelente compilador de LISP para la IBM 709.

Entre 1965 y 1966 McIntosh fué director del Departamento de Programación del Centro de Cálculo Electrónico de la UNAM (el cual posteriormente se convirtió en lo que actualmente es el IIMAS); durante este período construyó el primer compilador del lenguaje REC (Regular Expression Compiler) como parte de las pruebas de aceptación para la computadora PDP-8 y dirigió la tesis de Manuel Alvarez Alvarez [1].

De 1966 a 1975 fué Profesor en la Escuela Superior de Física y Matemáticas del IPN. Aquí fué Coordinador de la Academia de Matemáticas Aplicadas; a los cursos ya existentes de Análisis Numérico y Probabilidad y Estadística agregó los de Lógica Matemática y Programación. (Este último creció hasta convertirse en una serie de cuatro cursos con una orientación verdaderamente científica.) Con su asesoría se construyeron compiladores de REC para la IBM 1130 [4] y la CDC 3150 en el Centro Nacional de Cálculo del IPN; él mismo se hizo cargo de la construcción de paquetes para cálculos matriciales, integración numérica de ecuaciones diferenciales de segundo orden, y cálculo de trayectorias de una partícula cargada en el campo de dos centros con cargas magnéticas y eléctricas.

En este período dirigió (entre otras) las tesis de licenciatura de Arturo Cisneros Stoianowski [8] (que produjo tres artículos en Journal of Mathematical Physics), Jesús Ortega Campos [24] (premiado por la Sociedad Mexicana de Física), J. Leonel Torres Hernández [30] (premiado por la Sociedad Mexicana de Física), Isidro Romero Medina [26], Cristóbal Vargas Jarillo [32], José Luis Varas Araujo [31], Gilberto Calvillo Vives [2], Manuel González Hernández [18], R. Carlos García Jurado M. [15], Rodolfo Reyes Sánchez [25], Gloria Espinosa [14], Erasto V. Vergara Nava [33], Raúl González Navidad [19] y Fernando Romero Muñoz [27]. La orientación evidente es hacia la física, las matemáticas aplicadas y la computación; varios de los citados son actualmente investigadores reconocidos en sus propios campos.

Entre 1970 y 1975 McIntosh fué consultor del (entonces) Instituto Nacional de Energía Nuclear en el Centro Nuclear de México (Salazar, Edo. de México). Con la ayuda de alumnos y egresados de la ESFM del IPN, continuó el desarrollo del paquete de solución numérica de ecuaciones diferenciales de segundo orden y otros programas de interés para la comunidad científica del Centro Nuclear. Bajo su dirección, Carlos García Jurado M. desarrolló un compilador de REC para la PDP-10 el cual fué utilizado para generar incluso los programas de la nómina del Centro; su tesis fué una versión gráfica de REC para la PDP-15. También fué en Salazar donde McIntosh desarrolló <PLOT75>, un paquete de graficación que logró difusión en todo el mundo gracias al interés y al esfuerzo de Nelson H. F. Beebe, de la Universidad de Utah. En 1971 McIntosh publicó un artículo sobre simetría y degeneración [21] que en 1980 fué citado tres veces de manera extraordinariamente entusiasta por Herbert Goldstein en la segunda edición de su mundialmente famoso libro de mecánica clásica [17].

En 1973 se fundó en la Universidad Autónoma de Puebla la Licenciatura en Computación dentro de la Escuela de Ciencias Físico-Matemáticas, promovida principalmente por Isidro Romero Medina; éste solicitó la asesoría de McIntosh y el resultado fué una de las carreras de computación mejor equilibradas y con mayor orientación a los fundamentos matemáticos que existen actualmente en México. La carrera incluye, aparte de los tres cursos básicos comunes a las demás carreras que se imparten en la Escuela, los siguientes cursos:

• Cálculo I–IV

• Algebra I–IV

• Fortran I–IV (el nombre se debe a razones históricas; actualmente se usa C y Pascal—éste sin la anuencia de McIntosh—, y se enseñan diversos algoritmos, estructuras de datos y técnicas de programación).

• Ensamblador I–IV (arquitectura y programación a nivel de hardware)

• Hardware I–III (diseño digital; esta serie en particular distingue a la Licenciatura de la UAP de otras que se imparten en el país)

• Lenguajes de Programación I–II (compiladores) y III–IV (sistemas operativos)

• Análisis Numérico I–IV

• Lógica Matemática I–IV (Proposiciones, Grupos, Algebra Booleana, Autómatas Finitos, Semigrupos, Autómatas Infinitos, Computabilidad)

• Probabilidad I–II

• Estadística I–II En 1975 McIntosh y todo el grupo que colaboraba

con él en Salazar fueron invitados a trabajar en la Universidad Autónoma de Puebla. Poco antes Intel había lanzado al mercado los primeros microprocesadores, lo cual fué visto como una oportunidad única para desarrollar la computación no sólo en el aspecto de la programación, sino también del diseño de equipo de computación. De este modo, el grupo quedó establecido como Departamento de Aplicación de Microcomputadoras en el Instituto de Ciencias de la UAP.

Entre los trabajos más sobresalientes de este grupo se incluyen los siguientes:

• SMU. Sistema de Múltiples Usuarios, basado en el bus S-100, terminales TeleVideo, discos duros y flexibles e impresora. Algunas tablillas fueron diseñadas en el Departamento, y el sistema operativo es una modificación de CP/M realizada sobre un desensamble del mismo. También se desensambló el compilador de Fortran F80 para modificarlo y aprovechar coprocesadores aritméticos [29].

• CP-UAP. Computadora personal diseñada sobre el bus STD, con una tablilla por función (procesador central a base del microprocesador NEC V20, memoria, interfaz de video, interfaz de discos). Uno de los prototipos construidos obtuvo el primer lugar en el Concurso Regional de Prototipos Didácticos y de Investigación “Autoequipamiento 86” patrocinado por SESIC/SEP y ANUIES.

• <PLOT84>. La versión desarrollada en el INEN ha sido implantada en microcomputadoras, tanto en Fortran 77 como en C; partes del paquete fueron utilizadas en programas didácticos en relación con el eclipse total de sol del pasado 11 de julio.

• REC. Una versión del conciso lenguaje inicialmente diseñado para la PDP-8, esta vez para microprocesadores. La selección de operadores y predicados se hizo teniendo en mente las necesidades de la compilación de Convert. Hay versiones de REC para las familias de los microprocesadores 8080 y 8086 de Intel y MC68000 de Motorola bajo diversos sistemas operativos [23]. Ultimamente se cuenta con una versión en C que consta de una biblioteca de funciones para compilar y ejecutar programas en REC y que permite al usuario definir su conjunto de operadores y predicados por medio de una tabla de apuntadores a funciones; de esta manera REC se convierte en un lenguaje conciso que proporciona programabilidad a las interfaces interactivas de los sistemas que lo incorporan.

• Convert. Una vez que hubo una versión de REC con capacidad para la manipulación simbólica, fué posible desarrollar una nueva versión de Convert, esta vez para transformación de cadenas, en lugar de listas [7, 23]. Convert ha sido utilizado para derivaciones de fórmulas en problemas de la química cuántica [5], utilerias diversas, cursos de construcción de compiladores, y para compilar Convert mismo a lenguaje de máquina de los microprocesadores Intel 8086 [3, 12] y Motorola MC68000; con esto último se obtuvieron aumentos de hasta un orden de magnitud en la velocidad de programas escritos en Convert.

• Utilerías. Con programas escritos en REC, Convert y ensamblador, McIntosh contribuyó 20 volúmenes a la colección de programas del dominio público para CP/M distribuidos por la Amateur Computer Group of New Jersey, algunos de los cuales le valieron el premio Computer Hobbyist of the Year en 1985.

• Autómata. Un paquete de programas en REC y Convert para la enseñanza de la teoría de autómatas. Permite resolver sistemas de ecuaciones regulares, construir reconocedores para éstos, simular autómatas de pila, máquinas de Turing, sistemas de Post y Algoritmos de Markov, y ejecutar pequeños programas en LISP [6].

• Autómatas Celulares. Durante los últimos cinco años se ha desarrollado un conjunto de programas en Convert y C para estudiar la evolución y otras propiedades de los autómatas celulares, que han sido distribuidos en diversos servicios de distribución de programas del dominio público. Junto con estos programas, McIntosh ha escrito una variedad de apuntes para el curso de Fortran III en los que se detalla la teoría y se describe la colección de programas. De este trabajo ha resultado un artículo aparecido en Physica D [22] y varios más en proceso de revisión.

• Administración. Desde su formación, parte de los deberes del Departamento fueron los de asesorar y auxiliar a la administración de la Universidad en la selección y uso de computadoras. El Departamento participó en proyectos de automatización de la nómina, el Control Escolar y las bibliotecas, usando microcomputodoras Alpha Micro para los primeros y Dual para las últimas.

Los miembros del Departamento de Aplicación de Microcomputadoras además han impartido continuamente cursos en la Licenciatura de Computación de la ECFM, han dirigido seis tesis que ya fueron presentadas [3, 9, 11, 12, 16, 29] y tienen bajo su dirección una docena de tesis más.

Postgrados

Los postgrados en computación más antiguos son los del Centro Nacional de Cálculo del IPN y del IIMAS de la UNAM; más recientemente se han abierto postgrados en otras instituciones, notablemente en el CINVESTAV del IPN, éste por iniciativa de Adolfo Guzmán Arenas. Desafortunadamente estos postgrados se han formulado para dar cabida a egresados de toda clase de profesiones, de modo que el nivel de los cursos no puede conservarse a un nivel adecuadamente alto. La experiencia muestra que egresados de la Licenciatura de Computación de la UAP no tienen problemas con la maestría del CINVESTAV, porque ya han visto en la Licenciatura el 50% o más de lo que cursan en la maestría; esto se refleja en un número bajo de publicaciones internacionales.

Perspectivas

En la computación, tal vez más que en otras ramas de las matemáticas, las posibilidades del medio académico para conservar gente con talento son más reducidas por la feroz competencia con los salarios del medio industrial y comercial; esto ha sido una fuente de pérdidas importantes (Adolfo Guzmán, entre otras). Para que se pueda pensar en elevar el nivel de la investigación en computación se necesita:

• Elevar los salarios en el medio académico de manera general, y no a base de parches, de modo que se pueda atraer gente con talento para la que de entrada los salarios actuales resultan ridículos y que inicialmente no tiene acceso a los parches (SNI y estímulos al desempeño académico).

• Revisar los planes de estudios de los postgrados para elevar su nivel. Si el personal docente no tiene el nivel adecuado, enviarlos a hacer doctorados a instituciones de primera línea; aquellos que ya cuentan con doctorado pueden ser enviados a realizar estancias postdoctorales.

Agradecimientos

El autor agradece al CIMAT el apoyo económico brindado, sin el cual no hubiera sido posible asistir a la Reunión para presentar esta ponencia. Agradece asimismo a los Dres. Cristóbal Vargas y J. de Jesús Pérez Romero por sus comentarios y al Dr. Harold V. McIntosh, quien revisó el manuscrito. Cualesquiera errores que subsistan son responsabilidad del autor.

Referencias

[1] Manuel Alvarez Alvarez, “Aplicación del método semiempírico MO-LCAO para la determinación de las densidades de carga y ligaduras en un sistema molecular, usando como elemento de cálculo una computadora digital,” Tesis de Físico, Facultad de Ciencias, UNAM (1965)

[2] Gilberto Calvillo Vives, “Los métodos de Jacobi, Givens y Primas para diagonalizar matrices,” Tesis de Licenciado en Física y Matemáticas, ESFM, Instituto Politécnico Nacional (1971)

[3] Jesús Ariel Carrasco Ochoa, “Compilador de Convert para el procesador Intel 8086,” Tesis de Licenciado en Computación, Escuela de Ciencias Físico-Matemáticas, UAP (1989)

[4] Gerardo Cisneros, “A Fortran coded Regular Expression Compiler for the IBM 1130 Computing System,” Acta Mex. Cienc. Tecnol. 4, 1 (Ene-Abr), 30–86 (1970)

[5] G. Cisneros, H. V. McIntosh and C. F. Bunge, “Automatic Generation of configuration interaction Hamiltonian matrix elements,” Int. J. Quantum Chem. S18, 683–689 (1985)

[6] Gerardo Cisneros-S. y Harold V. McIntosh, “REC y Convert en la enseñanza de la Teoría de Autómatas,” Memorias de la Quinta Conferencia Internacional Las Computadoras en las Instituciones de Educación e Investigación, (UNAM/Unisys, Nov. 1989) (en prensa)

[7] Gerardo Cisneros y H. V. McIntosh, “Introducción al lenguaje de programación Convert,” Acta Mex. Cienc. Tecnol. 3, 9 (Ene-Mar), 65– 74 (1985). Traducción al inglés publicada como “Introduction to the programming language Convert”, SIGPLAN Notices 21, 4 (Apr), 48–57 (1986)

[8] Arturo Cisneros Stoianowski, “Estudio sobre el grupo universal de simetría,” Tesis de Licenciado en Física y Matemáticas, ESFM, Instituto Politécnico Nacional (1968)

[9] Luis Alejandro Corona Jiménez, “Diseño y realización de un paquete de software como auxiliar en la organización administrativa de un centro de investigación,” Tesis de Licenciado en Ciencias de la Computación, Escuela de Ciencias Físico-Matemáticas, UAP (1990)

[10] Robert P. Crease and Charles C. Mann, “How the Universe works,” The Atlantic Monthly, Aug. 1984, pp. 66–93.

[11] Guillermo de Ita Luna, “Desarrollo de un sistema LOGO,” Tesis de Licenciado en Computación, Escuela de Ciencias Físico-Matemáticas, UAP (1987)

[12] Lucía Angélica de la Vega Doria, “Biblioteca de Convert para el procesador Intel 8086,” Tesis de Licenciado en Computación, Escuela de Ciencias Físico-Matemáticas, UAP (1989)

[13] Peter J. Denning, Douglas E. Comer, David Gries, Michael C. Mulder, Allen Tucker, A. Joe Turner and Paul R. Young, “Computing as a discipline,” Commun. ACM 32, 1 (Jan), 9–23 (1989)

[14] Gloria Espinosa, “Construcción y representación de un flexágono,” Tesis de Licenciado en Física y Matemáticas, ESFM, Instituto Politécnico Nacional (1972)

[15] R. Carlos García Jurado M., “Un REC visual para la PDP-15 en comunicación con la PDP-10,” Tesis de Licenciado en Física y Matemáticas, ESFM, Instituto Politécnico Nacional (1971)

[16] I. Francisco Gil Zepeda, “Diseño de un lenguaje musical (MUSFOR) y construcción de su compilador (MUS80),” Tesis de Licenciado en Ciencias de la Computación, Escuela de Ciencias Físico-Matemáticas, UAP (1989)

[17] Herbert Goldstein, Classical Mechanics, 2nd. ed. (Reading, Massachussetts, Addison-Wesley, 1980)

[18] Manuel González Hernández, “Solución de las ecuaciones de movimiento del problema de dos centros utilizando métodos numéricos,” Tesis de Licenciado en Física y Matemáticas, ESFM, Instituto Politécnico Nacional (1971)

[19] Raúl González Navidad, “Un interpretador LISP para un sistema computador PDP-15,” Tesis de Licenciado en Física y Matemáticas, ESFM, Instituto Politécnico Nacional (1974)

[20] A. Guzmán Arenas, “CONVERT,” Tesis de Ingeniero en Comunicaciones y Electrónica, ESIME, Instituto Politécnico Nacional (1965)

[21] H. V. McIntosh, “Symmetry and Degeneracy,” in Group Theory and its Applications, Vol. 2, Ernest M. Loebl, editor (New York: Academic Press, 1971, pp. 75–144)

[22] H. V. McIntosh, “Wolfram’s Class IV Automata and a Good Life,” Physica D 45, 105–121 (1990)

[23] H. V. McIntosh and G. Cisneros, “The programming languages REC and Convert,” SIGPLAN Notices 25, 7 (Jul), 81–94 (1990)

[24] Jesús Ortega Campos, “Estudio de vibraciones en cadenas lineales con interacciones a segundos vecinos,” Tesis de Licenciado en Física y Matemáticas, ESFM, Instituto Politécnico Nacional (1971)

[25] Rodolfo Reyes Sánchez, “El movimiento clásico de una partícula en torno a dos centros Coulombianos con cargas eléctricas y magnéticas,” Tesis de Físico, Facultad de Ciencias, UNAM (1971)

[26] Isidro Romero Medina, “Vibraciones de redes unidimensionales con interacciones a primeros vecinos,” Tesis de Licenciado en Física y Matemáticas, ESFM, Instituto Politécnico Nacional (1971)

[27] Fernando Romero Muñoz, “Diseño de un programa para el cálculo de parámetros estadísticos de respuestas neuronales,” Tesis de Licenciado en Física y Matemáticas, ESFM, Instituto Politécnico Nacional (1974)

[28] Raymundo Segovia Navarro, “CONVERT en el diseño de procesadores,” Tesis de Ingeniero en Comunicaciones y Electrónica, ESIME, Instituto Politécnico Nacional, México (1967)

[29] Daniel Angel Tenorio Téllez, “Procesador aritmético bus STD V1.0,” Tesis de Licenciado en Ciencias de la Computación, Escuela de Ciencias Físico-Matemáticas, UAP (1984)

[30] J. Leonel Torres Hernández, “Características esenciales del movimiento en el campo de un monopolo electromagnético fijo,” Tesis de Licenciado en Física y Matemáticas, ESFM, Instituto Politécnico Nacional (1971)

[31] José Luis Varas Araujo, “Compilador REC en lenguaje COMPASS para la computadora CDC-6400,” Tesis de Licenciado en Física y Matemáticas, ESFM, Instituto Politécnico Nacional (1971)

[32] Cristóbal Vargas Jarillo, “Geometría del espacio fase,” Tesis de Licenciado en Física y Matemáticas, ESFM, Instituto Politécnico Nacional (1971)

[33] Erasto V. Vergara Nava, “Vibraciones de una red diatómica con interacciones a segundos vecinos,” Tesis de Licenciado en Física y Matemáticas, ESFM, Instituto Politécnico Nacional (1974)