016 COBOL から C言語 3

03 : コンピュータとシステム

当時の大型汎用機のCOBOL言語からC言語に移行する際の感想を記載している。

今やWindowsでも動くCOBOLのフリーコンパイラがある時代であるが、これはあくまでも当時を回想したものだ。このため内容は、かなり怪しい。

決して仕事や学校の論文材料として引用しないようお願いします。責任を持てません。



=== C言語の特性 ===
・OSはDOS、Windows
何と言ってもC言語は、DOS、Windows、UNIX環境で動作するため圧倒的に環境構築の敷居は低い。極端に言うと誰でも気軽に始められる。

大型汎用機のOSはIBMならMVS、富士通ならMSP、日立ならVOS3と大よそ決まっている。IBMのMVSを基本にしているため3社のOSは酷似している。

他の汎用機メーカーのバロース(現 ユニシス)の経験があるが、新人時代にはバロースから日立にプログラム移行の作業をした。

同じCOBOL言語でもOSが異なると動作環境が異なるため、言語変換が必要だったが、COBOLは若干の命令を変換すれば大抵の場合、他機種でも正常に動作する。

これはCOBOL言語を東芝製、三菱製の大型汎用機に移植するプロジェクトに在籍していた経験からだ。勿論、正常稼働までの苦労は多数あるが。

かたやC言語は、処理系(コンパイラ)によって動かないことも少なくない。
銀行・損保系が今だ汎用機を使用する理由に、大型汎用機のこうした動作の安定性も理由にあると思う。


・ファイル編成の基本は順ファイル
COBOLは幾つかのファイル編成を持つ。C言語は基本的に順ファイルだけ。

例えば 汎用機の順ファイルは、データがそのまま連続して記録される。レコードの区切りなどない。
READ命令でレコード単位、ブロック単位で正確に必要なバイト数を読み込み機械の方で上手く処理する。

C言語は、大量に並んだ文字データ or 2進データを読み込み、必要なバイト数を変数にセットして処理する。
DOS、Windows、UNIX環境は、基本的にレコードの概念もファイル編成の概念がないからだ。

汎用機のISAM編成ファイル、VSAM編成ファイルに代わるものがない故、順ファイルの索引を自分で作るか、プログラム上で直接アクセス出来るような処理を施さなければいけない。
それを知るとCOBOL技術者は途方に暮れる。

C言語を組みだすと、基本処理(データの読み込み/書き込み)だけでエネルギーを使い果たし、燃え尽きて挫折するCOBOL技術者は少なくない。

汎用機OSは、いたれりつくせりの手厚い処理が施されていたんだなあとつくづく思ったもんだ。


« »