Codificación rápida

Lenguaje de programación de alto nivel

Codificación rápida
Paradigmaestructurado , genérico
Diseñado porJuan Backus
ReveladorJohn Backus y IBM
Apareció por primera vez1953 ; hace 71 años ( 1953 )
Disciplina de mecanografíafuerte , estático , manifiesto
Influenciado por
Lenguaje ensamblador , código máquina
Influenciado
Fortran , ALGOL 58 , BASIC , C , PL/I , PACT I , PAPERAS , Ratfor

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 SSEC de IBM 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. Proporcionaba pseudoinstrucciones para funciones matemáticas comunes: logaritmos, exponenciación y operaciones trigonométricas. El software residente analizaba las pseudoinstrucciones una por una y llamaba a la subrutina apropiada. 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 la codificación rápida era normalmente de diez a veinte veces el del código de máquina. [4] El intérprete ocupaba 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 del 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 su frustración por la naturaleza lenta de la programación y depuración del ensamblaje, 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 el "escalamiento" o la necesidad de seguir religiosamente el punto decimal en las operaciones aritméticas. [5]

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

Sintaxis y semántica

Los programas de codificación rápida se organizan como una serie de instrucciones, cada una de las cuales se almacena en la memoria como una sola 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 se pueden modificar según la naturaleza de la operación. Las operaciones matemáticas incluyen funciones básicas de aritmética, raíz cuadrada y trigonometría. Las operaciones lógicas incluyen la funcionalidad para leer, escribir, saltar y rebobinar la cinta magnética , así como operaciones para interactuar con los datos almacenados en la memoria del tambor . La segunda operación (OP 2 ) es una operación lógica que tiene la 1 dirección de memoria asociada restante. Las operaciones lógicas permiten que las instrucciones se ejecuten en un orden diferente al que se escriben, lo que permite implementaciones de gotos, condicionales, bucles y otros comportamientos avanzados. [6]

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

  • AGREGAR
  • SUB
  • Añadir a la lista
  • ABADD
  • SUBABORADOR
  • ABSUB
  • MPY
  • NGMPY
  • DIV
  • DIVNG
  • raíz cuadrada
  • SENO
  • ARTÁN
  • EXP
  • En
  • MOVER
  • WRTPJ
  • WRTPK
  • WRTP
  • WRTP
  • RFTPJ
  • RFTPL
  • RFTPM
  • RBTPJ
  • RBTPK
  • RBTPL
  • RBTPM
  • Tribunal de Justicia de San Francisco
  • SFTPK
  • SFTP
  • SFTP
  • SBTPJ
  • SBTPK
  • SBTP
  • SBTP
  • RWTPJ
  • RWTPK
  • RWTPL
  • RWTPM
  • EFTPJ
  • EFTPK
  • EFTPL
  • EFTPM
  • Programa de Desarrollo Regional de la República Popular de China (WRDRP)
  • WRDRQ
  • Programa de Reformas de Desarrollo de RF
  • Solicitud de reembolso de impuestos
  • IMPRIMIR
  • EXPULSAR
  • No, no.

Palabras clave lógicas reservadas [6]

  • ES
  • TRPL
  • TRMN
  • TRZ
  • SNTP
  • SNTRQ
  • Agradecimiento especial
  • TIB
  • TIC
  • TIBC
  • TIAC
  • TIABC
  • TDA
  • TDC
  • TDAB
  • TDBC
  • TDAC
  • TDABC
  • SETRA
  • Conjunto de reglas
  • Conjunto de reglas
  • SKRA
  • SKRB
  • CRSC
  • RADDA
  • Base de datos de datos aleatoria
  • Centro de desarrollo regional
  • Radddd
  • ADD (Agregar al carrito)
  • BDAN
  • ADDC
  • AGREGAR
  • SUBA
  • SUBB
  • Subc
  • Subdirección
  • ESTADIO
  • decodificador
  • Código de conducta estándar
  • ETS
  • SALTAR
  • PRCH
  • Puntada
  • TEDH

Véase también

Notas

  1. ^ Significado simbólico y orientado a la expresividad del lenguaje natural en oposició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 descubrimientos de 15 grandes científicos informáticos . Nueva York, EE. UU.: Copernicus , Springer-Verlag New York, Inc. ISBN  0-387-98269-8. Número de serie LCCN  98-16911. Número de serie 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.: Computer History Museum . 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). Sistemas IBM 360 y primeros 370. MIT Press . pág. 38. ISBN. 0-262-16123-0.
  5. ^ ab Bashe, Charles; Johnson, Lyle; Palmer, John; Pugh, Emerson (17 de marzo de 1986). Las primeras computadoras de IBM. MIT Press. págs. 332–338. ISBN 9780262523936. Consultado el 25 de agosto de 2023 .
  6. ^ abc Sistema de codificación de velocidad IBM para las máquinas de procesamiento electrónico de datos tipo 701 (PDF) . Nueva York, EE. UU.: International Business Machines Corporation . 1954 [1953-09-10]. Formulario 24-6059-0 (5-54:2M-W). Archivado (PDF) desde el original el 2022-07-04 . Consultado el 2022-07-04 .

Lectura adicional

  • Sistema de codificación de velocidad IBM para las máquinas de procesamiento electrónico de datos tipo 701 (PDF) . Nueva York, EE. UU.: International Business Machines Corporation . 1954 [1953-09-10]. Formulario 24-6059-0 (5-54:2M-W). Archivado (PDF) desde el original el 2022-07-04 . Consultado el 2022-07-04 .(48 páginas)
  • Backus, John W. (enero de 1954). "El sistema de codificación rápida IBM 701" (PDF) . Journal of the ACM . 1 (1): 4–6. Archivado (PDF) desde el original el 2022-05-16 . Consultado el 2022-07-04 .
  • Backus, John W. ; Harlan, Herrick (13–14 de mayo de 1954). «IBM 701 Speedcoding and Other Automatic-programming Systems». Actas del Simposio sobre Programación Automática para Computadoras Digitales . Washington DC, EE. UU.: The Office of Naval Research . págs. 106–113 . Consultado el 4 de julio de 2022 .
  • Sammet, Jean E. (1969). Lenguajes de programación: historia y fundamentos . Prentice-Hall .
Retrieved from "https://en.wikipedia.org/w/index.php?title=Speedcoding&oldid=1245237258"