見やすくわかりやすいモジュラー・プログラミングの手法を紹介しよう。
普通、多くの 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 文で制御すればかなり複雑なものとなってしまう。
このモジュラー・プログラミングの手法は非常にシンプルなものとして構造化されている。