mushroompot

mushroompot

全栈,全干,全菜。 be a fullstack man, just for fun!
twitter

三十年前に戻る(1)COBOL

世界の潮流は広範であり、それに従えば繁栄し、逆らえば滅びます。2023 年の初めの数ヶ月は、LLM のサポートのもとで「天に一日、地に一年」という感じでした。しかし、この急速な発展は私たちを無限の不安に陥れるため、私は自分の不安を和らげるために一連の記事を書くことに決めました。30 年前に戻って「スローライフ」を体験するためです。

奇妙な言語で奇妙なものを書く人がいつも私を探しに来るからではありません。

COBOL とは#

COBOL の正式名称は Common Business Oriented Language であり、主に金融業や会計業界などのビジネスデータ処理に使用される言語です。2023 年現在、COBOL 言語は絶滅の道を歩んでいるかもしれませんが、まだ多くの金融コアシステムが COBOL を使用しています。その理由は 2 つあります。1 つは COBOL 自体の安定性が高いこと、もう 1 つは既存のシステムを変更するコストが非常に高いためです(つまり、他の言語でこれらのシステムを再構築することは多くの場合、経済的に合理的ではありません)。
この記事シリーズの COBOL の部分では、COBOL の基礎を簡単に紹介し、簡単な COBOL チュートリアルを行います。(もちろん、COBOL の研究に多くの時間を費やすことはおすすめしません。この言語は最終的にはサイバー化石になる運命にあるからです。)

最初の一歩#

COBOL と言えば、IBM とメインフレームを思い浮かべる人も多いでしょう。COBOL はメインフレーム上で実行される言語ですが、メインフレームがなければ COBOL を実行することはできないのでしょうか?実際にはそうではありません。現在、さまざまな方法があり、パーソナルコンピュータ上でプログラムを実行するためにメインフレームをエミュレートすることができます。COBOL を試してみるつもりなら、次のチュートリアルの設定を参考にしてください:

Hello COBOL#

どんなプログラミング言語でも "Hello, World!" を表示する必要がありますが、COBOL も例外ではありません。ただし、COBOL の特殊性により、完全な COBOL プログラムの構造を理解する必要があります。

2.jpg

この図は上から下への包含関係を示しており、つまり:

  • プログラムは複数の DIVISION で構成される
  • DIVISION は複数の SECTIONS で構成される
  • .....
000100  IDENTIFICATION DIVISION. 
000200  PROGRAM-ID. HELLO.
000300  ENVIRONMENT DIVISION.
000400  DATA DIVISION.
000500  PROCEDURE DIVISION.          
000600      DISPLAY 'HELLO WORLD'
000700      STOP RUN.

この短いプログラムから、COBOL の構文が現代のプログラムとは異なり、アセンブリ言語のような特徴を持っていることがわかります。この言語の誕生時期から考えると、それは驚くことではありません。次に、このプログラムの構造を分解してみましょう。まず、個々の行を見てみましょう:
1. jpg
COBOL プログラムの形式はかなり厳格であり、各行は次の 5 つの部分に分解することができます:

  • 列 1〜6 はシーケンス領域であり、行番号を示します
  • 列 7 はフラグ領域であり、この位置が * の場合はコメント行、- の場合は継続行、/ の場合は改ページを意味します
  • 列 8〜11 はすべての COBOL 部、セクション、ディビジョン、および一部の特殊エントリが A 領域から始まる必要があります。
  • 列 12〜72 はすべての COBOL ステートメントが B 領域から始まる必要があります。
  • 列 73〜80 はプログラマの必要に応じて使用できます。ここに修正コードなどの識別子を追加します。

IDENTIFICATION DIVISION. は識別部を宣言します
ENVIRONMENT DIVISION. は環境部を宣言します
DATA DIVISION. はデータ部を宣言します
PROCEDURE DIVISION. は手続き部を宣言します

COBOL プログラムには識別部が必要ですが、環境部とデータ部は省略することができます。
ここでは、部分的に宣言されたプログラムの他の部分を分析します。
PROGRAM-ID xxxxx. はプログラムの ID(プログラムの識別子と考えることができます)を示します。
DISPLAY は、Python の print に似ており、後続の内容を表示します。
STOP RUN. はプログラムの終了を示します。

"Hello, World!" プログラムでは、これを前述の COBOL プログラムの構造と対応させることはまだできないかもしれません。これは、この COBOL プログラムがファイルの読み書きを必要とせず、中間変数を保存する必要もないためです。次回の記事でプログラムを完全に紹介します。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。