Введение
Несмотря на то, что COBOL — язык с историей, он по-прежнему жив и востребован в финансовой и правительственной сферах. Многие до сих пор поддерживают большие кодовые базы и пишут новые программы. Но работать с COBOL хочется удобнее, особенно если хочется простого и понятного инструмента для написания, компиляции и запуска кода.
В этой статье я расскажу о простом IDE для COBOL, который написал на Delphi. Он умеет подсвечивать синтаксис, открывать и сохранять файлы, компилировать через GnuCOBOL, запускать программы с выводом результата и даже отлаживать их с помощью интеграции с GDB.
О проекте
Проект — это простой редактор кода с подсветкой синтаксиса COBOL, поддержкой файлов .cbl
и .cob
, кнопками открытия, сохранения, компиляции и запуска.
Основные возможности:
Подсветка синтаксиса COBOL (собственный хелайтер для
TRichEdit
)Работа с файлами (открытие, сохранение, plain text)
Поиск текста в редакторе с поддержкой
Ctrl+F3
и переходом к следующему вхождению поF3
Компиляция с помощью GnuCOBOL (
cobc
) через вызов консоли из приложенияЗапуск скомпилированного
.exe
в отдельном консольном окнеОтображение лога компиляции в отдельной области редактора
Отладка через интеграцию с GDB: запуск программы под управлением отладчика с возможностью ставить точки останова и пошагово выполнять программу
Техническая реализация
Подсветка синтаксиса
Для подсветки используется класс TCobolHighlighter
, который анализирует текст и меняет цвет и стиль ключевых слов, разделителей и строк. Используется стандартный компонент TRichEdit
с RTF форматом.
Открытие и сохранение файлов
Чтобы избежать проблем с RTF, сохраняется plain text, а открытие происходит с очисткой текущего текста перед загрузкой. Используются стандартные диалоги TOpenDialog
и TSaveDialog
с фильтрами на COBOL-файлы.
Поиск текста
Реализован простой поиск с возможностью поиска выделенного текста через Ctrl+F
и переходом к следующему вхождению по F3
. Это позволяет быстро находить нужные места в коде и комфортно работать с большими файлами.
Компиляция и запуск
Компиляция запускается через CreateProcess
, вызывая cobc
с параметром -x
для компиляции и создания исполняемого файла. Временные файлы .cbl
и .exe
создаются в папке tmp
, расположенной рядом с exe IDE.
После успешной компиляции запускается консоль cmd.exe
с командой открытия скомпилированного .exe
и флагом /K
— чтобы окно не закрывалось автоматически и был виден вывод программы.
Отладка с GDB
Чтобы запускать программу под отладчиком, я добавил кнопку «Отладка», которая:
Компилирует программу с флагом
-g
для генерации отладочной информацииЗапускает GDB в консоли с указанием скомпилированного
.exe
В консоли GDB можно ставить точки останова (break
), запускать программу (run
), пошагово выполнять команды (step
, next
) и просматривать переменные.
Для запуска GDB в графическом окне из Delphi используется вызов через ShellExecute
или CreateProcess
, который открывает консольное окно с интерфейсом отладчика.
Пример работы
Пример минимальной COBOL программы:
IDENTIFICATION DIVISION.
PROGRAM-ID. HelloWorld.
PROCEDURE DIVISION.
DISPLAY "Hello, world!".
STOP RUN.
Этот код можно вставить в редактор, нажать «Скомпилировать» и дождаться запуска программы. В открывшемся консольном окне будет выведена строка "Hello, world!".
Итоги
Получился простой, но вполне рабочий IDE для COBOL с подсветкой, поиском, компиляцией, запуском и базовой отладкой. Это удобный инструмент для изучения языка, быстрого прототипирования и отладки небольших программ.
Где посмотреть и попробовать
Исходники и бинарники проекта доступны на GitHub:
https://github.com/VohminV/COBOL_IDE