COBOLプログラミング入門
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[COBOLプログラミング入門]]
#contents
COBOLプログラミングについてはじめての方でもわかるように図...
* 第1章 COBOL概要 [#f5d6e628]
** COBOLとは [#q8c3bed9]
COBOL(COmmon Business Oriented Language)はアメリカで生ま...
COBOLが開発されたのが1959年9月。
誕生したのがもう半世紀以上も前のことです。
その当時、COBOL以外にもさまざまなプログラミング言語が存在...
高級言語としてはFORTRANやLIPSが代表例と言えるでしょう。
現在のように音楽や動画などのマルチメディアをコンピュータ...
インターネットもまだ生まれていません。
そんな時代にどんなシステムが開発されていたのかというと、...
FORTRANは科学技術計算用、LIPSは人工知能の研究・開発に主に...
しかし、事務処理系のプログラムのニーズも高く、効率良く開...
そのような背景のもと、事務処理系のプログラム開発に最適化...
高級言語の誕生年表[図1]
* 第2章 COBOLプログラムの構成 [#j4360a1a]
** COBOLプログラムの全体構成 [#v60bb3f9]
COBOLプログラムは、全体が4つの部に分かれて構成されます。
さらに各部にはいくつかの節や段落に分けられています。
それぞれの部で、それぞれの役割が明確になっているのがCOBOL...
しかしその点が、他言語プログラマがはじめてCOBOLを用いると...
例えば、VBでは変数をソース上のどこででも宣言することがで...
ささいなことのようですが、VBプログラマにとって意外と不便...
下図はCOBOLプログラムの全体構成になります。
まずは見出し部(IDENTIFICATION DIVISION)からはじまり、環境...
見出し部(IDENTIFICATION DIVISION)
- プログラム名
- 作成者名
- 作成日時 etc...
環境部(ENVIRONMENT DIVISION)
- 作成する環境変数
- 使用するファイル名 etc...
データ部(DATA DIVISION)
- データ項目(変数)の定義
- ファイルのレイアウト etc...
手続き部(PROCEDURE DIVISION)
- 処理内容
** 見出し部(IDENTIFICATION DIVISION) [#i3059d91]
見出し部(IDENTIFICATION DIVISION)はCOBOLプログラムで最...
見出し部には、プログラム名やその作成者、作成日などのプロ...
それらを見出し部内の段落として記述していくことになります。
見出しに含まれる段落
|見出し部|段落|h
|IDENTIFICATION DIVISION--|--PROGRAM-ID プログラム名|
| |L--AUTHOR プログラムの作成者|
| |L--DATE-WRITTEN プログラム作成日|
| |L--DATE-COMPILED コンパイル日|
| |L--INSTALLATION インストール先|
| |L--SECURITY 機密事項|
なお、見出し部には節(SECTION)は存在しません。
下記は実際の記述例です。
000010 IDENTIFICATION DIVISION.
000020 PROGRAM-ID. SAMPLE001.
000030 AUTHOR. T-KATO.
000040 DATE-WRITTEN. 2012/3/16.
000050 DATE-COMPILED. 2012/3/16.
** 環境部(ENVIRONMENT DIVISION) [#j13844fb]
環境部(ENVIRONMENT DIVISION)はCOBOLプログラムで2番目に...
環境部には、作成しようとしているプログラムを翻訳(コンパ...
通信部に含まれる節と段落
|環境部|節|段落|h
|ENVIRONMENT DIVISION--- |--- CONFIGURATION SECTION 構...
| | |L-- SOURCE-COMPUTER 翻訳するコンピュータ名|
| | |L-- OBJECT-COMPUTER 実行するコンピュータ名|
| |L-- INPUT-OUTPUT SECTION 入出力節| |
| | |L-- FILE-CONTROL ファイル管理|
下記は実際の記述例です。
000070 ENVIRONMENT DIVISION.
000080 CONFIGURATION SECTION.
000090 SOURCE-COMPUTER. MYCOMPUTER.
000100 OBJECT-COMPUTER. MYCOMPUTER.
000110 INPUT-OUTPUT SECTION.
000120 FILE-CONTROL.
000130 SELECT IN-FILE ASSIGN TO ...
000140 ORGANIZATION IS ...
000150 SELECT OUT-FILE ASSIGN TO ...
000160 ORGANIZATION IS ...
翻訳するコンピュータ名(SOURCE-COMPUTER)や実行するコンピ...
しかし、ファイル管理(FILE-CONTROL)段落などは影響がある...
具体的な記述方法に関しては後の記事で紹介します。
** データ部(DATA DIVISION) [#w2ab2229]
データ部はCOBOLプログラムで3番目に記述する部になります。
これまでの部がCOBOLプログラムを作り上げていく上での事前準...
データ部では、入出力ファイルのレイアウト、データ項目(変...
通信部に含まれる節
|データ部|節|h
|DATA DIVISION ---|--- FILE SECTION ファイル|
| |L-- WORKING-STORAGE SECTION 作業場所|
| |L-- LINKAGE SECTION 連絡|
| |L-- COMMUNICATION SECTION 通信|
| |L-- REPORT SECTION レポート|
作業場所節(WORKING-STORAGE SECTION)ではプログラム上で使...
連絡節(LINKAGE SECTION)は外部プログラムとのデータのやり...
(C言語でいう、main()関数の引数にあたります。)
また、COBOLでは入出力ファイルのレイアウトをファイル節(FI...
他にも通信節とレポート節があります。
下記は実際の記述例です。
000180 DATA DIVISION.
000190 FILE SECTION.
000200 FD IN-FILE.
000210 01 IN-RECORD.
000220 03 IN-SYOHIN-CODE PIC X(6).
000230 03 IN-SYOHIN-NAME PIC X(30).
000240 03 IN-SYOHIN-TANKA PIC 9(8).
000250 WORKING-STORAGE SECTION.
000260 77 WRK-COUNT PIC 9(2).
000270 LINKAGE SECTION.
000280 REPORT SECTION.
000290 SCREEN SECTION.
各節にはそれぞれ段落があります。
具体的な記述方法に関しては後の記事で紹介します。
** 手続き部(PROCEDURE DIVISION) [#s61c1155]
手続き部(PROCEDURE DIVISION)はCOBOLプログラムで最後に記...
手続き部では、プログラムが行う処理内容を記述していきます。
これまでの部と違い、手続き部には規定の節や段落は存在しま...
それらはプログラム作成者が必要に応じて作成していくことに...
節がC言語で言うところの、関数にあたります。
段落は節の中をさらに小さく括った処理のまとまりになります。
下記は実際の記述例です。
000310 PROCEDURE DIVISION.
000320 PERFORM INIT-PROC.
000330*
000340 PERFORM MAIN-PROC.
000350*
000360 STOP RUN.
000370*
000380 INIT-PROC SECTION.
000390*
000400 MOVE ZERO TO WRK-COUNT.
000410*
000420 OPEN INPUT IN-FILE.
000430 PERFORM INFILE-READ-PROC.
000440*
000450 INIT-PROC-EXIT.
000460*
000470 EXIT.
行番「000320」から「000360」までが、このプログラムのメイ...
(C言語で言う、main()関数にあたります。)
行番「000380」(INIT-PROC)から「000450」(INIT-PROC-EXIT...
(C言語で言う、関数にあたります。)
* 第3章 COBOLコーディングルール [#a570c94c]
** コーディングフォーマット [#nabcdb7a]
COBOLでは、プログラムをコーディング(記述)していく上での...
プログラム作成者はそのコーディングルールに従ってコーディ...
1行は80文字以内、その80文字の中で、5つの領域に分けてコー...
それぞれの領域には何を記述するのかが定められています。
コーディングフォーマット
[図2]
上図のように、1行80文字以内にし、行内では「一連番号領域」...
*** 一連番号領域 [#t22acf47]
先頭から6文字分を「一連番号領域」と言います。
一連番号領域にはプログラムの行番号を6桁の数字で記述します。
記述する行番号は「000010」や「000100」からスタートし、一...
ただし、最近のコンパイラはこの一連番号領域を無視するので...
そのため全行「000000」としたり、何も書かずにスペースで埋...
*** 標識領域 [#e3b59e9e]
先頭から7文字目を「標識領域」と言います。
標識領域には、その名のとおり、8文字目以降に何が書かれてい...
|記号|内容|h
|空白|この行がCOBOLプログラムのコードであることを示す。 |
|*|この行がコメント行(翻訳しない行)であることを示す。 |
|/|COBOLソースコード印刷時における改ページ行であることを...
|–|前行からの継続であることを示す。 |
*** A領域 [#e8d03087]
先頭から8~11文字目までを「A領域」と言います。
各部の開始宣言(IDENTIFICATION DIVISIONなど)、節や段落の...
*** B領域 [#sf2fd3c2]
先頭から12~72文字目までを「B領域」と言います。
手続き部の命令文や作業領域のレベル番号などを記述します。
*** 見出し領域 [#vd5c0626]
先頭から73~80文字目までを「見出し領域」と言います。
見出し領域は、翻訳対象外の領域であり、プログラムの修正日...
** コーディングルール [#jfc01ccc]
COBOLでは、コーディングするにあたり、1行は80文字以内で書...
*** ピリオド(終止符) [#k7c9d110]
COBOLでは、部、節、段落の宣言部、1つの命令文、命令ブロッ...
[図3]
*** ハイフンによる行継続 [#w1e8c5c1]
COBOLでは、宣言文や命令文を記述できる範囲はA領域とB領域に...
この制限があるため、計算式や文字列などが長くなってしまう...
そのような場合は、1つの文を複数行にまたがって記述すること...
その方法は、下図のように標識領域にハイフン(-)を記述し、...
*** 改行による行継続 [#s3adce79]
1つの文を複数行にまたがって記述する方法には、標識領域にハ...
*** コメント行 [#u7a1c99f]
先頭から73~80文字目までは「見出し領域」となっており、そ...
プログラムの処理内容など、長いコメントを書きたい場合は多...
そのような場合には、行全体をコメント行にしてしまう方法が...
行をコメント行にするには標識領域にアスタリスク(*)を記述...
* 第4章 入出力 [#j0912077]
** COBOLでHello world! [#c8c5f20d]
** DISPLAY文 [#cee4e341]
** ACCEPT文 [#e1c6b5dd]
* 第5章 制御文 [#q85be69a]
** IF~THEN文による条件分岐 [#m1c96e5c]
** IF~THEN文による多岐選択 [#ra9cf977]
** EVALUATE文による多岐選択 [#h1e6b6dd]
** PERFORM UNTILによる繰り返し [#oa4f8f8e]
** PERFORM VARYING UNTILによる繰り返し [#f9a86ef6]
** PERFORM TIMESによる繰り返し [#v983102d]
* 第6章 データ定義(変数) [#n7323698]
** COBOLのデータ定義 [#l17f8d0d]
** 命名規則と特殊なデータ定義 [#r36134ee]
** データ型の種類 [#gfd4e10b]
** データ項目の定義方法(PICTURE句) [#u50d47cd]
** 定数の種類 [#m55b1c81]
http://tallercolibri.com/
終了行:
[[COBOLプログラミング入門]]
#contents
COBOLプログラミングについてはじめての方でもわかるように図...
* 第1章 COBOL概要 [#f5d6e628]
** COBOLとは [#q8c3bed9]
COBOL(COmmon Business Oriented Language)はアメリカで生ま...
COBOLが開発されたのが1959年9月。
誕生したのがもう半世紀以上も前のことです。
その当時、COBOL以外にもさまざまなプログラミング言語が存在...
高級言語としてはFORTRANやLIPSが代表例と言えるでしょう。
現在のように音楽や動画などのマルチメディアをコンピュータ...
インターネットもまだ生まれていません。
そんな時代にどんなシステムが開発されていたのかというと、...
FORTRANは科学技術計算用、LIPSは人工知能の研究・開発に主に...
しかし、事務処理系のプログラムのニーズも高く、効率良く開...
そのような背景のもと、事務処理系のプログラム開発に最適化...
高級言語の誕生年表[図1]
* 第2章 COBOLプログラムの構成 [#j4360a1a]
** COBOLプログラムの全体構成 [#v60bb3f9]
COBOLプログラムは、全体が4つの部に分かれて構成されます。
さらに各部にはいくつかの節や段落に分けられています。
それぞれの部で、それぞれの役割が明確になっているのがCOBOL...
しかしその点が、他言語プログラマがはじめてCOBOLを用いると...
例えば、VBでは変数をソース上のどこででも宣言することがで...
ささいなことのようですが、VBプログラマにとって意外と不便...
下図はCOBOLプログラムの全体構成になります。
まずは見出し部(IDENTIFICATION DIVISION)からはじまり、環境...
見出し部(IDENTIFICATION DIVISION)
- プログラム名
- 作成者名
- 作成日時 etc...
環境部(ENVIRONMENT DIVISION)
- 作成する環境変数
- 使用するファイル名 etc...
データ部(DATA DIVISION)
- データ項目(変数)の定義
- ファイルのレイアウト etc...
手続き部(PROCEDURE DIVISION)
- 処理内容
** 見出し部(IDENTIFICATION DIVISION) [#i3059d91]
見出し部(IDENTIFICATION DIVISION)はCOBOLプログラムで最...
見出し部には、プログラム名やその作成者、作成日などのプロ...
それらを見出し部内の段落として記述していくことになります。
見出しに含まれる段落
|見出し部|段落|h
|IDENTIFICATION DIVISION--|--PROGRAM-ID プログラム名|
| |L--AUTHOR プログラムの作成者|
| |L--DATE-WRITTEN プログラム作成日|
| |L--DATE-COMPILED コンパイル日|
| |L--INSTALLATION インストール先|
| |L--SECURITY 機密事項|
なお、見出し部には節(SECTION)は存在しません。
下記は実際の記述例です。
000010 IDENTIFICATION DIVISION.
000020 PROGRAM-ID. SAMPLE001.
000030 AUTHOR. T-KATO.
000040 DATE-WRITTEN. 2012/3/16.
000050 DATE-COMPILED. 2012/3/16.
** 環境部(ENVIRONMENT DIVISION) [#j13844fb]
環境部(ENVIRONMENT DIVISION)はCOBOLプログラムで2番目に...
環境部には、作成しようとしているプログラムを翻訳(コンパ...
通信部に含まれる節と段落
|環境部|節|段落|h
|ENVIRONMENT DIVISION--- |--- CONFIGURATION SECTION 構...
| | |L-- SOURCE-COMPUTER 翻訳するコンピュータ名|
| | |L-- OBJECT-COMPUTER 実行するコンピュータ名|
| |L-- INPUT-OUTPUT SECTION 入出力節| |
| | |L-- FILE-CONTROL ファイル管理|
下記は実際の記述例です。
000070 ENVIRONMENT DIVISION.
000080 CONFIGURATION SECTION.
000090 SOURCE-COMPUTER. MYCOMPUTER.
000100 OBJECT-COMPUTER. MYCOMPUTER.
000110 INPUT-OUTPUT SECTION.
000120 FILE-CONTROL.
000130 SELECT IN-FILE ASSIGN TO ...
000140 ORGANIZATION IS ...
000150 SELECT OUT-FILE ASSIGN TO ...
000160 ORGANIZATION IS ...
翻訳するコンピュータ名(SOURCE-COMPUTER)や実行するコンピ...
しかし、ファイル管理(FILE-CONTROL)段落などは影響がある...
具体的な記述方法に関しては後の記事で紹介します。
** データ部(DATA DIVISION) [#w2ab2229]
データ部はCOBOLプログラムで3番目に記述する部になります。
これまでの部がCOBOLプログラムを作り上げていく上での事前準...
データ部では、入出力ファイルのレイアウト、データ項目(変...
通信部に含まれる節
|データ部|節|h
|DATA DIVISION ---|--- FILE SECTION ファイル|
| |L-- WORKING-STORAGE SECTION 作業場所|
| |L-- LINKAGE SECTION 連絡|
| |L-- COMMUNICATION SECTION 通信|
| |L-- REPORT SECTION レポート|
作業場所節(WORKING-STORAGE SECTION)ではプログラム上で使...
連絡節(LINKAGE SECTION)は外部プログラムとのデータのやり...
(C言語でいう、main()関数の引数にあたります。)
また、COBOLでは入出力ファイルのレイアウトをファイル節(FI...
他にも通信節とレポート節があります。
下記は実際の記述例です。
000180 DATA DIVISION.
000190 FILE SECTION.
000200 FD IN-FILE.
000210 01 IN-RECORD.
000220 03 IN-SYOHIN-CODE PIC X(6).
000230 03 IN-SYOHIN-NAME PIC X(30).
000240 03 IN-SYOHIN-TANKA PIC 9(8).
000250 WORKING-STORAGE SECTION.
000260 77 WRK-COUNT PIC 9(2).
000270 LINKAGE SECTION.
000280 REPORT SECTION.
000290 SCREEN SECTION.
各節にはそれぞれ段落があります。
具体的な記述方法に関しては後の記事で紹介します。
** 手続き部(PROCEDURE DIVISION) [#s61c1155]
手続き部(PROCEDURE DIVISION)はCOBOLプログラムで最後に記...
手続き部では、プログラムが行う処理内容を記述していきます。
これまでの部と違い、手続き部には規定の節や段落は存在しま...
それらはプログラム作成者が必要に応じて作成していくことに...
節がC言語で言うところの、関数にあたります。
段落は節の中をさらに小さく括った処理のまとまりになります。
下記は実際の記述例です。
000310 PROCEDURE DIVISION.
000320 PERFORM INIT-PROC.
000330*
000340 PERFORM MAIN-PROC.
000350*
000360 STOP RUN.
000370*
000380 INIT-PROC SECTION.
000390*
000400 MOVE ZERO TO WRK-COUNT.
000410*
000420 OPEN INPUT IN-FILE.
000430 PERFORM INFILE-READ-PROC.
000440*
000450 INIT-PROC-EXIT.
000460*
000470 EXIT.
行番「000320」から「000360」までが、このプログラムのメイ...
(C言語で言う、main()関数にあたります。)
行番「000380」(INIT-PROC)から「000450」(INIT-PROC-EXIT...
(C言語で言う、関数にあたります。)
* 第3章 COBOLコーディングルール [#a570c94c]
** コーディングフォーマット [#nabcdb7a]
COBOLでは、プログラムをコーディング(記述)していく上での...
プログラム作成者はそのコーディングルールに従ってコーディ...
1行は80文字以内、その80文字の中で、5つの領域に分けてコー...
それぞれの領域には何を記述するのかが定められています。
コーディングフォーマット
[図2]
上図のように、1行80文字以内にし、行内では「一連番号領域」...
*** 一連番号領域 [#t22acf47]
先頭から6文字分を「一連番号領域」と言います。
一連番号領域にはプログラムの行番号を6桁の数字で記述します。
記述する行番号は「000010」や「000100」からスタートし、一...
ただし、最近のコンパイラはこの一連番号領域を無視するので...
そのため全行「000000」としたり、何も書かずにスペースで埋...
*** 標識領域 [#e3b59e9e]
先頭から7文字目を「標識領域」と言います。
標識領域には、その名のとおり、8文字目以降に何が書かれてい...
|記号|内容|h
|空白|この行がCOBOLプログラムのコードであることを示す。 |
|*|この行がコメント行(翻訳しない行)であることを示す。 |
|/|COBOLソースコード印刷時における改ページ行であることを...
|–|前行からの継続であることを示す。 |
*** A領域 [#e8d03087]
先頭から8~11文字目までを「A領域」と言います。
各部の開始宣言(IDENTIFICATION DIVISIONなど)、節や段落の...
*** B領域 [#sf2fd3c2]
先頭から12~72文字目までを「B領域」と言います。
手続き部の命令文や作業領域のレベル番号などを記述します。
*** 見出し領域 [#vd5c0626]
先頭から73~80文字目までを「見出し領域」と言います。
見出し領域は、翻訳対象外の領域であり、プログラムの修正日...
** コーディングルール [#jfc01ccc]
COBOLでは、コーディングするにあたり、1行は80文字以内で書...
*** ピリオド(終止符) [#k7c9d110]
COBOLでは、部、節、段落の宣言部、1つの命令文、命令ブロッ...
[図3]
*** ハイフンによる行継続 [#w1e8c5c1]
COBOLでは、宣言文や命令文を記述できる範囲はA領域とB領域に...
この制限があるため、計算式や文字列などが長くなってしまう...
そのような場合は、1つの文を複数行にまたがって記述すること...
その方法は、下図のように標識領域にハイフン(-)を記述し、...
*** 改行による行継続 [#s3adce79]
1つの文を複数行にまたがって記述する方法には、標識領域にハ...
*** コメント行 [#u7a1c99f]
先頭から73~80文字目までは「見出し領域」となっており、そ...
プログラムの処理内容など、長いコメントを書きたい場合は多...
そのような場合には、行全体をコメント行にしてしまう方法が...
行をコメント行にするには標識領域にアスタリスク(*)を記述...
* 第4章 入出力 [#j0912077]
** COBOLでHello world! [#c8c5f20d]
** DISPLAY文 [#cee4e341]
** ACCEPT文 [#e1c6b5dd]
* 第5章 制御文 [#q85be69a]
** IF~THEN文による条件分岐 [#m1c96e5c]
** IF~THEN文による多岐選択 [#ra9cf977]
** EVALUATE文による多岐選択 [#h1e6b6dd]
** PERFORM UNTILによる繰り返し [#oa4f8f8e]
** PERFORM VARYING UNTILによる繰り返し [#f9a86ef6]
** PERFORM TIMESによる繰り返し [#v983102d]
* 第6章 データ定義(変数) [#n7323698]
** COBOLのデータ定義 [#l17f8d0d]
** 命名規則と特殊なデータ定義 [#r36134ee]
** データ型の種類 [#gfd4e10b]
** データ項目の定義方法(PICTURE句) [#u50d47cd]
** 定数の種類 [#m55b1c81]
http://tallercolibri.com/
ページ名: