Sistema de Laning y Zierler - Laning and Zierler system

El sistema de Laning y Zierler (a veces llamado "George" por sus usuarios) fue uno de los primeros compiladores algebraicos operativos , es decir, un sistema capaz de aceptar fórmulas matemáticas en notación algebraica y producir código de máquina equivalente (el término compilador aún no había sido inventado y el sistema se denominó "un programa interpretativo "). Fue implementado en 1952 para el MIT WHIRLWIND por J. Halcombe Laning y Neal Zierler. Está precedido por UNIVAC A-2, IBM Speedcoding y una serie de sistemas que se propusieron pero nunca se implementaron.

Descripción

El sistema acepta fórmulas en notación más o menos algebraica. Respetaba las reglas estándar para la precedencia de operadores , permitía paréntesis anidados y usaba superíndices para indicar exponentes . Fue uno de los primeros sistemas de programación en permitir nombres de variables simbólicas y asignar almacenamiento automáticamente.

El sistema también automatizó las siguientes tareas: cálculo de coma flotante , vinculación a subrutinas para las funciones básicas de análisis (seno, etc.) e impresión, y arreglos e indexación.

El sistema aceptó la entrada en cinta perforada producida por un Friden Flexowriter . El conjunto de caracteres en uso en la instalación de Whirlwind incluía dígitos en " mayúsculas " (superíndice) y un guión, que se usaban para indicar índices de matriz, códigos de función y exponentes (enteros). Como otras notaciones de programación de su época, el sistema aceptaba sólo nombres de variables de una sola letra y la multiplicación se indicaba mediante yuxtaposición de operandos. Se disponía de un punto en relieve para indicar la multiplicación explícitamente (¡el carácter se creó rellenando la mitad inferior de dos puntos!). El sistema también incluía soporte para la solución de ecuaciones diferenciales lineales mediante el método de Runge-Kutta .

El sistema se describió en un manual mecanografiado de 18 páginas escrito para personas familiarizadas con las matemáticas pero quizás no familiarizadas con las computadoras. No contiene casi nada en la forma de una introducción al hardware de la computadora.

Programa de muestra

El siguiente ejemplo, tomado de la página 11 de manuales, evalúa del sistema para el uso de la serie de Taylor de expansión. La implementación no es terriblemente eficiente y el sistema ya lo incluye en su biblioteca de subrutinas, pero el ejemplo sirve para dar una idea de la sintaxis del sistema. Tenga en cuenta que la división en el sistema se evalúa después de la multiplicación:

 1 x = 0,
   z = 1 - x2/2 + x4/2·3·4 - x6/2·3·4·5·6
     + x8/2·3·4·5·6·7·8 - x10/2·3·4·5·6·7·8·9·10,
   PRINT x, z.
   e = x -  1.05,
   CP 1,
   STOP

Aplicaciones

Se escribieron pocas aplicaciones para el sistema. Una aplicación documentada, escrita por los mismos Laning y Zierler, involucraba un problema en aeronáutica. El problema requería siete sistemas de ecuaciones diferenciales para expresarse, y se le había dado al Torbellino porque era demasiado grande para que lo manejara el Analizador Diferencial del MIT . Los autores, aprovechando la función Runge-Kutta de su sistema de programación, produjeron un programa de 97 declaraciones en dos horas y media. El programa se ejecutó correctamente la primera vez.

Influencia en FORTRAN

Algunas fuentes han dicho que el sistema Laning y Zierler fue la inspiración para FORTRAN . El propio John Backus admitió haber contribuido a este error:

El efecto del sistema de Laning y Zierler en el desarrollo de FORTRAN es una cuestión que ha sido confundida por muchas declaraciones erróneas de mi parte. Durante muchos años creí que habíamos tenido la idea de usar la notación algebraica en FORTRAN al ver una demostración del sistema Laning y Zierler en el MIT. (Backus)

Después de revisar la documentación de la época, Backus se enteró de que el proyecto FORTRAN estaba "bien encaminado" cuando él y su equipo tuvieron la oportunidad de ver el trabajo de Laning y Zierler:

[Nosotros] ya estábamos considerando la entrada algebraica considerablemente más sofisticada que la del sistema de Laning y Zierler cuando escuchamos por primera vez de su trabajo pionero ... [Es difícil saber qué nuevas ideas, si es que hay alguna, obtuvimos al ver el demostración de su sistema. (Backus, op cit )

Ver también

Notas

  1. ^ JW Backus, La historia de FORTRAN I, II y III. Actas Primera conferencia ACM SIGPLAN sobre Historia de los lenguajes de programación

Referencias

  • Backus, JW La historia de FORTRAN I, II y III. Actas Primera conferencia ACM SIGPLAN sobre Historia de los lenguajes de programación (Disponible en línea ).
  • Laning, JH y N. Zierler. Un programa para la traducción de ecuaciones matemáticas para Whirlwind I. Memorando de ingeniería E-364, Laboratorio de instrumentación, Instituto de Tecnología de Massachusetts. (Disponible en línea ).
  • Sammet, Jean E., "Lenguajes de programación: historia y fundamentos" Prentice-Hall, 1969
  • "The Early Development of Programming Languages" en A History of Computing in the Twentieth Century , Nueva York, Academic Press, 1980. ISBN  0-12-491650-3
Específico