FLOW-MATIC , originalmente conocido como B-0 ( Business Language versión 0 ), fue el primer lenguaje de procesamiento de datos similar al inglés . Fue desarrollado para la UNIVAC I en Remington Rand bajo la dirección de Grace Hopper entre 1955 y 1959, y contribuyó a dar forma al desarrollo de COBOL .
Desarrollo
Hopper había descubierto que los clientes de procesamiento de datos empresariales se sentían incómodos con la notación matemática : [ 1 ]
Antes era profesor de matemáticas. En aquel entonces, me di cuenta de que había un número considerable de estudiantes que no podían aprender matemáticas. Me encomendaron la tarea de facilitar a los empresarios el uso de nuestros ordenadores. Descubrí que no se trataba de si podían aprender matemáticas o no, sino de si querían. […] Decían: «Olvídense de esos símbolos; no sé qué significan, no tengo tiempo para aprenderlos». Sugiero que, para quienes pretenden que los profesionales del procesamiento de datos utilicen símbolos matemáticos, intenten primero enseñárselos a vicepresidentes, coroneles o almirantes. Les aseguro que yo lo intenté.
A finales de 1953, propuso que los problemas de procesamiento de datos se expresaran mediante palabras clave en inglés, pero la dirección de Rand consideró la idea inviable. A principios de 1955, ella y su equipo redactaron una especificación para dicho lenguaje de programación e implementaron un prototipo. [ 2 ] El compilador FLOW-MATIC se hizo público a principios de 1958 y estaba prácticamente terminado en 1959. [ 3 ]
Innovaciones e influencia
El sistema de Laning y Zierler fue el primer lenguaje de programación en analizar fórmulas algebraicas. Cuando Hopper conoció ese lenguaje en 1954, cambió el rumbo de su trabajo. [ 4 ] FLOW-MATIC fue el primer lenguaje de programación en expresar operaciones usando sentencias similares al inglés en lugar de símbolos sin significado. [ 3 ] También fue el primer sistema en separar claramente la descripción de los datos de las operaciones realizadas sobre ellos. Su lenguaje de definición de datos , a diferencia de sus sentencias ejecutables, no era similar al inglés; en cambio, las estructuras de datos se definían rellenando formularios preimpresos. [ 3 ]
FLOW-MATIC y su descendiente directo AIMACO dieron forma a COBOL , [ 5 ] que incorporó varios de sus elementos:
- Definir de antemano los archivos de entrada, los archivos de salida y la salida impresa, separados en archivos de ENTRADA, archivos de SALIDA y salidas de impresora de alta velocidad (HSP).
INPUT <FILE-NAME> <FILE-LETTER>;OUTPUT <FILE-NAME> <FILE-LETTER>;HSP <FILE-LETTER>. [ 6 ] - Calificación de nombres de datos (
INoOFcláusula). IF END OF DATA (AT END)cláusula sobreREADoperaciones de archivos.- Constante figurativa
ZERO(originalmenteZZZ...ZZZ, donde el número deZs indicaba precisión). - Dividir el programa en secciones, separando las diferentes partes del mismo. Las secciones de Flow-Matic incluían
Computer(División de Entorno),Directory(División de Datos) yCompiler(División de Procedimientos).
Código de ejemplo
Un ejemplo de programa FLOW-MATIC: [ 7 ] [ 8 ]
(0 ) ENTRADA ARCHIVO DE INVENTARIO-A ARCHIVO DE PRECIOS-B; SALIDA ARCHIVO DE INVENTARIO CON PRECIO-C ARCHIVO DE INVENTARIO SIN PRECIO ARCHIVO-D; HSP D. (1 ) COMPARAR EL PRODUCTO NÚMERO (A) CON EL PRODUCTO NÚMERO (B); SI ES MAYOR, PASAR A LA OPERACIÓN 10; SI SON IGUALES, IR A LA OPERACIÓN 5; DE LO CONTRARIO, IR A LA OPERACIÓN 2. (2 ) TRANSFERIR A A D. (3 ) ESCRIBIR-ELEMENTO D. (4 ) SALTAR A LA OPERACIÓN 8. (5 ) TRANSFERIR A A C. (6 ) MOVER EL PRECIO UNITARIO (B) AL PRECIO UNITARIO (C). (7 ) ESCRIBIR-ELEMENTO C. (8 ) LEER-ELEMENTO A; SI FIN DE DATOS IR A LA OPERACIÓN 14. (9 ) SALTAR A LA OPERACIÓN 1. (10 ) LEER-ELEMENTO B; SI FIN DE DATOS IR A LA OPERACIÓN 12. (11 ) SALTAR A LA OPERACIÓN 1. (12 ) ESTABLECER LA OPERACIÓN 9 PARA QUE VAYA A LA OPERACIÓN 2. (13 ) SALTAR A LA OPERACIÓN 2. (14 ) COMPARAR EL PRODUCTO N.º (B) CON ; SI SON IGUALES, PASAR A LA OPERACIÓN 16; DE LO CONTRARIO, PASE A LA OPERACIÓN 15. (15 ) REBOBINAR B. (16 ) ARCHIVOS DE CIERRE C; D. (17 ) ALTO. (FIN)
Notas de ejemplo
- Nótese que esta muestra incluye solo las instrucciones ejecutables del programa, la
COMPILERsección. Los campos de registroPRODUCT-NOyUNIT-PRICEse habrían definido en laDIRECTORYsección, que ( como se indicó anteriormente ) no utilizaba una sintaxis similar al inglés. [ 9 ] - Los archivos se identifican mediante la letra que aparece al final de FILE-LETTER. Por ejemplo: FILE-A se denomina más adelante simplemente A, para facilitar su referencia en el código siguiente.
- Las operaciones se numeran en una secuencia ininterrumpida del 0 al n y se realizan en ese orden a menos que se alcance o se haga (ejecute) una instrucción en contrario (JUMP, etc.).
- La operación con el número más alto es la que detiene el programa.
- Una descripción mucho más detallada de FLOW-MATIC está disponible en el manual titulado FLOW-MATIC PROGRAMMING SYSTEM [ 10 ].
Notas
- ↑ Hopper (1959) pág. 198.
- ↑ Hopper (1978) pág. 16.
- 1 2 3 Sammet (1969) pág. 316
- ↑ Beyer, Kurt (10 de febrero de 2012). «10». Grace Hopper y la invención de la era de la información . MIT Press. ISBN 9780262517263.
- ↑ Sammet (1978) pág. 204.
- ↑ Remington Rand Univac, una división de Sperry Rand Corporation (1957). SISTEMA DE PROGRAMACIÓN FLOW-MATIC, pág. 30.
- ↑ Sperry Rand (1957) pág. 7.
- ↑ Sammet (1969) pág. 323.
- ↑ Hopper (1978) pág. 18.
- ↑ Remington Rand Univac, una división de Sperry Rand Corporation (1957). SISTEMA DE PROGRAMACIÓN FLOW-MATIC
Referencias
- Hopper, Grace (1978). Discurso principal, Historia de los lenguajes de programación I. ACM. págs. 16-20. ISBN 0-12-745040-8
- Hopper, Grace (1959). “Programación automática: estado actual y tendencias futuras”, Mecanización de los procesos de pensamiento , Simposio 10 del Laboratorio Nacional de Física. Her Majesty's Stationery Office. pp. 155–200, citado en Knuth, Donald ; Trabb Pardo, Luis (agosto de 1976). El desarrollo temprano de los lenguajes de programación (informe técnico). Departamento de Ciencias de la Computación, Facultad de Humanidades y Ciencias, Universidad de Stanford . Recuperado el 19 de marzo de 2016 .
- Sammet, Jean (1969). Lenguajes de programación: historia y fundamentos . Prentice-Hall. págs. 316-324. ISBN 0-13-729988-5
- Sammet, Jean (1978). «La historia temprana de COBOL», Historia de los lenguajes de programación I. ACM. págs. 199-243. ISBN 0-12-745040-8
- Sperry Rand Corporation (1957) Presentación de un nuevo lenguaje para la programación automática: Univac Flow-Matic
- Remington Rand Univac, una división de Sperry Rand Corporation (1957). SISTEMA DE PROGRAMACIÓN FLOW-MATIC FLOW-MATIC_Programming_System_1958.pdf
- Lenguajes de programación procedimental
- COBOL
- Lenguajes de programación creados en 1955
- Remington Rand
- Software UNIVAC