[COBOLのはじめ方] Part6: ENVIRONMENT DIVISIONの基本

COBOL

こんにちは!COBOL学習のStep 2へようこそ🎉

前回はCOBOLプログラムの骨組みである4つのDIVISION(部)について学びましたね。今回は、その2番目にあたる ENVIRONMENT DIVISION(環境部) の基本的な役割について見ていきましょう。

IDENTIFICATION DIVISION(見出し部)がプログラム自身の情報を書く場所だったのに対し、ENVIRONMENT DIVISIONは、そのプログラムがどのような「環境」で動くのか、特にどのファイルを使うのかといった、プログラムの外の世界との関わりを定義する場所です。

ENVIRONMENT DIVISIONの構造 🧱

ENVIRONMENT DIVISIONは、主に以下の2つのSECTION(節)で構成されます。

  • CONFIGURATION SECTION (構成節): プログラムを動かすコンピュータ環境に関する設定をします 💻
  • INPUT-OUTPUT SECTION (入出力節): プログラムが利用するファイルに関する設定をします 📄

必ずしも両方の節が必要なわけではありません。特にファイルを使わない簡単なプログラムでは、ENVIRONMENT DIVISION自体を省略することもあります。

CONFIGURATION SECTION (構成節) ⚙️

CONFIGURATION SECTIONでは、プログラムをコンパイル(翻訳)するコンピュータと、実行するコンピュータの種類を指定します。

  • SOURCE-COMPUTER.: プログラムをコンパイルするコンピュータ名を記述します。
  • OBJECT-COMPUTER.: プログラムを実行するコンピュータ名を記述します。

最近の環境では、コンパイルと実行を同じコンピュータで行うことが多いため、これらの記述は形式的なものとなり、省略されることもあります。

また、この節には SPECIAL-NAMES. という段落もあり、通貨記号(例:`¥`)の指定や、小数点としてカンマを使う(ヨーロッパなどで見られる)といった、特殊な環境設定を行うこともできますが、まずは基本的な役割だけ覚えておきましょう。

記述例:

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. FUJITSU-GS.  *> コンパイルするコンピュータ
OBJECT-COMPUTER. FUJITSU-GS.  *> 実行するコンピュータ

INPUT-OUTPUT SECTION (入出力節) ↔️

INPUT-OUTPUT SECTIONは、プログラムがデータを読み書きするために使用するファイルを定義する、非常に重要な部分です。

このセクションの中心となるのが FILE-CONTROL 段落です。ここでは、プログラムの中で使う「論理ファイル名」と、実際にコンピュータ上に存在する「物理ファイル名」を結びつけます。

  • SELECT句: プログラム内でファイルを参照するときの名前(論理ファイル名)を定義します。
  • ASSIGN句: SELECT句で定義した論理ファイル名を、実際のファイル(物理ファイル)に対応付けます。この物理ファイル名は、実行環境(JCLなど)で指定されることが多いです。

他にも、ファイルの編成(データの並び方、例えば`ORGANIZATION IS SEQUENTIAL`(順編成)など)やアクセスモード(読み書きの方法)を指定しますが、これらはStep 4のファイル処理で詳しく学びます。

記述例 (順編成ファイルの場合):

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT INPUT-FILE ASSIGN TO "INFILE".  *> 論理名INPUT-FILEを物理名"INFILE"に対応付け
    SELECT OUTPUT-FILE ASSIGN TO "OUTFILE". *> 論理名OUTPUT-FILEを物理名"OUTFILE"に対応付け
*   ORGANIZATION IS SEQUENTIAL などもここに記述するが、詳細はStep 4で!

この例では、プログラム中では `INPUT-FILE` という名前で `INFILE` という物理ファイルを、`OUTPUT-FILE` という名前で `OUTFILE` という物理ファイルを扱えるようになります。

INPUT-OUTPUT SECTIONには、他に I-O-CONTROL 段落もありますが、これはより高度なファイル制御(例えば、複数のファイルで記憶領域を共有するなど)に使われるため、初学者の段階ではあまり意識する必要はありません。

まとめ ✨

今回はENVIRONMENT DIVISIONの基本的な役割について学びました。

  • ENVIRONMENT DIVISIONは、プログラムと外部環境(コンピュータ、ファイルなど)を結びつける役割を持つ。
  • CONFIGURATION SECTIONで、実行環境(コンピュータの種類など)を定義する(省略されることも多い)。
  • INPUT-OUTPUT SECTIONFILE-CONTROL段落で、プログラムで使うファイル(論理ファイル名)と実際のファイル(物理ファイル名)をSELECT句ASSIGN句で対応付ける。

特にINPUT-OUTPUT SECTIONは、COBOLが得意とするファイル処理の基礎となる部分です。ここで定義したファイルを実際に操作するのは、PROCEDURE DIVISIONやDATA DIVISIONの役割になります。

次のステップでは、DATA DIVISIONでプログラムが扱うデータを定義する方法を学びます。お楽しみに!🚀

参考情報 📚

コメント

タイトルとURLをコピーしました