RPG

129. 見やすくわかりやすいモジュラー・プログラミング

見やすくわかりやすいモジュラー・プログラミングの手法を紹介しよう。
普通、多くの RPG では EXSR SUBR のように単純にサブルーチンを呼び出している事例が
多いが、ここでは CASE 文によって制御を簡単にして見やすく保守性を高める手法である。

【 例 】
C                   EXSR      INIT                      
C                   DOU       MODE = 'END'              
C     MODE          CASEQ     'RCV'         RECEIVE     
C     MODE          CASEQ     'SND'         SEND        
C     MODE          CASEQ     'ANS'         ANSWER      
C     MODE          CASEQ     'FMT'         FMTERR      
C     MODE          CASEQ     'LEN'         LENERR      
C     MODE          CASEQ     'RES'         RESET       
C                   ENDDO                               
C                   EXSR      LRRTN
【 解説 】

これだけでは何のことか不明であると思うが、最初にサブ・ルーチン INIT の中でMODE に
「RCV」を入れておくと、このメイン・ルーチンはサブ・ルーチン RECEIVE を実行する
はずである。
RECEIVE の中では、成功すれば、次に MODE に「SND」を代入するとサブ・ルーチン SEND が実行される。
エラーがあれば、MODE に「FMT」を入れるとFMTERR が実行される。

このようにして、そのときの状況に応じて制御は処理し続けるのである。
最後に END が代入されると処理は終結して LRRTN が実行される。
つまりMODE に値を入れるだけで、次にすべき処理を制御することができるのである。
これを IF-ELSE 文で制御すればかなり複雑なものとなってしまう。
このモジュラー・プログラミングの手法は非常にシンプルなものとして構造化されている。