В чем проблема с преобразованием COBOL в C и последующей компиляцией? Пока это работает. Ранние среды C ++ были реализованы таким же образом: они конвертировали C ++ в C, а затем вызывали компилятор C.
Преобразование COBOL в C позволяет им использовать абстракции высокого уровня, которые реализуют эквиваленты COBOL в C. Они могут использовать стандартные библиотеки C, а также преобразовывать код доступа к данным COBOL в вызовы широко доступных баз данных, таких как MySQL. И, наконец, преобразование в C и последующая компиляция позволяют использовать огромное количество усилий по разработке кода. Если бы они попытались скомпилировать непосредственно в объектный код, они должны были бы сгенерировать промежуточный код, ожидаемый подсистемой компилятора GNU, или они должны были бы перейти непосредственно к объектному коду. Любой из них будет намного сложнее, чем преобразование в C, а это означает, что вероятность ошибок в компиляторе COBOL будет намного выше.
С того места, где я сижу, я бы сказал, что OpenCOBOL стоит изучить. Обратите внимание, что они говорят, что реализуют «существенную часть стандартов COBOL 85 и COBOL 2002». Вы, вероятно, хотите убедиться, что они реализуют необходимые вам части.
Я бы также посоветовал вам взглянуть на TinyCOBOL .