移行ガイド

違うところだけ、先に

COBOL の経験がある方向けに、SIT COBOL で戸惑うところを集めました。 基本は COBOL85 なので、ここに書いていないことはだいたいそのまま通ります。

まず押さえる3つ

コンパイルしない

SIT COBOL はインタプリタです。.cob をそのまま実行します。 オブジェクトも Makefile もありません。

索引ファイルは SQLite3

ORGANIZATION IS INDEXED の実体は SQLite3 のファイルです。 records(key, data) の1表を持ちます。

SQL は前処理が要らない

EXEC SQL を .cob に直接書けます。 .pco もプリコンパイラもありません。

SIT COBOL 独自のところ

項目SIT COBOL備考
ソースコードの文字コード UTF-8 NetCOBOL(富士通)や COBOL2002(日立)はシフトJIS が基本です。 移行時はソースを UTF-8 に変換してください
CSV / TSV ORGANIZATION IS LINE SEQUENTIAL WITH CSV 独自の書き方。区切り文字の分解を処理系が行います。 サンプル
索引ファイル 実体は SQLite3 ISAM ではありません。Pro 版の機能です
埋込み SQL 接続先も SQLite3
CONNECT TO 'TESTDB.sqlite3'
診断は SQLCODE / SQLMSG / SQLIMAGE。 Pro 版の機能です
CALL の解決 ファイル名で探す CALL "CARDVAL" は同じフォルダの CARDVAL.cob を呼びます。 PROGRAM-ID では解決しません
GOBACK 使えません 副プログラムは EXIT PROGRAM、主プログラムは STOP RUN
実行の仕方 sitcobol.exe(画面)
sitcobol_bat.exe(コマンド)
コマンド版は lang=ja を付けられます

他の処理系から持ってきた書き方

次のものは、なじみのある形のまま使えます。

書き方由来サンプル
CBL_GET_PID などの CBL_ 系Micro Focus 互換(opensource COBOL もサポート) 第10章
PERFORM FOREVER / EXIT PERFORMMicro Focus / GnuCOBOL / opensource COBOL PERFORM文
78 レベルの名前つき定数Micro Focus / NetCOBOL / opensource COBOL 商品在庫管理
*> の行内注記COBOL 2002 / Micro Focus / NetCOBOL / GnuCOBOL / opensource COBOL全体で使用
SET ENVIRONMENT / ACCEPT ... FROM ENVIRONMENT GnuCOBOL / opensource COBOL / Micro Focus 環境変数
SCREEN SECTION + COLOR + PFキーMicro Focus / GnuCOBOL / opensource COBOL 系 画面機能
NC"..." の日本語定数富士通・NEC・日立の COBOL / opensource COBOL 日本語項目
N"..." の日本語定数ANSI 系 / Micro Focus / opensource COBOL同上(両方使えます)
日本語のデータ名、段落名などの名標日本語COBOL の慣習 第12章

※ COBOL2002 は日立、NetCOBOL は富士通のオープン系 COBOL 製品です。 Micro Focus COBOL は現在 Rocket Software の製品(Rocket Visual COBOL)になっています。

版による違い

機能StandardPro
COBOL85 の中核・画面機能・順ファイル・CSV/TSV○○
索引ファイル(ORGANIZATION IS INDEXED)×○
埋込み SQL(EXEC SQL)×○
Standard で索引ファイルを使うと

「索引ファイル機能: スタンダード版では実行できません」と表示され、 書き込みが ファイルステータス=48 で失敗します。 このサンプル集では 21 本が Pro 版を必要とします。

商品在庫管理のサンプルは、88 レベルの条件名で 両方の版に対応させています。同じ業務処理を索引ファイルと CSV の どちらでも動かす書き方の実例として読めます。

移行時に読むサンプル

この順で見れば、違いはひととおり把握できます。