見出し画像

COBOLに携わりたいと思うが


A.とりあえず、COBOLとは


COBOL(Common Business-Oriented Language)は、ビジネスアプリケーションの開発に使用される古典的なプログラミング言語の1つです。COBOLは、1959年にアメリカ国立規格協会(ANSI)と国際標準化機構(ISO)によって制定された言語規格で、特にビジネス、財務、および行政分野で広く使用されています。以下はCOBOLに関する主要な特徴と用途です:

  1. ビジネスフォーカス: COBOLは、ビジネスデータ処理に特に適しており、数値データ、文字データ、日付データなどを処理するために設計されています。そのため、会計、財務、在庫管理、顧客管理、給与計算などのビジネスアプリケーションの開発に使用されています。

  2. 英語に似た文法: COBOLは英語に似た自然言語に基づいた文法を持ち、プログラムの可読性が高いことが特徴です。これにより、ビジネス関連のルールやプロセスをプログラムに直接反映しやすくなります。

  3. 大規模システム向け: COBOLは大規模なデータ処理およびトランザクション処理に向いており、大規模な遺産システムの開発およびメンテナンスに使用されています。

  4. データファイルの扱い: COBOLはデータファイルの処理に強力で、データの読み込み、書き込み、更新、削除などを容易に行うことができます。

  5. バッチ処理: COBOLはバッチ処理用途に適しており、一連のタスクやジョブを自動的に実行するためのプログラムを開発するのに適しています。

  6. 遺産システムのメンテナンス: 多くの組織は、COBOLで開発された遺産システムを運用しており、COBOLプログラマーはこれらのシステムのメンテナンスやアップデートを担当します。

COBOLは長い歴史を持ち、ビジネスアプリケーション開発において依然として利用されています。古典的な言語であるがゆえに、COBOLプログラマーの需要が継続しており、多くの組織がCOBOLシステムをメンテナンスし、新たなアプリケーションを開発しています。
私は、CODASYL1985版の開発に参加し、その後30年ほどCOBOLと付き合っています。
COBOLは私の財産、COBOLでIBMなど大手から多く受注もいただいた。

B.最新のCOBOLは、


COBOL(Common Business-Oriented Language)は古典的なプログラミング言語であり、言語自体は長い間進化していませんでした。最新のCOBOLの標準は、2002年にCOBOL 2002(ISO/IEC 1989:2002)として承認されました。それ以降、COBOL 2014(ISO/IEC 1989:2014)がリリースされました。このバージョンでは、いくつかの新機能や改善が導入されましたが、COBOL自体は基本的な構文や特性が変わらず、従来のCOBOLコードとの互換性が維持されています。

COBOLの更新は、COBOLの使いやすさと既存の遺産システムとの連携を保ちながら、現代のニーズに適合させることを目的としています。これには以下のような変更や追加が含まれます:

  1. 国際化: COBOL 2014では、国際的な文字セットやロケールに対応するための改良が行われました。これにより、異なる言語や地域に合わせたアプリケーションの開発がサポートされています。

  2. データ型の拡張: COBOL 2014では、新しいデータ型や改善されたデータ型操作が導入され、データ処理の柔軟性が向上しました。

  3. 64ビットサポート: COBOL 2014では、64ビット環境での実行に対応し、大規模なデータ処理が可能となりました。

  4. XMLサポート: COBOL 2014では、XMLデータの解析や生成をサポートする機能が追加されました。

  5. 改良された数学関数: COBOL 2014では、数学関数の精度が向上し、科学的な計算に適した機能が追加されました。

これらの変更は、COBOLを現代のビジネスアプリケーションの要件に合わせてアップデートし、新しいプラットフォームや環境での利用を支援するために行われました。しかし、COBOLは根本的には古典的な言語であり、新しいプログラミング言語と比較して制約があるため、その使用は主に遺産システムや特定の業界で継続されています。

C.COBOL 2014新機能

COBOL 2014は、COBOL言語の最新バージョンで、古典的なCOBOLの機能を拡張し、現代のプログラム開発ニーズに適合させるためにいくつかの新機能や改善が導入されました。以下は、COBOL 2014の主な新機能と改善点です:

  1. 国際化とユニコードサポート: COBOL 2014では、国際化とユニコードサポートが向上し、多言語や異なる文字セットを扱うアプリケーションの開発が容易になりました。これにより、国際的な環境でのCOBOLアプリケーションの作成がサポートされています。

  2. データ型の拡張: 新しいデータ型が導入され、データ処理の柔軟性が向上しました。COBOL 2014では、高精度な10進数計算をサポートするDecimal型が追加され、算術演算が向上しました。

  3. 64ビットサポート: COBOL 2014は、64ビットアーキテクチャでの実行をサポートし、大規模なデータ処理やメモリ要件が増加したアプリケーションに対応します。

  4. 改善された数学関数: COBOL 2014では、数学関数が改善され、科学的な計算や精度の高い計算を行うための新しい関数が導入されました。

  5. XMLサポート: COBOL 2014は、XMLデータの解析と生成をサポートする機能を追加し、データの交換や連携に役立ちます。

  6. 改善されたファイル処理: ファイル処理に関連する多くの改良が行われ、ファイル操作がより柔軟になりました。新しいファイル制御オプションが追加されました。

  7. 新しい標準ライブラリ: COBOL 2014には新しい標準ライブラリが導入され、プログラムの開発をサポートします。これには新しいルーチンやユーティリティが含まれています。

これらの新機能と改善点により、COBOL 2014は従来のCOBOLと比較してより現代的なアプリケーション開発に対応し、特に国際化、数学計算、データ処理、XML処理などの分野での能力が向上しました。 COBOL 2014を使用することで、遺産システムのメンテナンスや新規アプリケーションの開発をより効率的に行うことができます。

D.データ共有化:CSVファイル


COBOLを使用してCSV(Comma-Separated Values)ファイルの入出力を行うためには、COBOLのファイル操作を使用してファイルを開いたり、データの読み込みや書き込みを行うことができます。以下に、CSVファイルの入出力をCOBOLで行う基本的な手順を示します。

CSVファイルの読み込み(入力):

  1. ファイルの定義: CSVファイルのレコード構造をCOBOLのRECORDデータ項目で定義します。CSVファイルの各フィールドに対応する項目を作成し、必要に応じてデータ型やピリオドの使用方法を指定します。

  2. ファイルのオープン: `OPEN INPUT`ステートメントを使用してCSVファイルを読み込みモードでオープンします。

  3. ファイルからデータの読み込み: `READ`ステートメントを使用してCSVファイルからレコードを読み取り、COBOLのデータ項目にフィールドをマッピングします。CSVファイルのフィールドは通常、カンマやセミコロンなどの区切り文字で分割されています。

  4. 処理とループ: 読み込んだデータを処理し、必要に応じてループを使用して複数のレコードを読み込みます。

  5. ファイルのクローズ: ファイル操作が完了したら、`CLOSE`ステートメントを使用してファイルをクローズします。

CSVファイルへの書き込み(出力):

  1. ファイルの定義: CSVファイルの出力用に、データをCSV形式で表現するためのデータ項目を定義します。

  2. ファイルのオープン: `OPEN OUTPUT`ステートメントを使用してCSVファイルを書き込みモードでオープンします。

  3. データの書き込み: `WRITE`ステートメントを使用してCSVファイルにデータを書き込みます。データ項目をCSV形式に整形して、CSVファイルに書き込みます。

  4. 処理とループ: 複数のデータをCSVファイルに書き込む場合、ループを使用して各データを処理し、CSVファイルに書き込みます。

  5. ファイルのクローズ: ファイル操作が完了したら、`CLOSE`ステートメントを使用してファイルをクローズします。

COBOLは、ファイル操作に関する強力な機能を提供しており、CSVファイルの入出力を効果的に処理できます。ファイル操作に関する詳細なコード例やファイルのオープンおよびクローズの手順は、使用しているCOBOLコンパイラや環境に依存する場合がありますので、該当するCOBOLコンパイラのドキュメンテーションを確認することをお勧めします。

E.COBOLは、さまざまなコンピュータプラットフォームで実行できるプログラミング言語です


COBOLプログラムはさまざまなハードウェアおよびオペレーティングシステムで動作可能です。以下は一般的なコンピュータプラットフォームでCOBOLを実行できる例です:

  1. Mainframeコンピュータ: COBOLは、IBMのメインフレームコンピュータシステム(System zシリーズ)で広く使用されています。IBMのCOBOLコンパイラを使用してCOBOLプログラムを実行できます。

  2. UNIXおよびLinux: UNIXおよびLinuxベースのシステムでも、COBOLコンパイラとランタイム環境が利用可能です。主要なUNIXおよびLinuxディストリビューションでCOBOLプログラムを実行できます。

  3. Windows: WindowsプラットフォームでもCOBOLプログラムを実行できます。Micro FocusやAcuCOBOLなどのCOBOLコンパイラがWindows用に提供されており、Windows上でCOBOLアプリケーションを開発および実行できます。

  4. クラウド: クラウドプラットフォームでもCOBOLを実行できます。Amazon Web Services(AWS)やMicrosoft Azureなどの主要なクラウドプロバイダーはCOBOLランタイムを提供しており、クラウド上でCOBOLアプリケーションをホストできます。

  5. エンベデッドシステム: 一部の組み込みシステムや組み込み制御システムでもCOBOLが使用されています。COBOLランタイムが組み込まれた専用のハードウェアやソフトウェア環境が存在します。

一般的に、COBOLは様々なコンピュータプラットフォームで使用可能であり、特定のプラットフォームに制約されることはありません。したがって、COBOLプログラムは多くの異なる環境で実行でき、古い遺産システムから新しいプラットフォームへの移行に役立つことがあります。

現在、結構、COBOLシステム保守案件もありますが、年齢が壁になり、受注するまでには至っていません。


“退職したコボラー”を呼び戻すより

 「引退したCOBOL技術者たちは、COBOLの知識だけでなく、長年携わってきたシステムの知見も豊富に持っている」。こう話すのは、ヴィンジュ氏のCWIの同僚であるティス・ファン・デル・ストーム氏だ。ストーム氏は、グローニンゲン大学のソフトウェア工学教授を務める。
 COBOL技術者がいなくなることは、COBOLを扱える人が不足するというだけでなく、そのシステムをメンテナンスしたり改修したりするのに関連する知見を有する人材も不足する事態につながる可能性がある。この状況は、システムがCOBOLで稼働している組織にとって重大なリスクとなる。
 オランダ社会保険銀行(SVB)のシステムは、COBOLで動いている。SVBのシステムで問題が発生した際、同行はそのシステムに関する知見を持っている人材がほとんど引退している状況に直面した。
 SVBはこの問題に対処するため、引退したCOBOL技術者たちを呼び戻さなければならなくなった。対象のシステムやCOBOLについて十分に理解していた技術者らが来てくれたことで、問題を迅速に解決することができたという。


参考

COBOLの最新動向 ~「2025年の崖」克服のために~ 株式会社 日立製作所 デジタルプラットフォーム事業部 システム&データアプリケーション



サポートされる事が何よりの励みになります。日毎に投稿するよう頑張っています。自分のサイトでアクセス数の多い物とか、日経などのメールで気になった内容を情報源としています。