つい最近、銀行のシステムトラブルが報道されていて、それと関連するのかCOBOLと呼ばれる計算機言語を知っている(高齢)エンジニアが注目されているそうです。
COBOLは古い言語で、FORTRANと同程度のはずです。FORTRANが科学技術計算に特化しているのと同様に、COBOLは事務計算に特化していて、汎用機IBM S/360が出現する前はそれぞれ別の計算機で動作していたようです。要するに、どちらも電子計算機の応用として重要だったと言うこと。それが今でも、ということ。
なのですけど、私はCOBOLの世界はほとんど知らないので、なぜ今問題になっているかがいまいち分かっていませんでした。ところがとあるネットで今もCOBOLプログラマの需要があるとの話題になり、多分よく知っている人の記述でやっと納得しました。COBOLという言語だけで無く、対応するデータベースが重要だったのです。
実は、私が中学生の頃(1970年頃)に電子計算機の能力の素晴らしさが宣伝され、これを何とかして企業活動に生かそう、という機運が生まれていました。そこでNHKの教養講座でコンピュータ特集が始まったのですが、運が悪いことに私が最初に見たのはCOBOL入門で、さっぱり理解できませんでした。その翌年がFORTRAN基礎で、これは驚くほどよく分かったのを覚えています。私の頭が良かったのでは無く、その時の講師(森口繁一、東大教授)がものすごい天才でした。
今でもENVIRONMENT DIVISIONの綴りを覚えているほどですから、強烈な印象はありました。これが計算機言語なのだ、と。今は普通の計算機言語に見えるそうですが、当時はもろに普通の英語の命令文が淡々と続いていました。今は数式も書けるようですが、足し算一つにしても英語で命令します。
笑い話があって、本当に英語で命令を打ち込んだらコンパイラエラーを食らったとか言うのがありまして、技術的には隣接していますが計算機言語は人工知能ではありません。単なる機械的パターンマッチングマシンで、専用の単語を使わないと認識されません。初期のマイコン(NEC PC-6001)アドベンチャーゲームの「ミル モチモノ(全部半角)」みたいな感じ(分からない方、申し訳ないです。私はこれのためにカナ文字入力が堪能になりました)。
COBOLは私の印象では手続き型と言うよりは宣言型言語に近いと思います。入力となる書式と出力の書式を定義すると、途中の換算の計算は機械(電子計算機)が自動的に行ってくれる感じ。うむ、まさに人工頭脳ですな、計算機たるものこうでなくては。
事務計算は私は素人ですが、多分、出納帳みたいなのを想像すれば良いのだと思います。伝票(トランザクション)が来たらこれ(データベース)に一項目追加し、日々、週ごと、月ごと、年度毎に集計します(バッチ処理)。
私事ですが、父が自営業だったので専用の罫線のあるノートにインク壺(ダークブルー)と吸い取り紙とカブラペンでごりごりと記入していたのを思い出します。今もかな、いやさすがに表計算ソフトに置き換わっていると期待します。
いやはや、話題には事欠きません。生物系技術者の私でさえもこの程度は思い出します。なのでちっとも肝心のCOBOL系データベースの話に行きません。関心のある方はCODASYLデータベースでweb検索すると良いと思います。いつものように私が面白いと感じたら続きます。