Ruby じゃなくて COBOL

Rubyでプログラム書きたいとか言ってたけど
いま、COBOLのソースを解析してますよ・・・orz


ネットで検索すればそれなりに説明が載ってるんだけど
文法周りの細かいところは実際に動かして確認したい。


http://tiny-cobol.sourceforge.net/download.php
ここのTinyCOBOLを使えば、Cygwin上でCOBOLを動かせるとの事なのでチャレンジ。


最新版はlhtcobolが見つからないとかエラー出るしよく分からないから
一つずつバージョンを落としていってコンパイルできるかを確認。
tinycobol-0.57-1.cygwin.zip
でようやくコンパイルが通った。

$ htcobol.exe -vx hello.cbl
/usr/local/share/htcobol/htcobolpp -v -t 8 -x hello.cbl -o hello.i
as  -D -o hello.o hello.s
gcc   -o hello hello.o    -lhtcobol -lm
Info: resolving __impure_ptr by linking to __imp___impure_ptr (auto-import)    


プログラムの実行も確認。

$ ./hello.exe
HELLO WORLD!!


さて、文法の確認するかー。


詳しい人に教えて欲しい・・・・。

COBOL-その1

EXITではプログラムは終了しないし、サブルーチンすら終了しない。


COBOLとは言え、あなどれないなぁ・・・・。


誰か参考になるとは思えませんけど (^^;

IDENTIFICATION  DIVISION.
PROGRAM-ID.     HELLO.
ENVIRONMENT     DIVISION.
DATA            DIVISION.
PROCEDURE       DIVISION.
TEST1-CNTL                      SECTION.
    DISPLAY 'HELLO WORLD!!'.
    PERFORM TEST2-CNTL
EXIT.

TEST2-CNTL SECTION.
    DISPLAY 'HELLO2!!'.
EXIT PROGRAM.

TEST3-PRC SECTION.
    DISPLAY 'HELLO3!!'.
EXIT.    

実行結果

HELLO WORLD!!
HELLO2!!

COBOL-その2

サブルーチン(?)名は - (ハイフン)でつなげて宣言しないといけない


コンパイルが通る

TEST2-CNTL SECTION.
    DISPLAY 'HELLO2!!'.
EXIT PROGRAM. 

コンパイルが通らない

TEST2CNTL SECTION.
    DISPLAY 'HELLO2!!'.
EXIT PROGRAM.