🧩今日の学び
・DISPLAY は「書いた順・スペースで区切った単位」どおりに出力するだけの正直な命令
・CNT CNT と CNTCNT はまったく別物であり、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
って定義したら!
係)…動く。
そして、「人」は誰も理解できない。理解しようともしない。理解する気にもならない。
ってなんでCNTがSEIKIMATSUになってんだよ…
おむすび
な)やっぱ狂気の新世界編への突入ですね!
もうSEIKIMATSUSEIKIMATSUSEIKIMATSUSEIKIMATSUSEIKIMATSUとか変数名つけてる時点で、おれの心がDISPLAYで具現化されちゃってるんですよ。
この世界はもう俺の心の中の世界ですよ!
係)お前の頭の中は、もうコンパイル通ってねぇだろ。
な)いやいや、係長。
俺の人生、常にPERFORM VARYING 狂気 FROM 1 BY 1 UNTIL 理解 > 無限っすよ! ニヤリ。
係)だからなんで、こんなときだけ、すらすらと出てくるんだよ!
それに、長すぎる。
COBOLの変数名は基本「30文字」までだ。
お前のその50文字の狂気は、長すぎて受け入れられん。エラーだ。お前の狂気はその程度だ。
な)な…やっぱそうすっか。
係)やっぱってなんだよ。
な)だって、俺の才能は受け入れられるには、この世界は狭すぎるんだなって⋯残念です⋯。ぐす。
係)俺も一切合切受け入れてないけどな。
な)干し芋食ったくせに⋯
係長のワンポイント
DISPLAYは「書いた順・区切った単位」どおりに出力するだけの正直者だ。DISPLAY CNT CNT CNTは「同じ変数を3回表示」、CNTCNTCNTは「別の変数名」。
COBOL にとって スペースは区切り記号であり、意味の境界線 でもある。
だから狂気は止められないし、定義すればそのまま通る──それが仕様だ。
読めない地獄を止めるのは言語じゃない、人間の良心だけだ。

コメント