【COBOL 読み2-10-2】DISPLAYで世紀末でもCOBOLはマジメ

🧩今日の学び
DISPLAY は「書いた順・スペースで区切った単位」どおりに出力するだけの正直な命令
CNT CNTCNTCNT はまったく別物であり、COBOLにとってスペースは意味の境界線である
・読めない地獄を止めるのは言語ではなく、人間の良心と設計意識だ

なるお)係長ー干し芋食います?

係長)なんで会社で干し芋食ってんだよ…

な)え?うまいから?

係)美味かったら会社で食っていいわけねーだろ!どこで買ってきたんだよ!

な)郵便局で。

係)おまえ、郵便局にお使いに行って、干し芋買って帰ってきたのか?

な)んなわけないじゃないっすかー、窓口で売ってないっすよ。ふるさと…、いやなんでもないです。

係)お前郵便局にお使い行って、干し芋のふるさと小包申し込んで来てたのか!?

な)いや、ま、その、干し芋うまいっすよ!はい!

係)干し芋そのまま手渡されてもだな…しゃーねーな…もぐもぐ

な)食いましたね!共犯ですからー課長ー!

係)お前、やめろって!

な)むはは!お茶入れてますんで。どうぞー。

(…ほっこりした時間…)

な)もう一ついります?

係)どんだけもってきてんだよ…いいから、いい加減仕事しろ。

DISPLAYは並べた分だけ出る:狂気は仕様どおり

な)結局食べたくせに…

あ、そうそう、この前のDISPLAYなんですけど、変数を並べるとき、CNTを連続で並べて狂気の沙汰であることを示したいときって

CNT = 5
if CNT = 5
   DISPLAY CNT CNT CNT CNT CNT CNT

で、いいんですよね?

CNTCNTCNTCNTCNTCNT

こっちのほうが狂気の沙汰っぷりがはげしいですけど。

係)…なんで、そんなことをしようとするんだよ。

狂気の沙汰アピールはなんのためだよ。

…まぁ、技術的に言えば、

 DISPLAY CNT CNT CNT CNT CNT CNT

って書くと、変数CNTの値が6回連続で表示される。

だからCNT = 5なら、結果は

555555

にはなるぞ。

つまり、正しいといえば正しいし、コンパイラも止めない。

止めてくれた方が「人」として助かるけどな。

な)じゃ、COBOLは俺みたいな狂人のために止めてくれないんすね!

スペースが命:CNT と CNTCNTCNT はまったく別物

係)なんで嬉しそうなんだよ…

そもそも CNTCNTCNTCNTCNTCNT なんて書いたら、「新しい変数名」として認識されるだけだろうが。

な)あ…。
そんな地獄みたいな変数名を成立させちゃうなんて…

係)COBOLは別に変数名に意味を見い出してるわけじゃないだろうが。

単純に「スペースが命」なんだよ。

だから CNT CNT CNT と書くのと、CNTCNTCNT と書くのはまったく別物

きちんと理解しとけ。

な)くっ、COBOLには気持ちがあるって思ってたのに。

こいつ、とち狂ってやがるぜええ。ヒャッハー世界だぜええ!みたいなCOBOLが見たかったのに。

CNTとか書いてんだ!マジメかよ!

SEIKIMATSUSEIKIMATSUSEIKIMATSUSEIKIMATSUSEIKIMATSU

だろ!?相棒!

みたいな?

係)みたいな?じゃねーから。

動く狂気と読めない地獄:定義すれば通る、それだけ

な)あれ?

ってことは、俺が CNTCNTCNTCNTCNTCNT って書いたら、狂ったCOBOLの世界が広がりますよね!

わおー素敵!

でもここでCNTCNTCNTCNTCNTCNTなんて書いたら、「ねーよそんな狂った世界は!」って怒られる?

係)定義してなけりゃエラーになるだろ。定義してたら……動く…。

なんで、すぐに擬人化するんだよ…

な)動くっすよね!

SEIKIMATSUSEIKIMATSUSEIKIMATSUSEIKIMATSUSEIKIMATSU

って定義したら!

係)…動く。

そして、「人」は誰も理解できない。理解しようともしない。理解する気にもならない。

ってなんでCNTSEIKIMATSUになってんだよ…

おむすび

な)やっぱ狂気の新世界編への突入ですね!

もうSEIKIMATSUSEIKIMATSUSEIKIMATSUSEIKIMATSUSEIKIMATSUとか変数名つけてる時点で、おれの心がDISPLAYで具現化されちゃってるんですよ。

この世界はもう俺の心の中の世界ですよ!

係)お前の頭の中は、もうコンパイル通ってねぇだろ。

な)いやいや、係長。

俺の人生、常にPERFORM VARYING 狂気 FROM 1 BY 1 UNTIL 理解 > 無限っすよ! ニヤリ。

係)だからなんで、こんなときだけ、すらすらと出てくるんだよ!
それに、長すぎる。

COBOLの変数名は基本「30文字」までだ。

お前のその50文字の狂気は、長すぎて受け入れられん。エラーだ。お前の狂気はその程度だ。

な)な…やっぱそうすっか。

係)やっぱってなんだよ。

な)だって、俺の才能は受け入れられるには、この世界は狭すぎるんだなって⋯残念です⋯。ぐす。

係)俺も一切合切受け入れてないけどな。

な)干し芋食ったくせに⋯

係長のワンポイント

DISPLAYは「書いた順・区切った単位」どおりに出力するだけの正直者だ。
DISPLAY CNT CNT CNTは「同じ変数を3回表示」、CNTCNTCNTは「別の変数名」。
COBOL にとって スペースは区切り記号であり、意味の境界線 でもある。
だから狂気は止められないし、定義すればそのまま通る──それが仕様だ。
読めない地獄を止めるのは言語じゃない、人間の良心だけだ。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする