Redefines je výkonná funkce v jazyce COBOL, která moudře usnadňuje využití paměti. Umožňuje programátorovi používat stejný paměťový prostor pro ukládání různých dat v různých časech. Proces používání redefinic zvyšuje efektivitu kódu. Abychom dále prozkoumali funkcionalitu, pojďme se ponořit do jejího řešení, po kterém následuje podrobné vysvětlení kódu.
Využití Redefines v COBOL
01 ZÁKAZNÍK-ZÁZNAM.
05 JMÉNO ZÁKAZNÍKA OBR. X(15).
05 MALOOBCHODNÍ ZÁZNAM.
10 ČÁSTKA OBR. 9(6).
10 DATUM OBRÁZEK 9(6).
05 VELKOOBCHOD-ZÁZNAM PŘEDEFINUJE MALOOBCHODNÍ ZÁZNAM.
10 POČET OBRÁZEK 9(4).
10 POLOŽKA OBRÁZEK X(8).
Klauzule redefines v COBOL umožňuje definovat datovou položku s více popisy. Paměť přidělená těmto datovým položkám, jako jsou `RETAIL-RECORD` a `WHOLESALE-RECORD `výše, zabírá stejný paměťový prostor v pracovním úložišti.
Poznámka: Klauzuli Redefines lze použít pouze s datovými položkami stejné nebo menší velikosti.
Vysvětlení kódu krok za krokem
Ve výše uvedeném příkladu jsou velkoobchodní a maloobchodní záznamy uloženy pod evidencí zákazníků. Zabírají stejný paměťový prostor, ale slouží různým účelům. Účinně umožňuje, aby byl kterýkoli z těchto dvou záznamů přítomen nebo používán v daném okamžiku.
Maloobchodní záznam obsahuje množství a datum, zatímco velkoobchodní záznam obsahuje množství a položku. Nepoužíváme je však současně.
- Klauzule `REDEFINES` se používá k vyjádření, že `WHOLESALE-RECORD` je alternativní popis `MALOOBCHOD-RECORD`. Nepřiděluje samostatnou paměť, ale využívá prostor přidělený `RETAIL-RECORD`.
- „RETAIL-RECORD“ obsahuje „AMOUNT“ a „DATE“, zatímco „WHOLESALE-RECORD“ obsahuje údaje „QTY“ a „ITEM“.
- „JMÉNO ZÁKAZNÍKA“ je nezávislé na předefinování, protože funguje samostatně.
Použití Redefines
Předefinování se běžně používá ve scénářích, kde jsou různá rozložení dat načtena v různých časech a na základě určitých podmínek si program vybere, které rozložení zpracuje. To má významný vliv na snížení místa v paměti a zvýšení rychlosti zpracování, což je primární problém v aplikacích na sálových počítačích.
Slouží jako způsob, jak zobrazit stejnou část paměti různými způsoby, na základě potřeb programu v daném čase.
Celkově vzato je použití klauzule `REDEFINES` v programech COBOL efektivním způsobem správy paměti tím, že se vyhne zbytečné duplikaci datových položek v paměti. Použití `REDEFINES` může také vést k tomu, že vaše programy COBOL budou lépe udržovatelné, snáze čitelné a srozumitelné.