①文字列 DSP40 に ‘MSG’という文字列を入れる
RPG III MOVEL 'MSG' DSP40
C言語 strcpy 'MSG' DSP40
CLP CHGVAR &DSP40 VALUE('MSG')
FF-RPG DSP40 = 'MSG';
②文字列 DSP40 に文字列 CMDSTRを追加する
RPG III CAT CMDSTR DSP40 C言語 strcat(DSP40, CMDSTR); CLP CHGVAR DSP40 VALUE(&DSP40 *TCAT &CMDSTR) FF-RPG DSP40 = %TRIMR(DSP40) + 'MSG';
③文字列 DSPA と 文字列 DSPB を結合して CMDSTR に入れる
RPG III DAPA CAT DSPB CMDSTR
C言語 strcat(CMDSTR, DSPA);
strcta(CMDSTR, DSPB);
CLP CHGVAR &CMDSTR VALUE(&DSPA *TCAT &DSPB)
FF-RPG CMDATR = %TRIMR(DSPA) + DSPB;
============================================================
[総評]
C言語では文字列のコピーは strcpy, 結合は strcat, または strncat
を使う。
CLPでは文字列の結合は *CAT または *TCATを使う。
RPG の場合でも文字列の結合は CAT または MOVE などを駆使する。
これらにくらべて FF-RPG は + 記号だけで結合することがでる。
FF-RPG が一番、直観的で初めて見る人でも意味がわかる。
FF-RPG (=FreeFormat) は文字列の結合も + で表せるし
数字の加算ももちろん + 記号で表すことができる。
これに比べてRPG III ではMOVE や MOVELなど複数回の組み合わせが
必要になったりするのでプログラマーの書き手の個性が現れやすい。
C言語も strcat や strcpy というMOVEに代わる演算なので
これも覚えなければならない演算である。
+ 記号で表現するほうがはるかにわかりやすい。
FF-RPGでさらに望むことは一行に複数の演算を書くことが
できないことである。
C言語はFF-RPGと同じように行末に; (=セミコロン)で終わるので
一行に複数行を記述することができる。
FF-RPGは複雑に見えないようにするためか
一行に複数の演算を記述することはできない。
ただしその一方で%LEN, %SIZEなどの組込み関数の種類が増えて
便利になってきている。
C言語もVC, Javaなどもほとんど言語として進化していないが
RPGだけは進化し続けている。
RPGを古いというのはRPGの進化を勉強していない自分自身が
古い人の言うことである。
RPGより生産性の高くてやさしい言語があるとすれば
Pythonだけである。
