SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

COBOLプログラミング

COBOL言語をLinux環境で動かす

OpenCOBOLのコンパイル実行環境構築と簡単なCOBOLプログラムの作成


  • X ポスト
  • このエントリーをはてなブックマークに追加

COBOLソースのコンパイルおよび実行

 ここまでで、/usr/local/bin配下にコンパイラ、/usr/local/lib配下にライブラリが配置されました。早速、サンプルプログラムをコンパイルし、実行してみましょう。

サンプルプログラム

 月並みではありますが、"Hello World"を表示するプログラムを作成します。

Hello World表示サンプルプログラム
123456*890123456789012345678901234567890123456789012345678901234567890
       IDENTIFICATION DIVISION.
       PROGRAM-ID.    SAMPLE1.
       AUTHOR. Eiichi Fuse.        
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
         77 CMD PIC 9.
       PROCEDURE DIVISION.
       PG-TOP.
       DISPLAY "Hello World".
       ACCEPT CMD.
       IF CMD = 0 THEN GO TO PG-TOP.
       STOP RUN.

 単純に"Hello World"を表示するだけでは面白くないので、表示後に"0"を入力した場合は再度表示するようにしてみました。

 1行目はカラム数を入れました。7桁目を"*"とするとコメント行となります。通常、1桁~6桁は行番号を入れます。ソートされている必要はありません。COBOLに限らないですが、過去にはソースやデータを紙パンチカードで作成しており、誤って紙パンチカードの順序が変わったことがありました。そのため順序番号を付加し、紙パンチカードを投入時にソートする処理を加えていました。

 このソースをターゲットマシンの適当なディレクトリにsample1.cobで作成してください。

コンパイル方法

 OpenCOBOLにはさまざまなコンパイルオプションがあります。詳細は、--helpスイッチで表示されます。今回は、単一ソース、単純なプログラムですので、直接実行ファイルを出力する方法とします。

OpenCOBOLのコンパイル
/usr/local/bin/cobc -x ソースファイル名

 今回は、ソースファイル名が"sample1.cob"となっているので、コンパイル実行後、エラーがなければ同一のディレクトリに"sample1"という実行ファイルが作成されているはずです。

sample1のコンパイル結果
[e-fuse@]$ ls -l
合計 1044
-rwxr-xr-x   1 e-fuse e-fuse  10301  3月  3 15:33 sample1
-rw-r--r--   1 e-fuse e-fuse    422  3月  3 15:32 sample1.cob
[e-fuse@]$

 用途別によるコンパイルスイッチの使用方法については、稿を改めて紹介します。

実行

 今回作成したプログラムをそのままコピー&ペーストしてCOBOLソースを作成してコンパイルすれば、コンパイルエラーは無く、すんなりと実行ファイルが作成されているはずです。それでは、早速実行してみましょう。

sample1の実行
[e-fuse@]$ ./sample1
[e-fuse@]$ ./sample1: error while loading shared libraries: 
libcob.so.1: cannot open shared object file: No such file or directory

 いきなりエラーが出てしまいました。

 これは、sample1実行時にライブラリが見つからなかったというエラー表示になります。

 通常ライブラリは"/usr/lib"に格納されています。COBOLライブラリは"/usr/local/lib"配下に格納されているため、実行シェルにPATHを設定するか、"/usr/lib"配下にリンクを設定する必要があります。用途に応じて設定してください。

PATHの設定
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH
リンクの設定
ln -s /usr/local/lib/libcob.so.1.0.0 /usr/lib/libcob.so.1
ln -s /usr/local/lib/libcob.so.1.0.0 /usr/lib/libcob.so

 COBOLライブラリを設定後、改めてsample1を実行してみましょう。

ライブラリ設定後sample1の実行例
[e-fuse@]$ ./sample1
Hello World
0
Hello World
1
[e-fuse@]$

 "Hello World"が表示され、コマンド入力待ちとなったはずです。ここで、0を入力し、Reterunキーを押してください。すると、また"Hello World"が表示されました。

 0以外を入力し、Reterunキーを押すと、コマンドプロンプトが表示されます。意図どおりの実行結果になりました。

まとめ

 今回はLinux環境でOpenCOBOL開発環境を構築しました。冒頭にも記述しましたがUNIX互換環境であれば、同様の手順で開発環境を構築できます。ぜひ挑戦してみてください。

 次回は、構築した環境でいくつかのサンプルプログラムを作成し、COBOLプログラムの基本的な文法について解説します。

参考資料およびURL

  1. SourceForge (OpenCOBOL)…ソースの取得先です。
  2. OpenCOBOL日本公式サイト
  3. COBOLコンソーシアム

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
COBOLプログラミング連載記事一覧

もっと読む

この記事の著者

布施 榮一(ふせえいいち)

布施加工有限会社 代表取締役布施加工って何しているとこなの??実はIT屋さんだったりします(笑)Linux基盤各種サービスの設計構築およびコンサルティングをやっています。ブログもちょこちょこっと書いてます。Alinous-Core 正規販売代理店

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2291 2008/06/04 13:31

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング