プロシージャーおよびプログラム論理サイクル
プロシージャーは、呼び出して実行することのできるステートメントの集合です。
RPG のプロシージャーには、通常のサブプロシージャー、リニア・メイン・サブプロシージャー、サイクル・メイン・サブプロシージャーの 3 種類があります。 存在するプロシージャーのタイプに応じて、RPG ソース・プログラムを 3 種類のモジュール (サイクル、Nomain、リニア・メイン) のいずれかにコンパイルできます。 これらは、制御仕様書で NOMAIN または MAIN のキーワードで示されます。
「サブプロシージャー」という用語は、通常のサブプロシージャーおよびリニア・メイン・プロシージャーを指すために使用されます。
RPG ソース・プログラムは、次のセクションに分類できます (それぞれプロシージャーを含んでいます)。
- メイン・ソース・セクション: ソース・プログラム内の最初の行から、最初のプロシージャー仕様書までのソース行。
サイクル・モジュールでは、このセクションにサイクル・メイン・プロシージャーを構成する演算仕様書 (標準形式または自由形式) が含まれている場合があります。
このセクションに演算仕様書がない場合でも、サイクル・メイン・プロシージャーが暗黙的に指定されます。
この種のプロシージャーには、それを特定するプロシージャーの始めの指定と「プロシージャーの終わり」の指定がありません。
サイクル・モジュールは、サブプロシージャーなしでも設計可能であるため、個別のプロシージャー・セクションがありません。
- プロシージャー・セクション: ソース・プログラム内で定義される、リニア・メイン・プロシージャー (ゼロまたは 1 つ) と通常のサブプロシージャー (1 つ以上)。
各プロシージャーは、プロシージャーの始めの指定で始まり、「プロシージャーの終わり」の指定で終わります。
リニア・メイン・プロシージャーは、制御仕様書の MAIN キーワードによって指定され、特殊なサブプロシージャーになります。