くんすとの備忘録

IT系技術メモ

移転しました。

15秒後に自動的にリダイレクトします。

【COBOL】FreeBSDにOpenCOBOLを入れてみた

COBOLの処理系を入れてみたよ!

インストール

packageからインストール。

pkg_add -r open-cobol

コンパイルオプションの確認

cobc --help

おためし

とりあえずHello Worldしてみる

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
ENVIRONMENT DIVISION.
DATA DIVISION.
*
WORKING-STORAGE SECTION.
  01 GREETING-STRING.
    10 STR01    PIC X(05).
    10 FILLER   PIC X(01) VALUES ' '.
    10 STR02    PIC X(06).
*
PROCEDURE DIVISION.
MAIN-RTN.
    MOVE 'HELLO'  TO STR01.
    MOVE 'WORLD!' TO STR02.
    DISPLAY GREETING-STRING.
    MOVE 0 TO RETURN-CODE.
    EXIT PROGRAM.
*

折角なので、ちょっとだけ遠回りしてみたり。

コンパイルして実行

cobc -free -x test.cbl -o test.bin
./test.bin

無理やりシェル内に書いてしまうとこんな感じ

#!/bin/sh

cblsrc=./cobolsrc.tmp
cblbin=${cblsrc}.bin

cat <<++EOS > $cblsrc
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
ENVIRONMENT DIVISION.
DATA DIVISION.
*
WORKING-STORAGE SECTION.
  01 GREETING-STRING.
    10 STR01    PIC X(05).
    10 FILLER   PIC X(01) VALUES ' '.
    10 STR02    PIC X(06).
*
PROCEDURE DIVISION.
MAIN-RTN.
    MOVE 'HELLO'  TO STR01.
    MOVE 'WORLD!' TO STR02.
    DISPLAY GREETING-STRING.
    MOVE 0 TO RETURN-CODE.
    EXIT PROGRAM.
*
++EOS

cobc -free -x $cblsrc -o $cblbin && $cblbin
echo "\$?=$?"
rm $cblsrc $cblbin

気づいたこと

  • OpenCOBOLでは「PROGRAM-STATUS」は定義されていない。どうやら、戻り値は「RETURN-CODE」に入れるようだ。