COBOL言語のコーディングルールと制約事項とは?|基礎ガイド

COBOL(コボル)言語で最初に押さえておくべきコーディングルールと制約事項とは

基礎-コーディングルール-イメージ

COBOL(コボル)言語のプログラム構成

プログラムの書き方はプログラミング言語によって異なるため、まず最初に基本的なコーディングルールを押さえる事がそのプログラミング言語の理解には重要になってきます。一度コーディングルールを押さえておけば、いくつかのプログラムを作成する時も、他のプログラミング言語の学習を始める時にも、ポイントを比較しながら効率的に学習する事ができるため、ここでしっかりその基本を理解しておきましょう。

では、基本的なルールとして、まず「COBOL(コボル)言語のプログラム構成」から押さえていきましょう。

COBOL(コボル)言語のプログラム構成:

COBOL(コボル)プログラムは、大きく4つの部(DIVISION)によって構成されています。

4つの部は、さらに節や段落といったものに細分化されますが、まずこの4つについて理解しましょう。

1.見出し部(IDENTIFICATION DIVISION.)

・COBOLプログラムである事を識別するためのものです。ここでプログラム名を定義します。

記述例:

基礎-コーディングルール-記述例

2.環境部(ENVIRONMENT DIVISION.)

・COBOL(コボル)でファイルを使用する際に、どのファイルを使用するか宣言するところ、と考えるとわかりやすいでしょう。ファイルを使用しない場合は記述例の最初の1行を書いておけば問題ありません。

記述例:

基礎-コーディングルール-環境部記述例

3.データ部(DATA DIVISION.)

・プログラム内で使用するデータ項目(変数等)を宣言するために使用します。COBOL(コボル)は処理の中でデータ項目を定義する事はなく、このデータ部でデータ項目を定義するのが特徴です。

記述例:

基礎-コーディングルール-データ部記述例

4.手続き部(PROCEDURE DIVISION.)

・実際の処理の記述を行います。COBOL(コボル)プログラムがどういった処理になっているかは、全てこの手続き部の中に記述されていると思っていいでしょう。

記述例:

基礎-コーディングルール-手続部記述例

最後に省略もできますが、プログラムの終わりに以下の宣言を行って、プログラムを終了させることが一般的です。

基礎-コーディングルール-終了宣言

COBOL(コボル)言語のサンプルプログラムと制約事項

COBOL(コボル)のプログラム構成について理解いただけたでしょうか。COBOL(コボル)プログラムのほとんどがこの4部構成で作られています。また、説明時に記述している英字は「予約語」と呼ばれているものになります。予約語はCOBOL(コボル)プログラムで既に意味が決まっているもので、変える事はできません。COBOL(コボル)言語にはここで紹介した予約語以外にも多くの予約語が存在します。特に実際の処理を記述する手続き部では避けて通れませんので、英語の単語を覚える感覚で、少しずつその意味を覚えていきましょう。では、ここまで説明してきた内容から簡単なサンプルプログラムと制約事項をご紹介します。

サンプルプログラム(COBOL_SAMPLE01):

基礎-コーディングルール-サンプル

実行結果:

基礎-コーディングルール-実行結果

サンプルプログラムから見る制約事項:

  • 4つの部や予約語の間の空白や改行は、自由に設定できます。
  • プログラム名は、英字、数字、ハイフン、アンダーバーが使用できます。
  • プログラム名は、30文字以内で記述しなければなりません。
  • プログラム名の先頭文字は、英字でなければなりません。
  • END PROGRAMは子プログラムを利用する際は、省略できません。

COBOL(コボル)言語のコーディングの種類(固定形式、自由形式)

サンプルプログラムを見て何か気づいた点はなかったでしょうか?実はCOBOL(コボル)言語は、コーディングする際に桁を意識して記述しています。この桁を意識したコーディングの仕方を固定形式と呼んでいます。一般的なCOBOL(コボル)言語の業務プログラムは固定形式でコーディングされている事が多いため、サンプルプログラムを見ながらまず固定形式のルール、制約事項について理解していきましょう。

サンプルプログラム(桁位置に注目):

基礎-コーディングルール-記述例

プログラムは、1行80桁で記述する必要があり、「一連番号領域、標識領域、A領域、B領域、見出し領域」という5つの領域で構成されています。

1.一連番号領域(1桁目~6桁目)

・000100~番号を記述します。一般的にはコンパイラ等で自動的に採番してくれますので、コーディングの際に意識する必要はありません。サンプルプログラムもブランクです。

2.標識領域(7桁目)

・8桁目以降に何が記述されているかを明示します。

記号

意味

ブランク

該当行がプログラム行である事を示します

-

1行に文字が収まらなかった場合に、継続行である事を示します

*

コメント行である事を示します

D

デバッグ行である事を示します
(データ項目の内容やプログラムの流れを表示させる際に使用します)

3.A領域(8桁目~11桁目)

・各部(DIVISION)、節、段落、データ項目のレベル番号など、ここからプログラムを書き始めます。

4.B領域(12桁目~72桁目)

・手続き部の処理の書き始めとして使用する事が多いです。A領域、B領域と分ける事でプログラムを読みやすくしていると考えるとわかりやすいでしょう。

5.見出し領域(73桁目~80桁目)

・自由に記述できる領域で、プログラムとしては認識されない領域です。

COBOL(コボル)言語は、一般的には固定形式で記述されていますが、自由形式という桁数を意識しないコーディングもできます。固定形式のように領域という考え方がないため、他の代表的なプログラミング言語と同様の記述を行う事ができます。

COBOL(コボル)言語のデータ項目の扱いと活用法

ここまでがCOBOL(コボル)言語の基本的なコーディングルールと制約事項になりますが、最後にCOBOL(コボル)言語の特徴の1つである、データ項目(変数等)の定義についてご紹介します。

COBOL(コボル)では、データ項目を集団項目として定義します。また、その集団項目(階層構造)をわかりやすく定義するためにレベル番号というものを使用します。例えば、生年月日という集団項目があるとして、その項目は「年、月、日」で構成していると考えると理解しやすいでしょう。

記述例:

基礎-コーディングルール-記述例

「レベル番号、データ項目名」という書き方でデータ項目を定義します。レベル番号は集団項目を表す「01」から書き始め、「02~49」で集団項目に属するデータ項目を定義します。(66、77、88 という特殊なレベル番号も存在しますがここでは省略します。)最後に、集団項目の活用法をサンプルプログラムでご紹介します。

サンプルプログラム(COBOL_SAMPLE02):

  1. IDENTIFICATION DIVISION.
  2. PROGRAM-ID. COBOL_SAMPLE02.
  3. *
  4. ENVIRONMENT DIVISION.
  5. *
  6. DATA DIVISION.
  7. WORKING-STORAGE SECTION.
  8. * 氏名
  9. 01 SHIMEI.
  10. 03 MYOUJI PIC X(08) VALUE "YAMADA".
  11. 03 NAMAE PIC X(08) VALUE "TARO".
  12. * 入社日
  13. 01 NYUSYABI.
  14. 03 NEN PIC X(04) VALUE "2018".
  15. 03 TUKI PIC X(02) VALUE "04".
  16. 03 HI PIC X(02) VALUE "01".
  17. * 所属
  18. 01 SYOZOKU.
  19. 03 BU PIC X(10) VALUE "JINJI".
  20. 03 KA PIC X(10) VALUE "1".
  21. 03 KAKARI PIC X(10) VALUE "1".
  22. *
  23. PROCEDURE DIVISION.
  24. *
  25. DISPLAY SHIMEI.
  26. DISPLAY NEN TUKI.
  27. DISPLAY BU.
  28. *
  29. STOP RUN.
  30. *
  31. END PROGRAM COBOL_SAMPLE02.

実行結果:

基礎-コーディングルール-実行結果

今回はCOBOL(コボル)言語の基本的なコーディングルールと制約事項についてご紹介しました。COBOL言語の理解をさらに深めるためには、この後手続き部の具体的な書き方を学んでいく事になります。データ編集、条件判断、繰り返し処理等、少しずつ学習して組み合わせれば立派なプログラムを作成できるようになります。そのためにもまずは、今回ご紹介したコーディングルール、制約事項をしっかり理解しておくようにしておきましょう。

この記事を読んだ人は、こちらの記事も読んでいます

【未経験者歓迎】COBOLプログラマー・システムエンジニアの募集

株式会社COBOLの求人・転職・募集情報を見る

COBOL入門のカテゴリー

取引企業様 募集中
COBOL技術者 募集
COBOL魂
読者採用
COBOL入門