stringtranslate.com

Codificación rápida

Speedcoding , Speedcode o SpeedCo fue el primer lenguaje de programación de alto nivel [a] creado para una computadora IBM . [1] El lenguaje fue desarrollado por John W. Backus en 1953 para el IBM 701 para soportar el cálculo con números de punto flotante . [2]

La idea surgió de la dificultad de programar la máquina IBM SSEC cuando Backus fue contratado para calcular posiciones astronómicas a principios de 1950. [3] El sistema de codificación rápida era un intérprete y se centraba en la facilidad de uso a expensas de los recursos del sistema. Proporcionó pseudoinstrucciones para funciones matemáticas comunes: logaritmos, exponenciación y operaciones trigonométricas. El software residente analizó las pseudoinstrucciones una por una y llamó a la subrutina adecuada. La codificación rápida también fue la primera implementación de operaciones de entrada/salida decimal. Aunque reducía sustancialmente el esfuerzo de escribir muchos trabajos, el tiempo de ejecución de un programa escrito con la ayuda de Speedcoding solía ser de diez a veinte veces mayor que el del código de máquina. [4] El intérprete tomó 310 palabras de memoria, aproximadamente el 30% de la memoria disponible en un 701. [1]

Historia y desarrollo

En agosto de 1952, varias docenas de ingenieros de IBM y clientes de IBM 701 se reunieron en Poughkeepsie, Nueva York, para intercambiar ideas y mejores prácticas sobre la programación de las nuevas máquinas en ensamblaje. Varios asistentes expresaron frustración con la naturaleza lenta de la programación y depuración en ensamblador, y cuestionaron la utilidad del 701 en aplicaciones donde se necesitaban soluciones a los problemas rápidamente, o cuando el valor de una solución justificaba el gasto de tiempo de cálculo pero no el costo de programación. y depuración. Los asistentes también se quejaron de problemas con la "escala" o de la necesidad de seguir religiosamente el punto decimal en las operaciones aritméticas. [5]

John W. Sheldon, supervisor de la Oficina de Computación Técnica de IBM que asistió a la reunión, y otros sintieron que un sistema de programación "interpretativo" que utilizara operaciones de punto flotante era la mejor solución a este problema. Sheldon le pidió a John Backus, quien anteriormente había trabajado en un traductor de código CPC a SSEC , que supervisara la creación de un nuevo lenguaje de programación interpretativo de punto flotante para uso interno de IBM. El propio Backus había expresado previamente interés en mejorar los métodos de programación y observó que los costos de computación se dividían aproximadamente en partes iguales entre el costo de la computación y el costo del personal de programación, y que el gasto adicional de las pruebas hacía que la mano de obra fuera un gasto considerablemente mayor. A partir de 1953, Backus y cinco colegas diseñaron este nuevo lenguaje y lo llamaron "Speedcoding", donde su uso pronto se extendió fuera de IBM a las instalaciones del sistema 701 de los clientes. [5]

Sintaxis y Semántica

Los programas de codificación rápida están organizados como una serie de instrucciones, cada una de las cuales se almacena en la memoria como una única palabra de datos de 72 bits. Una instrucción generalmente consta de dos operaciones (OP 1 y OP 2 ) y 4 direcciones de memoria. La primera operación (OP 1 ) es una operación matemática o de entrada/salida que tiene 3 direcciones de memoria asociadas, una o más de las cuales pueden modificarse dependiendo de la naturaleza de la operación. Las operaciones matemáticas incluyen funciones aritméticas básicas, raíz cuadrada y trigonometría. Las operaciones lógicas incluyen funcionalidad para leer, escribir, saltar y rebobinar cinta magnética , así como operaciones para interactuar con datos almacenados en la memoria del tambor . La segunda operación (OP 2 ) es una operación lógica que tiene la dirección de memoria asociada restante. Las operaciones lógicas permiten que las instrucciones se ejecuten en un orden diferente al que fueron escritas, lo que permite implementar gotos, condicionales, bucles y otros comportamientos avanzados. [6]

Palabras clave reservadas de operaciones aritméticas y de entrada/salida [6]

  • AGREGAR
  • SUB
  • ADDAB
  • ABAD
  • SUBAB
  • ABSUB
  • MPY
  • NGMPY
  • DIV
  • NGDIV
  • CUADRADO
  • SENO
  • ARTÁN
  • EXP
  • LN
  • MOVER
  • WRTPJ
  • WRTPK
  • WRTPL
  • WRTPM
  • RFTPJ
  • RFTPL
  • RFTPM
  • RBTPJ
  • RBTPK
  • RBTPL
  • RBTPM
  • SFTPJ
  • SFTPK
  • SFTPL
  • SFTPM
  • SBTPJ
  • SBTPK
  • SBTPL
  • SBTPM
  • RWTPJ
  • RWTPK
  • RWTPL
  • RWTPM
  • EFTPJ
  • EFTPK
  • EFTPL
  • EFTPM
  • WRDRP
  • WRDRQ
  • RFDRP
  • RFDRQ
  • IMPRIMIR
  • EXPULSAR
  • NOOP

Palabras clave lógicas reservadas [6]

  • TR
  • TRPL
  • TRMN
  • TRZ
  • SNTRP
  • SNTRQ
  • tia
  • TIB
  • TIC
  • TIBC
  • TIAC
  • TIAB
  • TDA
  • CDC
  • TDAB
  • TDBC
  • TDAC
  • TDABC
  • SETRA
  • SETRB
  • SETRC
  • SKRA
  • SKRB
  • SKRC
  • RADDA
  • RADDB
  • RADDC
  • RADD
  • AGREGAR
  • ADDB
  • ADDC
  • AGREGAR
  • SUBA
  • SUBB
  • SUBC
  • SUBD
  • STA
  • STB
  • STC
  • ETS
  • SALTAR
  • PRCH
  • PUNTO
  • TEDH

Ver también

Notas

  1. ^ Significado simbólico y dirigido a la expresividad del lenguaje natural en contraposición a la codificación orientada a instrucciones de máquina o hardware.

Referencias

  1. ^ ab Allen, Frances "Fran" Elizabeth (septiembre de 1981). "La historia de la tecnología de procesadores de lenguaje en IBM". Revista IBM de investigación y desarrollo . 25 (5): 535–548. doi :10.1147/rd.255.0535.
  2. ^ Shasha, Dennis Elliot ; Lazere, Cathy (1998). Fuera de sus mentes: las vidas y los descubrimientos de 15 grandes informáticos . Nueva York, Estados Unidos: Copernicus , Springer-Verlag New York, Inc. ISBN  0-387-98269-8. LCCN  98-16911. GIRAR 10693423.
  3. ^ Backus, John W. (5 de septiembre de 2006). Booch, Grady (ed.). "Historia oral de John Backus" (PDF) . Número de referencia: X3715.2007 (Entrevista). Ashland, Oregón, EE.UU.: Museo de Historia de la Computación . Archivado (PDF) desde el original el 8 de abril de 2022 . Consultado el 23 de abril de 2011 .(42 páginas)
  4. ^ Pugh, Emerson W.; Johnson, Lyle R.; Palmer, John H. (1991). "Los sistemas 360 y 370 tempranos de IBM" . Prensa del MIT . pag. 38.ISBN 0-262-16123-0.
  5. ^ ab Bashe, Charles; Johnson, Lyle; Palmero, Juan; Pugh, Emerson (17 de marzo de 1986). Las primeras computadoras de IBM. Prensa del MIT. págs. 332–338. ISBN 9780262523936. Consultado el 25 de agosto de 2023 .
  6. ^ Sistema de codificación rápida de IBM abc para las máquinas de procesamiento de datos electrónicos tipo 701 (PDF) . Nueva York, Estados Unidos: International Business Machines Corporation . 1954 [10 de septiembre de 1953]. Formulario 24-6059-0 (5-54:2M-W). Archivado (PDF) desde el original el 4 de julio de 2022 . Consultado el 4 de julio de 2022 .

Lectura adicional