全3756文字
PR

 COBOLは事務処理分野で利用する言語の統一と標準化を目指して開発されたプログラミング言語だ。「Common Business Oriented Language」の略であり、日本語にすると「共通事務処理用言語」になる。手作業で行っていた手続きを変えることなく、紙によるバッチ業務のデータを伝票(レコード)として記述し、それをコンピューターで自動化するものだ。多くのレガシーCOBOLシステムにおいてこの基本設計は変わっていない。

 近年利用されているJavaなどのモダンな言語の多くは「オブジェクト指向」を取り入れているが、その普及は1959年に誕生したCOBOLの20年以上も後である。現在主流のリレーショナルデータベースの基礎である「リレーショナルデータモデル」の考案も、COBOL誕生から約10年後の1970年だ。

 COBOL的思考においては、データを伝票として捉え、データ定義の際にはレベル番号をつける。具体的には、集団項目と基本項目を次のように記述する。レコード(行)単位で認識し、レコードの中の項目の位置(レコードの先頭から何バイト目で何桁目か)を頭に入れて処理を記述する。

01  従業員.
    03  従業員コード  PIC 9(8).
    03  従業員名  PIC  X(20).
    03  入社日.
        05  年  PIC 99.
        05  月  PIC 99.
        05  日  PIC 99.

 COBOL的思考では、処理のある断面においてプログラマーの頭の中には1レコードしか存在しない。これはコンピューターのメモリーの中も同様だ。メモリー消費が少ないことから、COBOL普及時のハードウエアの性能や価格を考えると合理的だった。一方、現在のエンジニアはデータを塊として捉え、月別売上金額のように同じ意味を持つ複数のデータは配列などの形で記述する。

 COBOLでも「OCCURS句」を使って配列を定義できる。だがこれは、データ項目を仕切ることで複数のデータを保存できるようにするものであり、モダンなプログラムにおける配列とは異なる。現在はハードウエアの性能が進化しているため、COBOLの言語仕様やオープン環境で利用できるCOBOL製品が、メモリー消費を抑えるために1レコード単位の処理にこだわる必要はもはやない。それでも現存する多くのレガシーCOBOLシステムは、COBOL的思考の呪縛にとらわれている。

呪縛を解く鍵となるクラウドへの移行

 COBOLを普及させCOBOLユーザーの利益を守るために設立された非営利団体「COBOLコンソーシアム」は、COBOLが還暦を迎えた2020年に「COBOLハッカソン」を開催した。

 ここで、自然言語解析やクラウド音声サービス、ドローン、サーバーレスコンピューティングといった最新テクノロジーとCOBOLを、アマゾン・ウエブ・サービス(AWS)環境下で連携させる試みが行われた。COBOL的思考から脱却するための新たなチャレンジといえるだろう。