再定義は、メモリの賢明な使用を促進する COBOL 言語の強力な機能です。 これにより、プログラマは同じメモリ空間を使用して、異なる時点で異なるデータを保存できます。 再定義を使用するプロセスにより、コードの効率が向上します。 機能をさらに詳しく調べるために、そのソリューションを詳しく調べてから、コードを段階的に説明します。
COBOL での再定義の使用
01 顧客記録。
05 顧客名の写真 X(15)。
05 小売記録。
10 枚の写真 9(6)。
10 日付写真 9(6)。
05 卸売記録が小売記録を再定義します。
10 個の写真 9(4)。
10 アイテム写真 X(8)。
COBOL の redefines 句を使用すると、データ項目を複数の記述で定義できます。 上記の「RETAIL-RECORD」や「WHOLESALE-RECORD」など、これらのデータ項目に割り当てられたメモリは、作業用ストレージ内の同じメモリ空間を占有します。
注: Redefines 句は、同じサイズまたはそれより小さいサイズのデータ項目でのみ使用できます。
段階的なコードの説明
上記の例では、卸売および小売のレコードは顧客レコードの下に保存されます。 これらは同じメモリ空間を占有しますが、異なる目的を果たします。 これにより、これら XNUMX つのレコードのいずれかを特定の時点で存在または使用できるようになります。
小売レコードには金額と日付が含まれますが、卸売レコードには数量と品目が含まれます。 ただし、同時には使用しません。
- `REDEFINES` 句は、`WHOLESALE-RECORD` が `RETAIL-RECORD` の別の記述であることを示すために使用されます。 個別のメモリを割り当てるのではなく、「RETAIL-RECORD」によって割り当てられたスペースを使用します。
- 「RETAIL-RECORD」には「AMOUNT」と「DATE」が格納され、「WHOLESALE-RECORD」には「QTY」と「ITEM」のデータが格納されます。
- `CUSTOMER-NAME` は別個に動作するため、再定義とは独立しています。
再定義の使用法
再定義は通常、異なるデータのレイアウトが異なるタイミングでロードされ、何らかの条件に基づいてプログラムがどのレイアウトを処理するかを選択するシナリオで使用されます。 これは、メインフレーム アプリケーションの主な懸念事項であるメモリ領域の削減と処理速度の向上に大きな影響を与えます。
これは、特定の時点でのプログラムのニーズに基づいて、メモリの同じ部分をさまざまな方法で表示する方法として機能します。
全体として、COBOL プログラムで `REDEFINES` 句を利用することは、メモリ内のデータ項目の不必要な重複を回避することでメモリを管理する効率的な方法です。 「REDEFINES」を使用すると、COBOL プログラムがより保守しやすく、読みやすく、理解しやすくなります。