COBOLとは
COBOLは、金融機関などで基幹システムとして使われるイメージがありますが、
- 政府での税金、年金システム
- 医療機関での支払い処理
- 流通業界での在庫管理システム
- 航空・交通分野での予約管理システム
など、幅広い分野で膨大なデータ処理を必要とする場合に使われるそうです。
なんだか大規模な言語でわくわくしませんか?
今回はそんなCOBOLの実行環境を作って、実際にこーどを実行してみたお話です!
環境構築
それでは早速環境構築を始めます。COBOLはコンパイル言語なので、まずバイナリファイルにコンパイルするためのコンパイラをインストールします。
今回はLinux/Unix系のOS
を使用している前提で説明していきます。
Homebrewのインストール
パッケージのインストール
以下のコマンドをターミナルで実行して、Homebrewをインストールします。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
環境変数にPATHを追加する
正しくインストールができていれば、Next steps:
というログが出力されます。
これの、printf
から始まるコマンドとeval
コマンドをコピーしてターミナルで実行します。
これでHomebrew
のインストールが完了しました!
コンパイラをインストールする
COBOLのコンパイラには、GNU COBOL
というものを使用します。
Homebrewから簡単にインストールすることができるのは正直ありがたかったです...
以下のコマンドをターミナルで実行することでインストールできます。
brew install gnu-cobol
これで実行環境のインストールができました!
おためしコードを書いてみる
実行環境が整ったということで、実際にCOBOLのコードを書いていきたいと思います!
COBOLの拡張子は.cob
だそうです
なので、以下のファイルをつくってみました
IDENTIFICATION DIVISION.
PROGRAM-ID. 銀行システム.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 口座残高 PIC 9(9) VALUE 0.
01 ユーザー選択 PIC 9 VALUE 0.
01 取引金額 PIC 9(9).
01 終了フラグ PIC X VALUE 'N'.
PROCEDURE DIVISION.
メイン手続き.
PERFORM UNTIL 終了フラグ = 'Y'
DISPLAY '--- 銀行システム ---'
DISPLAY '1. 預金'
DISPLAY '2. 引き出し'
DISPLAY '3. 残高照会'
DISPLAY '4. 終了'
ACCEPT ユーザー選択
EVALUATE ユーザー選択
WHEN 1
PERFORM 預金手続き
WHEN 2
PERFORM 引き出し手続き
WHEN 3
PERFORM 残高照会手続き
WHEN 4
MOVE 'Y' TO 終了フラグ
WHEN OTHER
DISPLAY '無効な選択です。もう一度選んでください。'
END-EVALUATE
END-PERFORM.
DISPLAY 'ご利用ありがとうございました。'.
STOP RUN.
預金手続き.
DISPLAY '預金額を入力してください: '
ACCEPT 取引金額
ADD 取引金額 TO 口座残高
DISPLAY '預金が完了しました。'.
引き出し手続き.
DISPLAY '引き出し額を入力してください: '
ACCEPT 取引金額
IF 取引金額 > 口座残高
DISPLAY '残高が不足しています。'
ELSE
SUBTRACT 取引金額 FROM 口座残高
DISPLAY '引き出しが完了しました。'
END-IF.
残高照会手続き.
DISPLAY '現在の残高は: ' 口座残高 '円です。'.
このコードは銀行取引のシミュレーション的なことをするコードです!
このコード、左側に変なインデントがありますよね?
実はCOBOLは、カラム位置に意味をもつ形式を持つプログラミング言語らしいです!
具体的には、
- 1~6カラム: 行番号などが書かれる部分
- 7カラム目: コメント行や継続行の指示に使用
- 8~72カラム: コードの記述領域
- 73カラム以降: コメント領域(古い時代のカードパンチ端末に合わせて)
という仕様があるみたいです...
独特な記述方法ですね...
おためしコードを実行してみる
いよいよCOBOLのコードを実行します!
先ほども言いましたが、COBOLはコンパイル言語なので、バイナリファイルにコンパイルします!
コンパイルしよう
以下のコマンドでバイナリファイルにコンパイルできます。
cobc -x -free index.cob
実行すると、index
というファイルが生成されます。
これがバイナリファイルです。
実行してみよう
ではでは、生成したバイナリファイルを実行します。
バイナリなので、そのままバイナリを渡すだけで実行できちゃいます!
./index
これだけで実行できちゃいます!
遊んでみる
このコードでは、ターミナルに1
や2
など数字を入力すると操作することができます!
遊ぶもなにもないですが、、、
こーどをいじいじして楽しみましょう(?)
まとめ
今回は金融機関や政府など、大規模なデータ処理を行うところで使用されている言語「COBOL」に触れてみました!
やはり、昔からある汎用性の高い言語は独特なところがあり、面白いですね!
バイナリファイルを含めたCOBOLのコードはGitHubにてみることができます!
https://github.com/minoru-kinugasa-105/learning-cobol