導入:なぜ今、廃止された記述を学ぶのか
COBOLのプログラムを見ていると、IDENTIFICATION DIVISION(見出し部)の中に、DATE-WRITTENという記述に出くわすことがあります。現代のコンパイラでは「廃止(Obsolete)」とされていますが、ベテランの現場では今なお現役の資産を保守する機会が多くあります。この記述がなぜ重要かといえば、それは「プログラムの出自を知る唯一の証拠」だからです。当時の開発者がいつ、どのような意図でそのロジックを組んだのか、履歴を追う最初の手がかりになります。
基礎知識:DATE-WRITTENとは何か
DATE-WRITTENは、IDENTIFICATION DIVISIONのCONFIGURATION SECTION(または環境部付近)に配置されるドキュメント項目の一つです。文字通り、プログラムが「いつ書かれたか」を記録するためのものです。
現在の標準規格であるCOBOL2002以降では廃止項目となっており、コンパイル時に警告が出ることもありますが、古いシステムでは仕様書が紛失していることも珍しくありません。そんな時、ソースコード冒頭にあるこの一行が、システムの歴史を語る重要な「証言者」となります。
実装と読み解き方
この項目は実行時のロジックには一切影響を与えません。あくまで人間が読むためのメモです。しかし、保守の現場では「いつ作成されたか」だけでなく、「いつ修正されたか(DATE-COMPILEDなど)」とセットで確認することで、そのプログラムがどれだけのライフサイクルを経てきたかを推測する材料にします。
サンプルプログラム
以下は、古い汎用機で見かける標準的な記述例です。現在の環境でコンパイルを通す際は、コメントアウトするか、環境設定で古い規格を許可する必要があります。
IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE01.
-------------------------------------------------------
- 以下のDATE-WRITTENは廃止予定の記述ですが、
- 保守時に作成日を確認する際、非常に有用です。
応用・注意点:現場での活用と落とし穴
現場でこの記述に出会った際、以下の点に注意してください。
1. 情報の信頼性: DATE-WRITTENに書かれた日付は、あくまで「初版作成日」であることがほとんどです。数十年運用されたプログラムであれば、その後何度も修正が入っているはずです。この日付だけで「古いから危険」と判断せず、必ずソース内の変更履歴コメント(修正者名や日付)を併せて確認してください。
2. コンパイル時の警告: 最新の環境へマイグレーションする際、DATE-WRITTENはコンパイルエラーや警告の原因になることがあります。その場合は、無理に残さず、コメントアウトして後世のために残すのが賢明な判断です。
3. 形式のバラつき: 当時の担当者によって「YYYY-MM-DD」形式だったり「YYMMDD」形式だったりと揺れがあることがあります。これもまた、当時の開発文化を垣間見る面白いポイントです。
レガシーコードの保守は、過去の技術者との対話です。こうした廃止項目一つひとつが、当時の現場の息遣いを伝えてくれる大切な資料であることを忘れないでください。

コメント