Mybestpro Members

白石洋一プロは大分朝日放送が厳正なる審査をした登録専門家です

COBOLは得意でした

白石洋一

白石洋一

テーマ:コンピュータテクニカル

コンピュータのソフトはOSの下で動くように用意されたコンパイラーを使って最終的にはコンピュータが解釈可能な「マシン語」に変換されて動きます。
コンパイラーもソフトの一つに過ぎません。これをどのように開発したのかは大変興味深いです。

COBOL (Common Business Oriented Language) コボルは
英語に近い命令表現で処理手順を記述しコンパイラを経て所謂コンピュータを使った業務システムとして様々なユーザーで採用されてました。
20代後半、私は東京から大分にUターンして数年経った頃、日立の汎用機(HAITAC:Mシリーズ:VOS1[OS])の環境でSE(システムエンジニア)として参加してました。
業務システムの設計は先輩方(ベテラン)が担当し、マスタやトランザクションのデータベースの設計は課員であるSEでチームを組んでやります。
処理の手順とデータベースの設計が終われば、製作に着手します。

COBOLは1行80文字(正確には80BYTE)に 処理したい命令の順序で記述します。

PROCEDURE DIVISION. (決まり文句:処理開始)
MAIN SECTION.    (決まり文句:塊の開始)
*>値を設定する (コメント行)
MOVE 100 TO WORK-NUM. (100を WORK-NUM という項目に代入する)
MOVE 300 TO WORK-SUM. (300を WORK-SUM という項目に代入する)
*>WORK-SUMに減算した結果を保存する(コメント行)
SUBTRACT WORK-NUM FROM WORK-SUM. (引き算を指示 WORK-NUM=WORK-NUM-WORK-SUM この動作です)
*>結果を出力する(コメント行)
DISPLAY "結果: "WORK-SUM. ( コンソール画面に、計算結果を表示する)
STOP RUN.     (決まり文句:処理の終了)

この様なソースコードを数千行、場合によっては数万行を記述します。
通常は「コーディング用紙」という印刷した紙(原稿用紙の様なモノ)に当時はシャープペンで一行づつ書きました。

ソースは汎用機にぶら下がる端末(ビデオデータターミナル:VDT)を使い、一行一行パンチをしてました。
思えばこの作業は一番時間がかかる作業でした。
専用のエディタが有りましたが、当時はカラム位置の制御程度で全ても文字は入力です。
現在はパソコン上でVB.NETでのソース入力はVisualStudio等のツールで予約語は勿論、変数名も、候補を出して選ぶ・・と言うやり方が可能です。
なんと、なんと進化した事か!

パンチが終わるとコンパイル(文法チェック&マシン語変換)です。
予約語のスペルミス、文法の間違い、変数名やラベル名のスペルミスやパンチミス
人は実に様々なミスを致します。
コンパイラは実に根気よく何度も何度もこの動作に付き合ってくれます。文句一つ言わずに

コンパイルが終わると、実際に使うインプットとなるデータを準備します。
業務処理のプログラムは、基本的にデータをINPUT(入力)して何らかの加工処理を行いOUTPUT(出力)を行うパターンが一般的です。
様々なINPUTデータのケースを想定して、そのOUTPUTが想定通りに正しく出力されるか?
デバッグ(虫取り)作業を繰り返しプログラムの品質を担保して行きます。
1)想定しないINPUTデータがある
2)それに対応する加工処理が抜けている
こうやって、「バグ」(虫;欠陥)を持ったままリリースされてしまう場合が有ります。
テストされないで誤ったOUTPUTが次の処理でまた正常に動作せず連鎖が広がります。
ケースによっては、社会を混乱させるようなシステムダウンにつながってしまうのです。
COBOLに限った事ではありません

お客様への納品物としてテストケースと、テストに使った実データのダンプリスト(INPUT,OUTPUT)をエビデンスとして作成するケースが有ります。
この作業自体にもかなりな時間を要します(つまり工数が増大します)
ソフトウエアの開発費用は、この様な作業時間も含まれて居る場合も有ります。

業務システムはこうして制作された数百本に分けられたプログラムを、設計された順に整然と順次実行して最終的なOUTPUTを求めます。
その為の仕掛けとして、OS(オペレーティングシステム)にはJCL(Job制御言語)が用意されております。

COBOLの歴史は60年だそうです。(AIによれば)私が5歳の頃には既に開発されていたという事です。
データ構造は3次元配列を可能としてそれを操作する為の処理命令も用意されており
私はそのようなスペックを最大限に活用しての開発を得意としてきました。
新日鉄大分(かつて担当してました)や殆どの銀行、行政機関でも長年に渡って使われてきました。
現在も大手の情報処理システムには残っている聞いてます。(今後同様に維持管理していくのでしょうか・・・余計な心配か(-_-))
しかし、現状の社会環境でCOBOLを選択する人は居ません。
汎用機は廃れ、オブジェクト指向のプログラミング言語が出現して、さらに進化した言語も登場してます。

Java
JavaScript
C
c++
VB6(VBA)
HTML
VB.NET
c#
PL/I
RPG
RFD
PHP
アセンブラ(汎用機)

必要に迫られて様々な言語を書いてきました。
私の言語のベースはアセンブラ(汎用機)です
この動きが理解出来ているので
COBOLだろうがCだろうが、手段を選びません。
あとは「慣れ」です

本日はこんな所で

リンクをコピーしました

Mybestpro Members

白石洋一
専門家

白石洋一(システム開発)

株式会社アクセプトワークス

中小企業向けに、開発費用負担を抑えつつ、導入先の要望に合わせてカスタマイズしたシステムを提供。Excelを利用した開発を得意とし、既存環境でも使えるシンプルなシステムで中小企業のIT化を支援します。

白石洋一プロは大分朝日放送が厳正なる審査をした登録専門家です

関連するコラム

プロのおすすめするコラム

コラムテーマ

コラム一覧に戻る

プロのインタビューを読む

中小企業のIT化を支援するシステム開発のプロ

白石洋一プロへの仕事の相談・依頼

仕事の相談・依頼