COBOLってどんな言語?特徴や将来性をわかりやすく解説
「COBOLっていったいなにができるの?」
「COBOLの将来性は?」
「COBOLでプログラムを作成してみたい」
これからCOBOLを始めてみたい方、興味のある方にとってはこのような疑問があるのではないでしょうか?
COBOLは比較的古い言語ですが、まだまだ需要が見込める言語でもあります。
ここではCOBOLに少しでも興味のある初学者やエンジニアの方に向けて、COBOLとはどのような言語なのか?COBOLはどうやってプログラムを記述するのか?といった内容についてわかりやすく解説していきます。
目次
そもそもCOBOLとは
COBOL(コボル)は「Common Business Oriented Language」の略で1959年に登場した歴史のあるプログラミング言語です。
当時でもFORTRANやLIPSなどのプログラミング言語は存在していましたが、事務員でも金額の計算などで手軽に書けるプログラミング言語は少なく、事務処理で使用するためのプログラミング言語の需要が高まっていました。
そんな折登場したのがCOBOLで、事務処理用に特化した自然言語である英語に近い記述で構文が使えるため、COBOL人口が世界的に広まっていきました。
現在でもCOBOLは金融系や証券などのシステムで多く採用されています。
COBOLの3つの特徴とは
可読性が高い
COBOLは自然言語(英語)に近い構文を持つため、そのソースコードの記述が冗長になりやすいですが、その分可読性が高い言語といえます。
また、プログラムが部、節、段落、文という構成に分かれているため、作成したプログラムがドキュメントとしてそのまま使えるといったメリットがあります。
保守性に優れている
COBOLは半世紀にわたる実績があり、大昔に作られたシステムが現在でも保守され続けています。規格が統一されているため、他の人が書いても似たような構文となるため、保守がしやすくなるといったメリットがあります。
計算処理が得意
COBOLは前述したように金額の計算など事務処理を目的として作られた言語のため、計算処理に強い言語といえます。
たとえば、COBOLではデータ項目(変数)指定時にデータ長(桁数)も厳密に指定する必要があります。計算結果が浮動小数点数になる場合、他のプログラミング言語では誤差が生じることが多いですが、COBOLでは2進化10進数を用いることにより、わずかな誤差も出さない正確な数値を出すことができます。
COBOLの将来性
COBOLは歴史のあるプログラミング言語ですが、現在ではさまざまな使い勝手の良い言語が登場していいます。
多くの入門者は記述がより簡単なウェブ系の言語やJava・Pythonなどの人気の高い言語を選択します。エンジニア未経験であえてCOBOLから入門しようとする人は少ないと言えるでしょう。また、COBOLを教えているスクール自体も非常に少ないです。
そのため、COBOLを扱える現役のエンジニアは減少の一途をたどっていますが、規模の大きな金融系システムや基幹システムではCOBOLのシステムが現役で稼働しているため、まだまだ淘汰されるプログラミング言語ではないと言えます。
COBOLエンジニアの減少により、採用している企業にとっては大きな人手不足に陥っているのが現状です。しかし、安定して働きたいならあえてCOBOLのスキルを覚えておくことも選択肢の1つとして検討しても良いでしょう。
COBOLでできること
可読性の高さの特徴を持つ言語であるCOBOLを使うと、どんなことができるのでしょうか。
また、COBOLはどんな場所で利用されているのでしょうか。
COBOLでできることと、使われているシステムについて、ご紹介したいと思います。
事務処理
前述したように、もともとCOBOLは事務処理用の言語として開発されたもので、事務処理用プログラムの開発に適しています。
並列の処理や大量のデータの書き込みなども高速で行うことができるため、現在でもCOBOLは主に事務処理系のシステムの開発に用いられています。
計算処理
特徴でも軽く説明しましたが、COBOLは計算処理も得意としています。
コンピュータでは2進数での処理が基本となっているため、他言語では計算の結果を表示する際に2進数から10進数への変換処理が行われます。
しかし、その変換の際に誤差が生じてしまう場合があります。
COBOLでは10進数でのデータ表現を可能としていることで、四則演算を高い精度で行えるのです。
帳簿の出力
事務処理に欠かせない、取引や資産の流れを記録しておくための帳簿の出力も、出力したい項目の設定から簡単に行えます。
また、その他の事務用紙の作成・印刷にも向いています。項目を設定したり、印刷時の空白や右寄せなどのフォーマット指定などのプログラミングも可能です。
こういった長所を活かして、COBOLは企業の基幹システムや大量のデータの処理を必要とする行政や金融機関のシステムなど多くの場所で利用されています。
金融機関では計算処理を自動化する業務システムにも役立っていたり、政府機関の書類作成のためにCOBOLの帳票処理が使われたりと、古くから大規模のシステムに活用されている汎用的な言語です。
COBOLのデメリット
様々な場所で採用されているCOBOLですが、デメリットももちろんあります。
技術者の高齢化・汎用機の減少
COBOLは歴史のある言語であるため、扱えるエンジニアが高齢化していることが問題視されています。
現在のITシステムにおいて高い人気を持つ言語や将来性の高い言語はたくさんあり、新たにCOBOLを習得するメリットは少なく、学習する人は減ってきています。
高齢化や人手不足が囁かれていますので、あえて習得して案件を獲得するのも良いかもしれません。
また、歴史の古さから汎用機が減少しており、不具合の際の部品やメンテナンスが少ないこともデメリットのひとつです。
新規案件の減少
これも様々な言語が進出してきていることによるものですが、1からCOBOLを使って開発するという新規案件はなくなりつつあります。
もちろん、すでにCOBOLで開発されたシステムを採用している企業・機関からの保守案件は発生します。
コストや安定性などの面から移行に消極的な企業は多いですが、もし新言語へのシステム移行のメリットがそれを上回り、移行が進めば減少の一途をたどっていくでしょう。
COBOLは古い?
COBOLは古い言語ですが、汎用性システムではいまだに使用しているところも少なくありません。
新しい案件が少なく、古いイメージがあるCOBOLですが、現在もその需要が高いです。今もなお、保険会社や銀行などのシステムは、COBOLで開発されたシステムを使っているところも多いようです。
古いとも言われているCOBOLですが、信頼性が高く、安心安全を求める企業などからは、高い需要を維持しているのです。そのため、将来的にもCOBOLの需要は続くことが考えられるでしょう。
また、現在は技術者が少ないので、当分はCOBOL技術者の需要もなくなる可能性は低いと言えます。
実際にCOBOLでプログラムを作ってみよう
ここでは実際にCOBOLで四則演算の結果を出力するプログラムを作成してみましょう。
以下のように記述します。
IDENTIFICATION DIVISION.
PROGRAM-ID. CALCSAMPLE.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 CALC-DATA.
03 DATA-A PIC 9(2) VALUE 20.
03 DATA-B PIC 9(2) VALUE 10.
03 DATA-C PIC 9(2)V9(3) VALUE 10.4586.
03 RESULT PIC 9(3)V9(5).
PROCEDURE DIVISION.
MAIN.
COMPUTE RESULT = DATA-A + DATA-B
DISPLAY "加算結果:"RESULT
COMPUTE RESULT = DATA-A - DATA-B
DISPLAY "減算結果:"RESULT
COMPUTE RESULT = DATA-A * DATA-C
DISPLAY "乗算結果:"RESULT
COMPUTE RESULT = DATA-A / DATA-C
DISPLAY "除算結果:"RESULT
STOP RUN.
実行結果は以下のようになります。
加算結果:030.00000
減算結果:010.00000
乗算結果:209.16000
除算結果:001.91241
プログラムの内容を以下に解説します。
IDENTIFICATION DIVISION
プログラムの見出し部となります。PROGRAM-IDにプログラム名を指定します。
ENVIRONMENT DIVISION
プログラムの環境部となります。CONFIGURATION SECTIONは環境節、ファイル操作を記述するときはINPUT-OUTPUT SECTION(I-O節)で分けられます。
DATA DIVISION
プログラムのデータ部となります。ここにプログラムで使用する変数を記述します。データ部はWORKING-STORAGE SECTIONとファイルを使用するときのFILE SECTIONに分けられます。
サンプルプログラムでは計算に使用する「01 CALC-DATA」を定義し、配下に「03 DATA-A」「03 DATA-B」などの変数(データ項目)を定義しています。
「PIC 9(2)」は2桁の数値となります。「PIC 9(2)V9(3)」は2桁の数値で小数点の桁数を3桁で指定しています。このようにCOBOLが厳密に桁指定が可能であることがわかりますね。
PROCEDURE DIVISION
プログラムの手続き部となります。実際のプログラムの処理を記述します。
COMPUTE文は計算式で使用します。サンプルプログラムでは演算結果用の項目RESULTに演算結果を代入しています。
DISPLAY文はコンソールに文字列を出力するために使用します。COBOLの場合、変数の内容を出力するにはそのまま変数名を指定すれば大丈夫です。
最後にSTOP RUNでプログラムを終了します。
まとめ
ここではCOBOLの概要や特徴、実際のプログラムの書き方について解説しました。紹介したようにCOBOLの需要はまだまだあるにも関わらす扱える人口は減ってきています。
COBOLはここで紹介したプログラムを見てわかるように現在の主要な言語に慣れたエンジニアにとっては少し芝居が高い言語と感じたかもしれません。しかし、まだまだ活躍の機会が多い言語ですので、この機会にぜひCOBOLについて学んでみてはいかがでしょうか。