手続き部では、1 つのプロシージャー は次のものから構成されています。
- 1 つのセクション またはセクションのグループ
- 1 つの段落 または段落のグループ
プロシージャー名 は、セクションまたは段落を識別するユーザー定義名です。
- セクション
- セクション・ヘッダー の後ろには、必要に応じて、1 つ以上の段落を続けます。
- セクション・ヘッダー
- セクション名 の後ろには、キーワード SECTION、優先順位番号 (任意)、
および分離文字ピリオドを続けます。
キーワード END DECLARATIVES の後、または宣言部分がない場合、セクションのヘッダーはオプションです。
- セクション名
- セクションを識別するためのユーザー定義語です。
参照されるセクション名は、それが定義されているプログラムの中で固有でなければなりません。
セクション名は修飾することができないからです。
- 優先順位番号
- 整数
または正の符号付き数字リテラル
。0 から 99 の範囲の値。
優先順位番号 は固定セグメントまたは節を含む予定の独立セグメントを識別します。
宣言部分のセクションの優先順位番号は、
0 から 49 の範囲でなければなりません。
次のものには、優先順位番号を指定できません。
- メソッド定義内
- RECURSIVE 属性を指定して宣言されているプログラム内
- THREAD コンパイラー・オプションを指定してコンパイルしたプログラム内
1 つのセクションは、次のセクション・ヘッダーの直前で終了するか、
手続き部の終わりで終了するか、または宣言部分の中でキーワードの END DECLARATIVES によって終了します。
- セグメント
- セグメントは、プログラム内の同じ優先順位番号を持つすべてのセクションから構成されます。優先順位番号によって、実行時にセクションが固定セグメントまたは独立セグメントのいずれに保管されるかが決定されます。
優先順位番号が 0 から 49 のセグメントは固定セグメントです。
優先順位番号が 50 から 99 のセグメントは独立セグメントです。
セグメントのタイプ (固定または独立) はセグメンテーションの機能をコントロールします。
固定セグメントでは、プロシージャーは常に最後に使われた状態になります。 独立セグメントでは、GOBACK ステートメントまたは EXIT PROGRAM ステートメントを実行した結果として制御が渡される場合を除き、異なる優先順位番号を持つセグメントから制御を受け取るたびにプロシージャーは初期状態になります。 独立セグメントで ALTER、SORT、および MERGE ステートメントを使用する場合の制限事項がステートメントの下に記述されています。
Enterprise COBOL は、標準 COBOL 85 分割モジュールのオーバーレイ機能はサポートしていません。
- 段落
- 段落名 の後ろには、分離文字ピリオドを続けます。必要に応じて、1 つ以上の文をさらに
続ける場合もあります。
段落の前には必ずピリオドを付けます。段落が置かれるのは常に見出し部のヘッダー、セクション、または他の段落の後であり、
これらはすべてピリオドで終わらなければならないからです。
- 段落名
- 段落を識別するためのユーザー定義語です。
段落名は、修飾することが可能なので、固有である必要はありません。
宣言部分がない場合 (フォーマット-2)、手続き部の中に段落名は不要です。
1 つの段落は、次の段落名またはセクション・ヘッダーの直前で終了するか、
手続き部の終わりで終了するか、または宣言部分の中でキーワードの END DECLARATIVES によって終了します。
セクションの中に 1 つ以上の段落がある場合でも、すべての段落をセクションに入れる必要はありません。
- 文
- 1 つ以上のステートメント からなり、分離文字ピリオドで終わります。
- ステートメント
- COBOL 動詞で始まる記号 (リテラルや比較演算子など) と ID の構文的に正しい組み合わせ。
- ID
- データ項目を一意に参照するために必要な 1 つまたは複数の語。
必要に応じて、修飾語、添え字、指標、および参照の修正を含めることができます。
手続き部の参照では (クラス・テストの場合を除き)、ID の内容は、PICTURE 節によって指定されたクラスに必ず合致していなければなりません。そうでない場合、結果は予測不可能になります。
実行は、宣言部分を除く手続き部の最初のステートメントから開始されます。ステートメントは、コンパイルを行うために記述してある順序で実行されますが、
ステートメントの規則が別の実行順序を指示している場合はこの限りではありません。
手続き部の終わりは、次のいずれかによって指示されます。
- 見出し部のヘッダー。これはネストされたソース・プログラムの開始を示します。
- END PROGRAM、END METHOD、END FACTORY、または END OBJECT のマーカー。
- プログラムの物理的な終わり。つまり、そこから後はソース・プログラム行がなくなるソース・プログラム中の物理的な位置。