Перейти к основному содержимому

Первая программа на COBOL

Разработчику Архитектору Инженеру

Play ITЗагрузка интерактивного демо…


Первая программа на COBOL​

Как читать эту статью​

Идите сверху вниз: WSL и GnuCOBOL → hello.cob → разбор division → cobc -x → вторая программа с ACCEPT. Интерактив выше — быстрая проверка синтаксиса без установки.

Логично после Основ и перед параграфами. Маршрут раздела — в о разделе.


COBOL сегодня - банки и первая программа​

COBOL (Common Business-Oriented Language) до сих пор обслуживает банки, биллинг и гос-системы — читаемый английский синтаксис, фиксированные division, точная арифметика десятичных.

Первая программа — IDENTIFICATION / PROCEDURE, DISPLAY.


Программа на COBOL строится по жесткой иерархической структуре, состоящей из четырех основных разделов — Identification Division, Environment Division, Data Division и Procedure Division. Каждый раздел выполняет свою функцию — идентификация программы, описание среды выполнения, определение данных и описание логики соответственно. Такая структура делает программы предсказуемыми и легко поддерживаемыми, особенно в больших проектах.


Подготовка среды разработки на Windows​

Запуск программы на COBOL возможен на современной операционной системе Windows. Для этого требуется установить компилятор COBOL и, при желании, интегрированную среду разработки (IDE). Наиболее популярным и доступным решением для обучения является GnuCOBOL — свободная реализация компилятора COBOL, совместимая со стандартами ANSI COBOL-85 и частично COBOL-2002. GnuCOBOL преобразует исходный код на COBOL в промежуточный C-код, который затем компилируется с помощью GCC (GNU Compiler Collection).


Шаг 1 — Установка GnuCOBOL через Windows Subsystem for Linux (WSL)​

Самый простой и надежный способ запустить COBOL на Windows — использовать WSL2 (Windows Subsystem for Linux версии 2). Это позволяет запускать полноценное Linux-окружение прямо внутри Windows без необходимости виртуальной машины.

  1. Откройте PowerShell от имени администратора.
  2. Установка WSL (установит WSL2 и Ubuntu по умолчанию):
wsl --install
  1. После завершения установки перезагрузите компьютер.
  2. При первом запуске Ubuntu будет предложено создать имя пользователя и пароль. Запомните их — они понадобятся для работы в терминале.

Шаг 2 — Установка GnuCOBOL в Ubuntu (через WSL)​

  1. Откройте приложение Ubuntu из меню "Пуск".
  2. Обновление пакетов и установка GnuCOBOL:
sudo apt update
sudo apt install gnucobol -y
  1. Проверка:
cobc --version

Ожидаемый вывод, например: cobc (GnuCOBOL) 3.1.2.


Шаг 3 — Создание первой программы​

Откройте текстовый редактор. Рекомендуется использовать Visual Studio Code с расширением COBOL от Simon Sobisch. Это расширение предоставляет подсветку синтаксиса, автозавершение и навигацию по структуре программы.

  1. Создайте файл с именем hello.cob.
  2. Введите следующий код:
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.

PROCEDURE DIVISION.
DISPLAY "Hello, World!".
STOP RUN.

Обратите внимание на форматирование: каждая строка начинается с 6 пробелов. Это требование классического COBOL, связанное с тем, что в эпоху перфокарт первые 6 колонок использовались для меток и номеров строк. Современные компиляторы, включая GnuCOBOL, поддерживают свободный формат (-free), но для обучения полезно соблюдать традиционный стиль.


Шаг 4 — Компиляция и запуск​

  1. Сохраните файл hello.cob в домашней директории WSL (например, /home/ваше_имя/).
  2. В терминале Ubuntu перейдите в эту директорию:
cd ~
  1. Скомпилируйте программу:
cobc -x hello.cob

Флаг -x указывает компилятору создать исполняемый файл (а не объектный модуль). 4. Запустите программу:

./hello

Вывод в терминале:

Hello, World!

Альтернатива — использование Visual Studio Code напрямую на Windows​

Если вы предпочитаете не использовать WSL, можно установить GnuCOBOL через MinGW-w64 или Cygwin, либо собрать среду в Docker с официальным или проверенным образом GnuCOBOL (имя образа и тег лучше взять из документации выбранного репозитория — сторонние образы без сопровождения для учебных проектов не рекомендуются).


Структура программы — пояснение​

Разберем каждую часть программы:

  • IDENTIFICATION DIVISION — обязательный раздел, содержащий метаданные программы.

    • PROGRAM-ID. HELLO-WORLD. — задает имя программы. Это имя должно совпадать с именем файла (без расширения) при некоторых конфигурациях компилятора.
  • PROCEDURE DIVISION — раздел, содержащий исполняемую логику.

    • DISPLAY "Hello, World!". — команда вывода текста в консоль.
    • STOP RUN. — завершает выполнение программы и возвращает управление операционной системе.

В простой программе разделы Environment Division и Data Division можно опустить, так как они не используются. Однако в реальных приложениях они необходимы для описания файлов, устройств ввода-вывода и переменных.


Вторая программа — ввод и переменная​

IDENTIFICATION DIVISION.
PROGRAM-ID. GREET-USER.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NAME PIC X(30).

PROCEDURE DIVISION.
DISPLAY "Enter your name: "
ACCEPT WS-NAME
DISPLAY "Hello, " WS-NAME
STOP RUN.

Скомпилируйте так же: cobc -x greet.cob (или cobc -x -free greet.cob для свободного формата без отступа в 6 колонок).


Выбор IDE​

Для написания COBOL-кода подойдут следующие инструменты:

  • Visual Studio Code с расширением COBOL — лучший выбор для новичков. Поддерживает подсветку, сворачивание блоков, навигацию по разделам, проверку синтаксиса.
  • Notepad++ с пользовательской схемой подсветки COBOL — легковесный вариант без интеграции с компилятором.
  • Eclipse с плагином COBOL Разработка Tools — подходит для крупных проектов, но требует настройки Java-окружения.
  • OpenCOBOL IDE — устаревшая, но рабочая среда под Windows, основанная на Python. Не рекомендуется из-за отсутствия поддержки.

Для обучения достаточно VS Code + WSL + GnuCOBOL. Эта связка обеспечивает стабильность, простоту и соответствие современным практикам разработки.


Частые ошибки​

СимптомПричина
AREA A missingНет division или опечатка в IDENTIFICATION
Колонки 1–6Старшие COBOL требуют метки в 8-й колонке
libcob not foundGnuCOBOL не установлен в WSL

Что дальше​

ТемаСтатья
Division, стильОсновы
PIC, группыТипы данных
PERFORM, параграфыПараграфы
FILE, COPYBOOKСправочник 711
Чек-листCobol — чек-лист

Что попробовать​

  1. Скомпилируйте hello.cob с -free и сравните с fixed format (6 пробелов).
  2. Добавьте ACCEPT и DISPLAY для имени — пример из статьи.
  3. Откройте управление и найдите IF для проверки введённого числа.

Мини-проект для закрепления​

После hello попробуйте небольшой "мини-реестр":

  • вход: имя клиента (ACCEPT);
  • поле статуса (PIC X + 88);
  • ветка EVALUATE по статусу;
  • итоговый DISPLAY с форматированным текстом.

Так вы за один пример потренируете типы, управление и параграфы, а не изучите темы по отдельности "в вакууме".


Что делать, если программа не запускается​

ПроблемаБыстрая проверкаЧто исправить
cobc: command not foundwhich cobc в UbuntuУстановить gnucobol, перезапустить терминал
Ошибка синтаксиса в колонкахСкомпилировать с -freeЛибо придерживаться fixed-формата, либо писать свободным
Исполняемый файл не запускаетсяПроверить наличие ./hello после компиляцииПовторить cobc -x hello.cob
Непонятная ошибка в текстеУпростить пример до 5-6 строкВернуться к минимальному DISPLAY и добавлять по шагу

Полезные переходы после первой программы​

Если нужен общий контекст про код, операторы и циклы без привязки к конкретному языку: Что такое код и как он работает.


В подборках​

Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:

Первые шаги (маршрут подборки) — Первая программа на ассемблере, Первая программа на Fortran, Первая программа на С, Первая программа на Lisp, Первая программа на F#, Первая программа на Pascal.