RPG

266. 一時的な標識はたったひとつだけ

煩雑な数多くの標識を使うことに後からソース・プログラムを読む
第三者にとって非常にわかりにくいものとなる。
プログラムの作成者自身であるあなたにとっても作成してから
ものの数ヶ月もすればあなた自身もその第三者になってしまうことをお忘れなく。

そこでプログラム内で使用する標識は少なければ少ないほどよい。
標識が読み手にとって複雑に思えるのは標識がどのような条件を
示しているのかを覚えておかなければならないことである。

一時的な比較や検査に使う標識は、ひとつだけあれば十分事足りる。
良く似た条件の識別のためにその都度、標識を定義していたのでは
99 個の標識はアッと言う間になくなってしまう。
たまに 99 個の標識を使い切ってしまうとどうしたら良いのでしょう?
という質問を聞くことがある。

一時的な標識はそれほど必要はない。

【例1】 比較を処理する標識

         
C          RECORD   COMP     '*RECORD  '                 50

【例2】 LOOKUP を処理する標識

         
C                   Z-ADD     1             N                          
C     RECORD        LOOKUP    RCR(N)                                 50
C   50              Z-ADD     MAXGYO        ADR(N)                     

【例3】 SCAN を処理する標識

         
C     '..*'         SCAN      ATTRB                                  50
C     *IN50         IFEQ      *ON                                      
C                   SETOFF                                       50    
C                   ENDIF                                              

【例4】 EOF を処理する標識

         
C                   DO        *HIVAL                                   
C                   SETOFF                                       50    
C                   READ      QDSPSRC                                50
C   50              LEAVE                                              
【解説】

上記のように一時的な標識を決めておいて標識は判断のための材料であるので
使えばそれで終わりである。
使えばもはや標識の使途はなくなるので再び別の場面で同じ標識を使えばよい。
このように一時的な標識を決めておくことで単に使う標識の数を少なくするのでなく
プログラム・ソースの読み手にとってわかりやすいものにすることができる。
一時的な標識であることを読み手が理解することによって後でこの標識が
別の演算で使われることはないという安心感も与えることができる。

使う標識は少なければ少ないほどよい。
しかし DSPF などを制御する場合もあるので標識を全く使わないということもできない。