COMTRAN (COMmercial TRANslator) es un lenguaje de programación temprano desarrollado en IBM . Se concibió como el equivalente de programación empresarial del lenguaje de programación científica FORTRAN (FORmula TRANslator). Sirvió como uno de los precursores del lenguaje COBOL . Desarrollado por Bob Bemer , en 1957, el lenguaje fue el primero en presentar el elemento del lenguaje de programación conocido como cláusula de imagen .
Desarrollador | Bob Bemer |
---|---|
Apareció por primera vez | 1957 |
Influenciado por | |
FLOW-MATIC | |
Influenciado | |
COBOL |
Contribuciones a COBOL
Varios elementos de COMTRAN se incorporaron a COBOL:
- Cláusula de imagen .
- Párrafo: división del código en párrafos (con saltos de línea no significativos).
- Nombres de párrafos. Asignar nombres a los párrafos, y los saltos
GO TO
son a un nombre de párrafo, no a un número de línea. AT END
cláusula sobre operaciones de entrada de archivos.- Constante figurativa
HIGH-VALUE
. - Pasar un valor numérico (
RETURN-CODE
) al sistema operativo cuando el programa termina .
Cláusula de imagen
Un elemento de cláusula de imagen define la longitud de cualquier dato dado, al igual que un diccionario define palabras. En particular, una cláusula de imagen determina si el dato contiene letras y números, y otras características de los datos, incluido el formato, el tamaño y el tipo de datos.
Programa de muestra
Este es un programa COMTRAN de muestra, que realiza cálculos de nómina. [1]
01001 * PROCEDIMIENTO 01002 LLAMADA ( EMPLEADOS . NÚMERO ) EMPLOYNO , 01003 ( BONDEDUCTION ) BONDEDUCT , 01004 ( BONDENOMINATION ) BONDENOM , 01005 ( BONDACCUMULATION ) BONDACCUM , 01006 ( SEGURO . PREM ) INSPREM , 01007 ( RETIREMENT . PREM ) RETPREM , 01008 ( DEPARTAMENTO . TOTAL ) DPT . 01009 INICIO . ABRIR TODOS LOS ARCHIVOS . 01010 OBTENER . MAESTRO . GET MAESTRO , EN FIN DO FIN . DE . MAESTROS . 01011 OBTENER . DETALLE . OBTENGA DETALLE , AL FINAL VAYA AL FINAL . DE . DETALLES . 01012 COMPARAR . EMPLEADO . NÚMEROS . IR A COMPUTAR . PAGA CUANDO EL DETALLE EMPLOYNO 01013 ES IGUAL A MASTER EMPLOYNO , BAJO . DETALLE CUANDO EL DETALLE 01014 EMPLOYNO ES MENOR QUE MAESTRO EMPLOYNO . 01015 ALTA . DETALLE . MUEVA 'M' AL CÓDIGO DE ERROR MAESTRO , ARCHIVO MAESTRO EN 01016 ERROR . ARCHIVO . 01017 GET MAESTRO , EN FIN DO FIN . DE . MAESTROS . 01018 IR A COMPARAR . EMPLEADO . NÚMEROS . 02001 BAJA . DETALLE . MOVER 'D' A DETALLE ERRORCODE , ARCHIVO DETALLE EN 02002 ERROR . ARCHIVO . 02003 IR A OBTENER . DETALLE . 02004 FIN . DE . MAESTROS . SI DETALLE EMPLEADO NO = ALTO . VALOR ENTONCES VAYA A 02005 FIN . DE . CORRER DE OTRO MODO SET MAESTRO EMPLOYNO = ALTO . VALOR . 02006 FIN . DE . DETALLES . SI MASTEREMPLOYNO = HIGH . VALOR ENTONCES VAYA A 02007 FIN . DE . FUNCIONAMIENTO DE OTRO MODO SET DETALLE EMPLOYNO = ALTO . VALOR , VAYA 02008 PARA COMPARAR . EMPLEADO . NÚMEROS . 02009 FIN . DE . EJECUTAR . MOVER GRANDE CORRESPONDIENTE . TOTAL PARA PAYRECORD , ARCHIVO 02010 PAYRECORD , CERRAR TODOS LOS ARCHIVOS . 02011 PARADA 1234 . 02012 COMPUTE . PAGAR . SI LAS HORAS DE DETALLE ES MAYOR QUE 40 ENTONCES ESTABLECE DETALLE 02013 BRUTO = ( HORAS DE DETALLE - 40 ) * TARIFA PRINCIPAL * 1 . 5 . 02014 AJUSTAR DETALLE BRUTO = DETALLE BRUTO + TARIFA PRINCIPAL * 40 , DO 02015 FICA . RUTINA , HACER RETENCIÓN . IMPUESTO . RUTINA . 02016 SI EL BONDEDUCT MAESTRO NO ES IGUAL A CERO ENTONCES HAGA EL BOND 02017 . RUTINA . 02018 DO BÚSQUEDA DE ÍNDICE = 1 ( 1 ) 12 . 02019 NET . SET PAYRECORD NETPAY = DETALLE BRUTO - DETALLE FICA - DETALLE 02020 WHT - DETALLE JUBILACIÓN - DETALLE SEGURO - DETALLE 02021 BONDEDUCT .
Referencias
- ^ Consulte el ejemplo en la página 87 del Manual de referencia general del traductor comercial IBM F28-8043, junio de 1960 (pdf, 8.2M)
Otras lecturas
- IBM's Early Computers , por Charles Bashe, Lyle Johnson, John Palmer y Emerson Pugh, 1986, MIT Press, ISBN 0-262-02225-7 .