Первая программа на 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 без необходимости виртуальной машины.
- Откройте PowerShell от имени администратора.
- Установка WSL (установит WSL2 и Ubuntu по умолчанию):
wsl --install
- После завершения установки перезагрузите компьютер.
- При первом запуске Ubuntu будет предложено создать имя пользователя и пароль. Запомните их — они понадобятся для работы в терминале.
Шаг 2 — Установка GnuCOBOL в Ubuntu (через WSL)
- Откройте приложение Ubuntu из меню "Пуск".
- Обновление пакетов и установка GnuCOBOL:
sudo apt update
sudo apt install gnucobol -y
- Проверка:
cobc --version
Ожидаемый вывод, например: cobc (GnuCOBOL) 3.1.2.
Шаг 3 — Создание первой программы
Откройте текстовый редактор. Рекомендуется использовать Visual Studio Code с расширением COBOL от Simon Sobisch. Это расширение предоставляет подсветку синтаксиса, автозавершение и навигацию по структуре программы.
- Создайте файл с именем
hello.cob. - Введите следующий код:
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
PROCEDURE DIVISION.
DISPLAY "Hello, World!".
STOP RUN.
Обратите внимание на форматирование: каждая строка начинается с 6 пробелов. Это требование классического COBOL, связанное с тем, что в эпоху перфокарт первые 6 колонок использовались для меток и номеров строк. Современные компиляторы, включая GnuCOBOL, поддерживают свободный формат (-free), но для обучения полезно соблюдать традиционный стиль.
Шаг 4 — Компиляция и запуск
- Сохраните файл
hello.cobв домашней директории WSL (например,/home/ваше_имя/). - В терминале Ubuntu перейдите в эту директорию:
cd ~
- Скомпилируйте программу:
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 found | GnuCOBOL не установлен в WSL |
Что дальше
| Тема | Статья |
|---|---|
| Division, стиль | Основы |
PIC, группы | Типы данных |
PERFORM, параграфы | Параграфы |
| FILE, COPYBOOK | Справочник 711 |
| Чек-лист | Cobol — чек-лист |
Что попробовать
- Скомпилируйте
hello.cobс-freeи сравните с fixed format (6 пробелов). - Добавьте
ACCEPTиDISPLAYдля имени — пример из статьи. - Откройте управление и найдите
IFдля проверки введённого числа.
Мини-проект для закрепления
После hello попробуйте небольшой "мини-реестр":
- вход: имя клиента (
ACCEPT); - поле статуса (
PIC X+88); - ветка
EVALUATEпо статусу; - итоговый
DISPLAYс форматированным текстом.
Так вы за один пример потренируете типы, управление и параграфы, а не изучите темы по отдельности "в вакууме".
Что делать, если программа не запускается
| Проблема | Быстрая проверка | Что исправить |
|---|---|---|
cobc: command not found | which cobc в Ubuntu | Установить gnucobol, перезапустить терминал |
| Ошибка синтаксиса в колонках | Скомпилировать с -free | Либо придерживаться fixed-формата, либо писать свободным |
| Исполняемый файл не запускается | Проверить наличие ./hello после компиляции | Повторить cobc -x hello.cob |
| Непонятная ошибка в тексте | Упростить пример до 5-6 строк | Вернуться к минимальному DISPLAY и добавлять по шагу |
Полезные переходы после первой программы
- понять, почему так устроены division: Основы;
- аккуратно описывать поля и форматы: Типы данных;
- вынести шаги в читаемые блоки: Параграфы;
- взять заготовки для файлов и ошибок: Справочник.
Если нужен общий контекст про код, операторы и циклы без привязки к конкретному языку: Что такое код и как он работает.
В подборках
Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:
Первые шаги (маршрут подборки) — Первая программа на ассемблере, Первая программа на Fortran, Первая программа на С, Первая программа на Lisp, Первая программа на F#, Первая программа на Pascal.