世界の『Hello,World!!』から」第2回目はOpenCOBOLでHello,World!!を表示させてみようと思います。
ubuntu1304_COBLO_HELLO
前回のアセンブラは限りなく機械語に近い故に『低級言語』と呼ばれ、JavaやC#等を高級言語とよく呼ばれます。このCOBOLは高級言語の黎明期に登場し、90年代前半まで企業向け基幹システムによく使われていました。

現在は新規開発のシステムで使われることはまずありませんが、継続して基幹システムのバッチプログラムやビジネスロジック、またメインフレームからマイグレーションされたシステムでも継続してCOBOLが使われていたりします。 
小生も一から書いたことはありませんが、稼働中のCOBOLプログラムの保守の仕事を何年間か関わったことがあります。

OpenCOBOL・・オープン実装のCOBOLに需要があるのか?

ちなみに当ブログではOpenCOBOLと書いてますが去年(2013年10月)にGNU Cobolと名称を変えたようです。もともと活発なプロジェクトじゃ無かったことや、誰も注目していなかったせいか未だにOpenCOBOLと検索した方がたくさんの記事がヒットします。

COBOLについは先ほども少し書いたようにメインフレームで動く基幹システムや、メインフレームからサーバへマイグレーションされたシステムでよく使われています。なので各ベンダー特有の機能や方言か色濃く存在します。N製のCOBOLプログラムをI製の環境で動かすことはプログラムの修正無しでは100%不可能と言っていいです。いわゆるベンダーロックというやつです。

なので疑問に思うのがOpenCOBOLを作ったところで新規のシステムがCOBOLを使用するメリットは少ないし、既存のシステムに対してはベンダーロックによって移植性が低いのでOpenCOBOLの需要があるようには思えません。

っとまぁ否定的なことをいっても仕方が無いのでとりあえず環境を構築し、COBOLをコンパイルできるようにしましょう。

UbuntuでOpenCOBOLを導入する

今回は環境を揃えやすいUbuntuでやっていこうと思います。他のLinuxやUNIX系のOSであってもソースコードからコンパイルすれば環境を構築することができますが、手間がかかるので手っ取り早くUbuntuでそれ得てしまいます。

まずUbuntuソフトウェアセンターを起動し、検索窓から『opencobol』と検索します。
ubuntu1304_SOFTWARECenter
検索結果にopen-cobolが表示されるので迷わずインストールしましょう。エラーが発生しなければ環境構築完了です。ソースからコンパイルするより圧倒的に簡単です。便利な時代になりましたね~。

ソースコードを入力しコンパイルを実行!

000100* HELLO.COB GNU Cobol FAQ example
000200 IDENTIFICATION DIVISION.
000300 PROGRAM-ID. hello.
000400 PROCEDURE DIVISION.
000500     DISPLAY "Hello World!".
000600     STOP RUN.
C言語やJavaを慣れ親しんだ人からしたら見慣れない文法に見えると思いますがこれが昔ながらのCOBOLの書き方です。今はobject思考を実装されたcobolでももっとC言語風にかけたりするみたいですが、小生はまずその書き方をしりません。
上記プログラムを入力します。
ubuntu1304_COBLO_HELLO
Ubuntuなので上記のようにVimじゃなくても標準のGUIで動くテキストエディタでも何でも大丈夫です。入力し終わったら名称を「HELLO.COB」として保存し、コンパイルします。
ubuntu1304_COBOL_Compile
コンパイルが成功すれば「HELLO」という実行可能ファイルが生成されるのでそれを実行してあげれば見慣れたメッセージが表示されます。

COBOLの良さは。。。

どの言語にも言えることですが、『Hello,World!』を表示させるだではなかなか言語の特徴や良さを説明することができません。COBOLは過去の(負の)遺産と思われがちですが、変にオブジェクト化されてないので可読性が高いこと、またデータ部であるコピー句を別ファイルにすることでデータの流れが読みやすかったりとシステムを保守運用しやすい言語だと思います。ただ書き方は非常に冗長的でIT業界を牛耳るギークは見向きもしないでしょが。。。。。