事務処理に最適化されたCOBOL 冗長化
wikipediaには
「COBOLの冗長さ」は有名で、時折ハッカージョークのネタにされる。例えばCOBOLのオブジェクト指向拡張案「ADD 1 TO COBOL GIVING COBOL」(C++のもじり)などである。
http://ja.wikipedia.org/wiki/COBOL
そこにはそれを裏付けるけるかのように、以下のようなコードが記載されています。これをアンチコボラーが見たら『ほーらね。COBOLはこんなに無駄だらけじゃない!』と思うでしょうね。或はCOBOLを知らない人はなるほどCOBOLは流行らないわけだと納得することでしょう。
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. HELLOWORLD.
000300 DATE-WRITTEN. 02/05/96 21:04.
000400* AUTHOR BRIAN COLLINS
000500 ENVIRONMENT DIVISION.
000600 CONFIGURATION SECTION.
000700 SOURCE-COMPUTER. RM-COBOL.
000800 OBJECT-COMPUTER. RM-COBOL.
000900
001000 DATA DIVISION.
001100 FILE SECTION.
001200
100000 PROCEDURE DIVISION.
100100
100200 MAIN-LOGIC SECTION.
100300 BEGIN.
100400 DISPLAY " " LINE 1 POSITION 1 ERASE EOS.
100500 DISPLAY "HELLO, WORLD." LINE 15 POSITION 10.
100600 STOP RUN.
100700 MAIN-LOGIC-EXIT.
100800 EXIT.
アンチコボラー:『大体BEGINやMAIN-LOGIC-EXITなんて意味無いじゃん。』
コボラー:『これは定型句だから大して面倒じゃないよ。ずっと昔からこうやってるんだから他からコピーペーストしてくれば良いでしょ。』
てな感じでやり取りしそうです。
いまどきのコボラーにHELLO,WORD.を画面表示するのにこんなコードを書く人はいないでしょう。
コボラー的にはHELLO, WORLD.は以下のようにコーディングします。
PROCEDURE DIVISION.
DISPLAY " " LINE 1 POSITION 1 ERASE EOS.
DISPLAY "HELLO, WORLD." LINE 15 POSITION 10.
STOP RUN.
たった4行で、前述と同じ様に画面をクリアし15行目の10桁目にHELLO, WORLDを表示できます。
単に画面に表示するなら
COBOLのHELLO, WORLD.表示ソース
PROCEDURE DIVISION.
DISPLAY "HELLO, WORLD."
STOP RUN.
3行で済みます。更に、DIPLAY文の最後のピリオドも省略できます。
VB.NETでは5行必要です。
Module Module1
Sub Main()
Console.WriteLine("HELLO, WORLD.")
End Sub
End Module
C++のHELLO, WORLD.表示ソース
#include <iostream>
int main()
{
std::cout << "HELLO, WORLD.\n";
}
JAVAのHELLO, WORLD.表示ソース
public class HelloWorldApp {
public static void main(String[] args) {
System.out.println("HELLO, WORLD.");
}
}
命令文が省略化されたC++は比較的文字数が少なくて済みますが、逆に可読性は低くなります。
--- つづく ---
お役に立てましたか?
IT、プログラミングのランキングサイトはこちらです。
最新記事の自動受信登録はこちらです。 |
![]() |
![]() |
![]() |
![]() |
| 固定リンク







コメント