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 UNIVAC I en Remington Rand bajo la dirección de Grace Hopper de 1955 a 1959, y ayudó a dar forma al desarrollo de COBOL .
Hopper descubrió que los clientes de procesamiento de datos empresariales se sentían incómodos con la notación matemática: [1]
Solía ser profesor de matemáticas. En ese momento descubrí que había un cierto número de estudiantes que no podían aprender matemáticas. Luego me encargaron la tarea de facilitar a los empresarios el uso de nuestras computadoras. Descubrí que no se trataba de si podían aprender matemáticas o no, sino de si lo harían. […] Dijeron: 'Tira esos símbolos. No sé lo que significan, no tengo tiempo para aprender los símbolos'. Sugiero responder a aquellos a quienes les gustaría que las personas que procesan datos utilicen símbolos matemáticos que hagan el primer intento de enseñar esos símbolos a los vicepresidentes, a un coronel o a un almirante. Te aseguro que lo probé.¨
A finales de 1953, propuso que los problemas de procesamiento de datos deberían expresarse utilizando palabras clave en inglés, pero la dirección de Rand consideró la idea inviable. A principios de 1955, ella y su equipo escribieron una especificación para dicho lenguaje de programación e implementaron un prototipo. [2] El compilador FLOW-MATIC estuvo disponible públicamente a principios de 1958 y estuvo sustancialmente completo en 1959. [3]
El sistema de Laning y Zierler fue el primer lenguaje de programación que analizó fórmulas algebraicas. Cuando Hopper tomó conciencia de ese lenguaje en 1954, alteró la trayectoria de su trabajo. [4] FLOW-MATIC fue el primer lenguaje de programación que expresó operaciones utilizando declaraciones similares al inglés . [3] También fue el primer sistema que separó claramente la descripción de los datos de las operaciones sobre ellos. Su lenguaje de definición de datos , a diferencia de sus declaraciones ejecutables, no era parecido al inglés; más bien, las estructuras de datos se definieron completando formularios preimpresos. [3]
FLOW-MATIC y su descendiente directo AIMACO dieron forma a COBOL , [5] que incorporó varios de sus elementos:
INPUT <FILE-NAME> <FILE-LETTER>
; OUTPUT <FILE-NAME> <FILE-LETTER>
; HSP <FILE-LETTER>
. [6]IN
o OF
cláusula).IF END OF DATA (AT END)
cláusula sobre READ
operaciones de fichero.ZERO
(originalmente ZZZ...ZZZ
, donde el número de Z
s indicaba precisión).Computer
(División de Medio Ambiente), Directory
(División de Datos) y Compiler
(División de Procedimientos).Un programa FLOW-MATIC de muestra: [7] [8]
(0 ) ENTRAR ARCHIVO DE INVENTARIO-A ARCHIVO DE PRECIOS-B; SALIDA PRECIO-INV ARCHIVO-C SIN PRECIO-INV ARCHIVADO ; HSP D. (1 ) COMPARE EL PRODUCTO NO (A) CON EL PRODUCTO NO (B); SI ES MAYOR IR A OPERACIÓN 10 ; SI ES IGUAL VAYA A OPERACIÓN 5 ; DE LO CONTRARIO VAYA A OPERACIÓN 2 . (2 ) TRANSFERIR A A D . (3 ) ESCRIBA EL ARTÍCULO D . (4 ) SALTAR A OPERACIÓN 8 . (5 ) TRANSFERIR A A C . (6 ) MOVER PRECIO UNITARIO (B) A PRECIO UNITARIO (C). (7 ) ESCRIBA EL ARTÍCULO C . (8 ) LEER EL ARTÍCULO A ; SI FIN DE DATOS IR A OPERACIÓN 14 . (9 ) SALTAR A OPERACIÓN 1 .(10 ) LEER EL ARTÍCULO B ; SI FIN DE DATOS IR A OPERACIÓN 12 .(11 ) SALTAR A OPERACIÓN 1 .(12 ) CONFIGURE LA OPERACIÓN 9 PARA IR A LA OPERACIÓN 2 .(13 ) SALTAR A OPERACIÓN 2 .(14 ) PRUEBA DEL PRODUCTO NO (B) CONTRA ; SI ES IGUAL VAYA A OPERACIÓN 16 ; DE LO CONTRARIO IR A OPERACIÓN 15 .(15 ) REBOBINAR B .(16 ) EXPEDIENTES DE CIERRE C ; D .(17 ) DETÉNGASE . (FIN)
Notas de muestra
COMPILER
sección. Los campos de registro PRODUCT-NO
y UNIT-PRICE
se habrían definido en la DIRECTORY
sección, que (como se señaló anteriormente) no usaba una sintaxis similar a la del inglés. [9]