【COBOL 読み3-4-1】ベテラン歌手の引き際〜EXIT SECTIONとPROGRAMの終幕

🧩今日の学び
EXIT SECTIONSECTION内の残り処理をすべてスキップする大きな出口
EXIT PROGRAMSTOP RUNと違い、CALL元へ制御を返すための命令
EXIT系命令は「どこまで終わるか」を明示する設計思想そのもの

なるお)係長!

EXIT PERFORMはなんとなくわかったような感じがするニュアンスが心の奥底に保存されたんですけど、PERFORMだけ抜けても次へ進んで行かないとならないってわけっすよね?

もっと抜けたりします?エロい意味じゃなくて。
エロい意味でもいいですけど。

係長)…なんでCOBOLでエロい意味がでてくるんだよ。

まぁいい…今日は非常口の話だ。

な)何個抜け穴あるんすか…。

非常口を抜けたらそこは非常口だったすか。川端康成気取りっすか。いっつも文庫とか読んでますよね。文学少年気取りっすか。文学中年ですか。

係長)悪かったな!

目次

EXIT SECTIONとEXIT PROGRAM

係長)まずはこれだ。

EXIT SECTION

これはな、「このセクションはもう終わり」と宣言する命令だ。

EXIT PERFORM:部屋から出る

EXIT SECTION:フロアから出る

な)おー芸能人っぽい!

歌謡曲を歌い終わって、一休みしてから、楽屋から出て、そのフロアから出てくると。出待ちの人に囲まれて、やっぱりあたしは一流芸能人だわって優越感に浸る感じですかね。

係)なんだよその嫌な感じの芸能人は。

EXIT SECTION

係)いいか、使いどころを間違えると、一気に流れが飛ぶぞ。

今日のコードだ

MAIN-SECTION.
    PERFORM A-PARA
    DISPLAY "戻ってきた"
    STOP RUN.

A-PARA.
    DISPLAY "A-PARA start"
    EXIT SECTION
    DISPLAY "ここは実行されない"

EXIT SECTIONを踏んだ瞬間、このSECTIONの残りはすべてスキップだ。

な)へーじゃ、「DISPLAY “ここは実行されない”」は日の目を見ないんですね。やっぱり芸能人の人気なんて、真夏の夜の夢なのねって、かの日の栄光を思い出して、マンションから海を眺めてるんですね。

係)…ま、いい。

EXIT PROGRAM

係)で、もう一段上があるぞ。

それがEXIT PROGRAM

これはな、「このプログラムはもう終わり」だ。

な)あれ?STOP RUNと何が違うんです?

爆破ですか。このテープは自動的に消滅するですか。なんでか燃えちゃうやつですか。

自己消滅ポリマーなるものが発明されたとかで、これでスパイ大作戦ごっこが捗るってもんですね!

係)なんのために消滅させるんだよ…

な)データ記録しているテープが自己消滅ポリマーだったら…とか考えると。

係)お前それ洒落にならない危険思想だからな。どこにも言うなよ!

それで、STOP RUNとの違いだが、

STOP RUN: 全部終了(実行環境ごと終わる)

EXIT PROGRAM: 呼び出し元へ戻る

CALLされている前提なら、EXIT PROGRAM礼儀正しい帰り方だ。

なぜ GO TO が危険だったのか

係)ここで前回の話と繋がる。

GO TOはな

どこまで終わるか

誰に戻るか

といったことは一切書いてない。

な)あー、だから読む側が毎回地図を描く羽目になると。係長のせいだったんすね。

係)なんで俺のせいになるんだよ。COBOLの考え方だ!

EXIT系は全部、「終点」をコードに書いている。

EXIT PERFORM:ループ終わり

EXIT SECTION:セクション終わり

EXIT PROGRAM:プログラム終わり

使っていいのは、どんなとき?

係)これは覚えとけ。

EXIT PERFORM:条件で抜けたい

EXIT SECTION:ここ以降は意味がない

EXIT PROGRAM:処理の責任を終えた

感情で使うな。構造で使え。

な)難しいこといいますね⋯

係)終わらせる命令を簡単に考えるな。

まとめるとこんな感じだ。

EXIT PERFORMは「ループ」だけ抜ける

EXIT SECTIONは「セクション」そのものを終わらせる

EXIT PROGRAMは「呼び出し元へ戻る」正規の出口

GO TOと違い、終点がコードに書いてある

おむすび

な)結局終わり方が大事だってことっすね…

係)お、どうした?今日は静かだな。

な)だって、あのベテラン歌手が一時の栄光にすがって生きていると思うと、愛しくて切なくて哀しくて。

係)だれの話なんだよ!自分の妄想の話で勝手に塞ぎ込むなよ!

係長のワンポイント

EXIT系命令は「どこまで終わるか」をコード上に明示するための非常口だ。
EXIT PERFORMは“ループの終点”、EXIT SECTION は“仕事単位の終点”。
EXIT PROGRAMSTOP RUNと違い、呼び出し元に礼儀正しく戻る出口になる。
GO TOが危険なのは、終点も戻り先も書かれていないからだ。
終わらせ方を書けるプログラムは、読む人を迷子にしない。

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

この記事を書いた人

コメント

コメントする

目次