Wikipedia

COMTRAN

Also found in: Encyclopedia.
COMTRAN
DeveloperBob Bemer
First appeared1957
Influenced by
FLOW-MATIC
Influenced
COBOL

COMTRAN (COMmercial TRANslator) is an early programming language developed at IBM. It was intended as the business programming equivalent of the scientific programming language FORTRAN (FORmula TRANslator). It served as one of the forerunners to the COBOL language. Developed by Bob Bemer, in 1957, the language was the first to feature the programming language element known as a picture clause.

Contributions to COBOL

Several elements of COMTRAN were incorporated into COBOL:

  • Picture clause.
  • Paragraphing: dividing code into paragraphs (with line breaks not significant).
  • Paragraph names. Assigning names to paragraphs, and jumps (GO TO's) are to a paragraph name, not to a line number.
  • AT END clause on file input operations.
  • Figurative constant HIGH-VALUE.
  • Passing a numeric value (RETURN-CODE) back to the operating system when the program terminates.

Picture clause

A picture clause element defines the length of any given datum, much like a dictionary defines words. In particular a picture clause determines whether the datum contains letters and numbers, and other characteristics of the data, including format, size, and data type.

Sample program

This is a sample COMTRAN program, doing payroll calculations.[1]

 01001 *PROCEDURE    01002 CALL (EMPLOYEE.NUMBER) EMPLOYNO,  01003 (BONDEDUCTION) BONDEDUCT,  01004 (BONDENOMINATION) BONDENOM,  01005 (BONDACCUMULATION) BONDACCUM,  01006 (INSURANCE.PREM) INSPREM,  01007 (RETIREMENT.PREM) RETPREM,  01008 (DEPARTMENT.TOTAL) DPT.  01009 START. OPEN ALL FILES.  01010 GET.MASTER. GET MASTER, AT END DO END.OF.MASTERS.  01011 GET.DETAIL. GET DETAIL, AT END GO TO END.OF.DETAILS.  01012 COMPARE.EMPLOYEE.NUMBERS. GO TO COMPUTE.PAY WHEN DETAIL EMPLOYNO  01013 IS EQUAL TO MASTER EMPLOYNO, LOW.DETAIL WHEN DETAIL  01014 EMPLOYNO IS LESS THAN MASTER EMPLOYNO.  01015 HIGH.DETAIL. MOVE 'M' TO MASTER ERRORCODE, FILE MASTER IN  01016 ERROR.FILE.  01017 GET MASTER, AT END DO END.OF.MASTERS.  01018 GO TO COMPARE.EMPLOYEE.NUMBERS.  02001 LOW.DETAIL. MOVE 'D' TO DETAIL ERRORCODE, FILE DETAIL IN  02002 ERROR.FILE.  02003 GO TO GET.DETAIL.  02004 END.OF.MASTERS. IF DETAIL EMPLOYNO = HIGH.VALUE THEN GO TO  02005 END.OF.RUN OTHERWISE SET MASTER EMPLOYNO = HIGH.VALUE.  02006 END.OF.DETAILS. IF MASTEREMPLOYNO = HIGH.VALUE THEN GO TO  02007 END.OF.RUN OTHERWISE SET DETAIL EMPLOYNO = HIGH.VALUE, GO  02008 TO COMPARE.EMPLOYEE.NUMBERS.  02009 END.OF.RUN. MOVE CORRESPONDING GRAND.TOTAL TO PAYRECORD, FILE  02010 PAYRECORD, CLOSE ALL FILES.  02011 STOP 1234.  02012 COMPUTE.PAY. IF DETAIL HOURS IS GREATER THAN 40 THEN SET DETAIL  02013 GROSS = (DETAIL HOURS - 40) * MASTER RATE * 1.5.  02014 SET DETAIL GROSS = DETAIL GROSS + MASTER RATE * 40, DO  02015 FICA.ROUTINE, DO WITHHOLDING.TAX.ROUTINE.  02016 IF MASTER BONDEDUCT IS NOT EQUAL TO ZERO THEN DO  02017 BOND.ROUTINE.  02018 DO SEARCH FOR INDEX = 1(1)12.  02019 NET. SET PAYRECORD NETPAY = DETAIL GROSS - DETAIL FICA - DETAIL  02020 WHT -DETAIL RETIREMENT - DETAIL INSURANCE - DETAIL  02021 BONDEDUCT. 

References

  1. ^ See the example on page 87 of the IBM F28-8043 Commercial Translator General Reference Manual, June 1960 (pdf, 8.2M)

Further reading

  • IBM's Early Computers, by Charles Bashe, Lyle Johnson, John Palmer, and Emerson Pugh, 1986, MIT Press, ISBN 0-262-02225-7.

External links

This article is copied from an article on Wikipedia® - the free encyclopedia created and edited by its online user community. The text was not checked or edited by anyone on our staff. Although the vast majority of Wikipedia® encyclopedia articles provide accurate and timely information, please do not assume the accuracy of any particular article. This article is distributed under the terms of GNU Free Documentation License.

Copyright © 2003-2025 Farlex, Inc Disclaimer
All content on this website, including dictionary, thesaurus, literature, geography, and other reference data is for informational purposes only. This information should not be considered complete, up to date, and is not intended to be used in place of a visit, consultation, or advice of a legal, medical, or any other professional.