« CSVファイルの読込み(TextFieldParser) | トップページ | 事務処理に最適化されたCOBOL 丸め誤差 »

2007年6月 3日 (日)

事務処理に最適化された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、プログラミングのランキングサイトはこちらです。

にほんブログ村 IT技術ブログへ 人気blogランキングへ FC2 Blog Rankingへ


最新記事の自動受信登録はこちらです。

はてなRSSに追加

livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加

|

« CSVファイルの読込み(TextFieldParser) | トップページ | 事務処理に最適化されたCOBOL 丸め誤差 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/279803/6634187

この記事へのトラックバック一覧です: 事務処理に最適化されたCOBOL 冗長化:

« CSVファイルの読込み(TextFieldParser) | トップページ | 事務処理に最適化されたCOBOL 丸め誤差 »