移行ガイド
違うところだけ、先に
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 | 備考 |
|---|---|---|
| CSV / TSV | ORGANIZATION IS LINE SEQUENTIAL WITH CSV |
独自の書き方。区切り文字の分解を処理系が行います。 サンプル |
| 索引ファイル | 実体は SQLite3 | ISAM ではありません。Pro 版の機能です |
| 埋込み SQL | 接続先も SQLite3CONNECT 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 互換 | 第10章 |
PERFORM FOREVER / EXIT PERFORM | Micro Focus / GnuCOBOL | PERFORM文 |
78 レベルの名前つき定数 | Micro Focus | 商品在庫管理 |
*> の行内注記 | COBOL 2002 / GnuCOBOL | 全体で使用 |
SET ENVIRONMENT / ACCEPT ... FROM ENVIRONMENT |
GnuCOBOL / Micro Focus | 環境変数 |
SCREEN SECTION + COLOR + PFキー | Micro Focus / GnuCOBOL 系 | 画面機能 |
NC"..." の日本語定数 | 富士通COBOL 系 | 日本語項目 |
N"..." の日本語定数 | ANSI 系 | 同上(両方使えます) |
| 日本語のデータ名・PROGRAM-ID | 日本語COBOL の慣習 | 第12章 |
版による違い
| 機能 | Standard | Pro |
|---|---|---|
| COBOL85 の中核・画面機能・順ファイル・CSV/TSV | ○ | ○ |
索引ファイル(ORGANIZATION IS INDEXED) | × | ○ |
埋込み SQL(EXEC SQL) | × | ○ |
Standard で索引ファイルを使うと
「索引ファイル機能: スタンダード版では実行できません」と表示され、
書き込みが ファイルステータス=48 で失敗します。
このサンプル集では 21 本が Pro 版を必要とします。
商品在庫管理のサンプルは、88 レベルの条件名で
両方の版に対応させています。同じ業務処理を索引ファイルと CSV の
どちらでも動かす書き方の実例として読めます。
移行時に読むサンプル
この順で見れば、違いはひととおり把握できます。