RPG

540. AI はRPGを学習できるか?

先に紹介したAIによって生成されたRPGソースは
始めからAIが作ったものではない。
何回かの修正指示を行った上で得た結果である。
最初に商品マスター(QTRFIL/SHOHIN)のDDSソースを

     A**********************************************                       
     A*   SHOHIN  :  商品マスターファイル          *                       
     A**********************************************                       
     A                                      UNIQUE                         
     A          R SHOHINR                   TEXT(' 商品マスターレコード ') 
     A*                                                                    
     A            SHCODE        10A         COLHDG(' 商品コード ')         
     A            SHNAME        24O         COLHDG(' 商品名 ')             
     A            SHTANK         7S 0       COLHDG(' 単価 ')               
     A                                      EDTCDE(1)                      
     A            SHSCOD         4A         COLHDG(' 品種コード ')         
     A*                                                                    
     A          K SHCODE                                                   

としてAIに教えた上で生成を指示したところ

見出し: HDR1 と HDR2 の印刷項目の終わりのⅠの指定がありませんが?

と指示してHDR1 と HDR2 の終わりの印刷位置を記述させた。
次に

終わりの位置というのは印刷指定の位置のことです。

と指示したのだがこの指示は不十分であって
AIは終わりの位置をフィールドの始まりの位置として
計算してしまって後で修正することになった。

このように何度か修正をょ指示してようやく出来上がったのが
先に示したRPGソースであるがよく見てみると
フィル仕様書では

FSHOHIN    IF   E           K DISK

と外部記述になっているのに

ISHOHIN    NS  01
     I                                  SHCODE        1   10
     I                                  SHNAME       11   34
     I                                  SHTANK       35   41  0
     I                                  SHSCOD       42   45

と内部記述として記述されている。
そこで

ファイル記述が外部記述であるのに入力仕様書が内部記述されています。
入力仕様書は不要です。

と指示してみるとAIは次の結果を再表示した。

     FSHOHIN    IF   E           K DISK
     FQSYSPRT   O    F     132        PRINTER OFLIND(*INOF)
     C           *INLR    SETON
     C                     EXSR      HDR
     C                     READ      SHOHIN
     C           *IN90     IFEQ      *ON
     C                     GOTO      END
     C                     ENDIF
LOOP C           *IN90     DOWEQ     *OFF
     C                     EXSR      DTL
     C                     READ      SHOHIN
     C                     ENDDO
END  C                     SETON                     LR
     *------------------------------------------------
     *  見出し印字
     *------------------------------------------------
HDR  C                     EXCEPT    HDR1
     C                     EXCEPT    HDR2
     C                     EXSR      NEWPG
     C                     RETRN
     *------------------------------------------------
     *  明細印字
     *------------------------------------------------
DTL  C                     EXCEPT    DTL1
     C                     RETRN
     *------------------------------------------------
     *  改ページ処理
     *------------------------------------------------
NEWPGC           *INOF    IFEQ      *ON
     C                     EXCEPT    HDR1
     C                     EXCEPT    HDR2
     C                     ENDIF
     C                     RETRN
     *------------------------------------------------
     *  O-Spec(印字フォーマット)
     *  ・桁位置は「終わりの位置」
     *  ・行送り指定あり
     *  ・行末 I は付けない(あなたの流儀)
     *------------------------------------------------
     OQSYSPRT   E  2       HDR1
     O                       70 '商品マスター一覧表'
     OQSYSPRT   E  1       HDR2
     O                       10 '商品コード'
     O                       38 '商品名'
     O                       51 '単価'
     O                       63 '品種コード'
     OQSYSPRT   E  1       DTL1
     O                       10 SHCODE
     O                       38 SHNAME
     O                       51 SHTANK        J
     O                       63 SHSCOD

オーバーフローの印刷処理やLOOPのコメントなどは何も指示していないのだが
キッチリやってくれている。
印刷出力の左端の注記もなかなかしゃれたことをしてくれていると感じる。

このように教えればAIは学習するので次回からは
理想的な完成形のRPGソースを生成してくれるはずである。

このようにChatBOTのころに比べるとAIの力量ははるかに進化している。
短時間教えるだけで非常に正確にRPGソースを生成してくれるのである。

IBM の世界はAIとはほど遠いものと考えておられた方も
AIを身近なものととして感じてくれたはずである。