COMTRAN (коммерческий транслятор) - один из первых языков программирования, разработанный в IBM . Он был задуман как эквивалент делового программирования научного языка программирования FORTRAN (FORmula TRANslator). Он послужил одним из предшественников языка COBOL . Этот язык, разработанный Бобом Бемером в 1957 году, первым представил элемент языка программирования, известный как предложение изображения .
Разработчик | Боб Бемер |
---|---|
Впервые появился | 1957 г. |
Под влиянием | |
ПОТОК-МАТИЧЕСКИЙ | |
Под влиянием | |
КОБОЛ |
Вклад в COBOL
В COBOL были включены несколько элементов COMTRAN:
- Пункт о картинках .
- Разбиение на абзацы: разделение кода на абзацы (разрывы строк не значимы).
- Названия абзацев. Присвоение имен абзацам и переходы
GO TO
относятся к имени абзаца, а не к номеру строки. AT END
пункт об операциях ввода файла.- Образная константа
HIGH-VALUE
. - Передача числовое значение (
RETURN-CODE
) обратно в операционной системе , когда программа завершает .
Положение об изображении
Элемент предложения изображения определяет длину любого заданного элемента данных, так же как словарь определяет слова. В частности, предложение изображения определяет, содержат ли данные буквы и числа, а также другие характеристики данных, включая формат, размер и тип данных.
Пример программы
Это пример программы COMTRAN, выполняющей расчет заработной платы. [1]
01001 * ПРОЦЕДУРА 01002 ВЫЗОВА ( СЛУЖАЩИЙ . НОМЕР ) EMPLOYNO , 01003 ( BONDEDUCTION ) BONDEDUCT , 01004 ( BONDENOMINATION ) BONDENOM , 01005 ( BONDACCUMULATION ) BONDACCUM , 01006 ( СТРАХОВОЙ . ПРЕМ ) INSPREM , 01007 ( ПЕНСИОННОЕ . ПРЕМ ) RETPREM , 01008 ( ОТДЕЛ . ИТОГО ) DPT . 01009 СТАРТ . ОТКРЫТЬ ВСЕ ФАЙЛЫ . 01010 ПОЛУЧИТЬ . МАСТЕР . GET MASTER , AT END DO END . ОФ . МАСТЕРА . 01011 ПОЛУЧИТЬ . ДЕТАЛИ . GET ДЕТАЛЬ , AT END GO TO END . ОФ . ДЕТАЛИ . 01012 СРАВНИТЬ . СОТРУДНИК . ЧИСЛА . GO TO COMPUTE . ОПЛАТА ПРИ ДЕТАЛЬ EMPLOYNO 01013 IS EQUAL TO MASTER EMPLOYNO , LOW . ДЕТАЛЬ КОГДА ДЕТАЛЬ 01014 EMPLOYNO IS МЕНЬШЕ ЧЕМ MASTER EMPLOYNO . 01015 ВЫСОКИЙ . ДЕТАЛИ . MOVE 'M' TO MASTER ERRORCODE , FILE MASTER IN 01016 ERROR . ФАЙЛ . 01017 GET MASTER , AT END DO END . ОФ . МАСТЕРА . 01018 GO TO СРАВНИТЬ . СОТРУДНИК . ЧИСЛА . 02001 НИЗКИЙ . ДЕТАЛИ . MOVE 'D' TO ПОДРОБНО ERRORCODE , FILE ПОДРОБНО В 02002 ОШИБКИ . ФАЙЛ . 02003 GO TO GET . ДЕТАЛИ . 02004 КОНЕЦ . ОФ . МАСТЕРА . ЕСЛИ ДЕТАЛЬ EMPLOYNO = ВЫСОКИЙ . VALUE THEN GO TO 02005 END . ОФ . RUN ИНАЧЕ SET MASTER EMPLOYNO = ВЫСОКИЙ . ЗНАЧЕНИЕ . 02006 КОНЕЦ . ОФ . ДЕТАЛИ . ЕСЛИ МАСТЕРЕМПЛОЙНО = ВЫСОКИЙ . VALUE THEN GO TO 02007 END . ОФ . RUN ИНАЧЕ SET ДЕТАЛЬ EMPLOYNO = ВЫСОКИЙ . VALUE , GO 02008 TO СРАВНИТЬ . СОТРУДНИК . ЧИСЛА . 02009 КОНЕЦ . ОФ . БЕГ . ПЕРЕМЕСТИТЕ СООТВЕТСТВУЮЩИЙ GRAND . ИТОГО ПО PAYRECORD , FILE 02010 PAYRECORD , CLOSE ALL FILES . 02011 СТОП 1234 . 02012 КОМПЬЮТЕР . ОПЛАТИТЬ . ЕСЛИ ПОДРОБНЫЕ ЧАСЫ IS GREATER КРОМЕ 40 THEN SET ДЕТАЛИ 02013 GROSS = ( ПОДРОБНЫЕ ЧАСЫ - 40 ) * MASTER RATE * 1 . 5 . 02014 SET DETAIL GROSS = DETAIL GROSS + MASTER RATE * 40 , DO 02015 FICA . ОБЫЧНЫЙ , СДЕЛАЙТЕ УДЕРЖАНИЕ . НАЛОГ . ОБЫЧНЫЙ . 02016 IF MASTER BONDEDUCT IS NOT EQUAL TO ZERO THEN DO 02017 BOND . ОБЫЧНЫЙ . 02018 DO ПОИСК ПО ИНДЕКС = 1 ( 1 ) 12 . 02019 НЕТТО . SET PAYRECORD NetPay = ДЕТАЛЬ ГРОСС - ДЕТАЛЬ FICA - ДЕТАЛЬ 02020 WHT - ДЕТАЛЬ ПЕНСИЯ - ДЕТАЛЬ СТРАХОВАНИЕ - ДЕТАЛЬ 02021 BONDEDUCT .
Рекомендации
- ^ См. Пример на странице 87 Общего справочного руководства коммерческого переводчика IBM F28-8043, июнь 1960 г. (pdf, 8.2M)
дальнейшее чтение
- Первые компьютеры IBM , Чарльз Баш, Лайл Джонсон, Джон Палмер и Эмерсон Пью, 1986, MIT Press, ISBN 0-262-02225-7 .