Образец OpenCOBOL не будет компилироваться

Я использую Ubuntu и пытаюсь изучить COBOL. Я баловался несколькими онлайн-учебниками, но получил противоречивые результаты с некоторыми программами.

Я предпочитаю использовать vim в оболочке bash; ведет меня к OpenCOBOL (cobc)

Есть ли достойный учебник, который научит меня основам? Я работал над этим.

http://www2.southeast.edu/Academics/Faculty/kyang/Cmps401/P2Cobol/Resources/Teach%20Yourself%20Cobol%20In%2021%20Days%20%282nd%20Ed%29.pdf

Моя проблема заключается в том, что при запуске некоторых примеров исходного кода компилятор возвращает ошибку при попытке использовать «*». Пишет, что ожидает конец файла.

Вот мой исходный код:

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
ENVIRONMENT DIVISION.
*comment here
DATA DIVISION.
PROCEDURE DIVISION.
        DISPLAY 'HELLO WORLD!'.
        STOP RUN.

Вот команда, которую я запускаю:

 cobc -x -free -o helloworld helloworld.cbl

Вот ошибка вернулась

helloworld.cbl:4: Error: syntax error, unexpected '*', expecting "end of file"

person user3025281    schedule 05.09.2015    source источник
comment
OpenCOBOL теперь называется GnuCOBOL. OpenCOBOL больше не поддерживается. Если вы найдете сайт GnuCOBOL (в настоящее время на SourceForge), вы можете установить GnuCOBOL 1.1 или, если вы любите приключения, ночной архив. Существует активная площадка для обсуждения всех вопросов, даже самых незначительных.   -  person Bill Woodger    schedule 05.09.2015
comment
И чтобы решить вашу проблему, используйте *> для обозначения комментариев при использовании -free, * в столбце 7 при использовании макетов с фиксированными столбцами.   -  person Bill Woodger    schedule 05.09.2015
comment
Обратите внимание, что документ, который вы читаете, показывает все программы COBOL с использованием традиционного фиксированного формата, в котором первые 7 столбцов состоят из 6 столбцов, в которые вы можете поместить такие вещи, как порядковый номер (что они и делают в своих примерах) и индикатор комментария. (*) в столбце 7. Затем каждая строка фактического кода начинается в столбце 8. Это (немного) объяснено на страницах 20 и 24 документа, который вы читаете. Если вы скопируете их пример, включая порядковые номера, как есть, и опустите параметр -free, он должен скомпилироваться и запуститься.   -  person lurker    schedule 10.09.2015


Ответы (2)


Если вы используете только комментарий '*', вам нужно использовать фиксированную форму Cobol.

Это означает, что все заголовки ваших разделов будут начинаться в «Области A» из столбцов 8–12, а ваши операторы Display и Stop Run будут начинаться в «Области B» из столбцов 12–72.

Или вы можете изменить комментарий на произвольный, используя '*>', и тогда он должен работать.

person Joe Zitzelberger    schedule 06.09.2015

Один из лучших онлайн-ресурсов для обучения COBOL принадлежит Майклу Кофлэну из Университета Лимерика. http://www.csis.ul.ie/cobol/

Большинство, если не все образцы будут работать с GnuCOBOL, если вы измените директивы компилятора на стандартные.

$ SET SOURCEFORMAT"FREE"

становится

>>SOURCE FORMAT IS FREE

и измените все маркеры комментария столбца * на *>. Если вам нравится Vim, то эти исправления комментариев довольно просты

%s/^\*/\*>/gc

С этими простыми изменениями образцы должны компилироваться с помощью cobc. Майкл написал один из лучших учебников для начинающих, доступных в сети. Эм, это личное мнение.

person Brian Tiffin    schedule 07.09.2015