
近年、COBOLエンジニア界隈では、オープンCOBOLと呼ばれるコンパイラが注目されています。
筆者のように、メインフレーム上でCOBOLを扱っているCOBOLエンジニアにとって「オープンCOBOLって何なの?」という疑問は当然のように湧き上がってきます。
名前から察するように、オープンCOBOLとは、オープンな環境で動作する新感覚なCOBOLのことを指しています。(厳密には名称等ややこしいので下記で説明します。)
本記事では、そんなオープンCOBOLの概要について、現役COBOLエンジニアの目線から、従来のCOBOLとの違いと導入メリットを解説していきます。
・オープンCOBOLの概要
・従来のCOBOLとの違いについて
・オープンCOBOLを導入するメリット
オープンCOBOLとは? 基本概念と特徴を解説
メインフレーム上で使用されることの多いCOBOLですが、近年オープンCOBOLが注目されています。
そもそもオープンCOBOLとは、言語そのものではなくコンパイラのことを指しています。
この章では、そんなオープンCOBOLの概要についてご紹介していきます。
オープンCOBOLの概要
オープンCOBOLとは、COBOLプログラムをC言語に変換して、コンパイルや実行を行うオープンソースのCOBOLコンパイラことです。
オープンCOBOLとはCOBOL自体のことを指しているのではなく、コンパイラのことになります。(ここは間違いやすいので注意しましょう)
オープンCOBOLを使用することで、WindowsやLinuxの環境下でコンパイルから実行まで行うことが実現できます。
2002年に初めてリリースされ、そこから数回のバージョンアップを経て、2014年9月にGnuCOBOLに改名しました。
このようなコンパイラは他にも存在しており、NetCOBOLなどが有名です。こちらは富士通が開発しているコンパイラになります。
開発の背景と歴史
オープンCOBOLはどういった目的で開発が進められてきたのでしょうか。
そもそも、従来のIBM-COBOLなどはライセンス費用が高額であることなどの原因から、COBOLをオープン環境で使用したいという需要は非常に多くありました。
しかし、当時のコンパイラや環境では、正確性に欠けるものが大半を占めていました。
そんな中で、日本の開発者 西田圭介さんによってオープンCOBOLが開発されました。
COBOLプログラムをC言語に変換し、LinuxのデフォルトのコンパイラであるGCC(GNU Compiler Collection)で実行する仕組みを採用したことで、それまで壁となっていた課題をクリアしていきました。
その後、2013年に正式にGNUプロジェクトに受け入れられ、GnuCOBOLに名称変更を行いました。
現在の主な利用シーン
オープンCOBOL(現GnuCOBOL)は、主に下記のシーンで利用されています。
- レガシーCOBOLシステムの移行
- 保守や学習・教育目的
従来のCOBOLで運用されている、金融機関・保険会社、政府機関・自治体などのシステムを、オープン環境へ移行した場合に、オープンCOBOL(現GnuCOBOL)が使用されます。
大学や専門学校、企業の研修などの学習の際に使用される事例も多く、実際にライセンスを取得して開発をするわけではないので、学習にも手軽に利用できます。
COBOLエンジニアが不足している現代で、COBOLを学ぶ新しいエンジニアの育成に、大きく貢献していますね。
従来のCOBOLとの違いとは?
ここまでで、オープンCOBOL(現GnuCOBOL)が、COBOL言語そのものではなく、コンパイラを指していることを述べてきました。
上記のことから、従来のCOBOLとは「プログラミング言語」と「コンパイラ」という大きな違いがあることがわかります。
その内容を踏まえて、従来のCOBOLとオープン環境で稼働するCOBOLについて、どのような違いがあるのか詳しい比較について、表で見ていきましょう。
比較項目 | 従来のCOBOL | オープン環境のCOBOL |
---|---|---|
コスト | 高額なライセンス費用が必要(数百万円~数千万円) | 無料(オープンソース) |
実行環境 | メインフレーム、大型サーバー向け(IBM, Fujitsuなど) | クラウド、Linuxサーバーでも稼働 |
対応OS | z/OS, AIX, HP-UX, Windows(限定されたOSのみ対応) | Windows, Linux, macOSなど多様なOSに対応 |
互換性 | 各社独自のCOBOL仕様があり、移植性が低い | IBM COBOLとの高い互換性を持ちつつ、オープン環境で稼働可能 |
開発環境 | 各ベンダー提供の専用開発環境が必要 | 一般的なテキストエディタやVS Code、Eclipse などのIDEが利用可能 |
コンパイル方式 | COBOL専用コンパイラでバイナリを生成 | COBOLコードをC言語に変換し、GCCなどの一般的なコンパイラで実行 |
クラウド対応 | 既存環境のままでは困難(クラウド用の変換が必要) | AWS、Azure、Google Cloud などのクラウド環境で動作可能 |
運用コスト | 専用ハードウェアや保守契約が必要で高コスト | オープンソースのため、導入・運用コストが大幅に削減可能 |
拡張性 | レガシーなシステムに依存し、モダン技術との統合が難しい | 他のプログラム言語(Python, Java, SQLなど)と統合しやすい |
学習コスト | COBOLの専門知識が必要、学習環境が限られる | 無料で学べる環境が豊富(大学、研修、オンライン) |
用途 | 大企業の基幹システム、金融・行政などの業務処理 | 既存COBOL資産の移行・保守、クラウド化、教育用途 |
上記のように、全く違うといっていいほどの大きな違いとなっています。
コストや互換性など、システム移行を検討するための判断材料になるような大きな違いがあり、今後もCOBOLオープン化を進める企業は増えていくのではないでしょうか。
JCLなどの実行用言語を必要としないこともちがいとして挙げられますね。
JCLの解説についても、下記記事でまとめているので、参考にしてみてください。

オープンCOBOLを導入するメリットと活用事例
上記で述べてきたように、オープンCOBOL(現GnuCOBOL)を活用することで、オープン環境でCOBOL開発を行うことができます。
この章では、オープン環境でCOBOLを利用することのメリットや活用事例についてご紹介していきます。
無料で利用できるオープンソースの利点
オープン環境でCOBOLを利用する場合、従来のようにライセンス料金を支払う必要はありません。
無料で使用できるというのが、オープン環境でCOBOLを利用することの最大のメリットと言えるでしょう。
これまでライセンス料金を支払って保守運用されていたシステムを、オープン環境に移行することで、かなりのコスト削減につながります。
柔軟なカスタマイズ性と互換性
オープン環境で使用するCOBOLでは、柔軟なカスタマイズ性と高い互換性がメリットとして挙げられます。
何らかのカスタマイズを実装する際に、従来のメインフレームでは大掛かりな準備を行う必要がありました。それだけでかなりの工数やコストをかけていましたが、オープン環境で使用するCOBOLでは、簡単なカスタマイズであれば、パソコン一台で実装することができます。
また、「従来のメインフレーム上のCOBOLを、COBOLのままオープン環境に移行することができる」ことも大きなメリットになります。大幅なソースコードの修正は不要になりますし、他言語にマイグレーションするよりもかなり少ない工数での実装が可能になります。
まとめ
本記事では、オープンCOBOL(現GnuCOBOL)の概要について、従来のCOBOLとの違いと導入メリットについてをご紹介してきました。
そもそもオープンCOBOL(現GnuCOBOL)とは、コンパイルを実行するコンパイラになります。(COBOL言語そのものを指しているわけではりません)
時代はオープン環境に移り変わってきていますが、まだまだメインフレーム上で稼働するシステムが多いのが現状です。
そのため、今後もマイグレーションが活発に行われ、オープンCOBOL(現GnuCOBOL)やNetCOBOLの利用シーンは増えていくのではないでしょうか。