Redefinește este o caracteristică puternică în limbajul COBOL, care facilitează utilizarea cu înțelepciune a memoriei. Acesta permite unui programator să folosească același spațiu de memorie pentru stocarea diferitelor date în momente diferite. Procesul de utilizare a redefinirilor crește eficiența codului. Pentru a explora în continuare funcționalitatea, să analizăm soluția acesteia, urmată de o explicație pas cu pas a codului.
Utilizarea redefinirilor în COBOL
01 EVIDENT-CLIENT.
05 NUME-CLIENT PIC X(15).
05 RETAIL-RECORD.
10 SUMA PIC 9(6).
10 DATA PIC 9(6).
05 ÎNREGISTRAREA ÎN ANGROS REDEFINEȘTE RECORDUL ÎN VENȚĂ ÎN CU AMANUNTUL.
10 CANTITATE PIC 9(4).
10 ARTICOL PIC X(8).
Clauza redefinește în COBOL permite definirea unui element de date cu mai multe descrieri. Memoria alocată acestor elemente de date, cum ar fi `REAIL-RECORD` și `WHLESALE-RECORD` de mai sus, ocupă același spațiu de memorie în stocarea de lucru.
Notă: clauza Redefines poate fi utilizată numai cu elemente de date de dimensiune egală sau mai mică.
Explicația codului pas cu pas
În exemplul dat mai sus, înregistrările cu ridicata și cu amănuntul sunt stocate în evidențele clienților. Ele ocupă același spațiu de memorie, dar servesc unor scopuri diferite. Permite în mod eficient fiecăreia dintre aceste două înregistrări să fie prezente sau utilizate la un moment dat în timp.
Înregistrarea de vânzare cu amănuntul deține cantitatea și data, în timp ce înregistrarea cu ridicata găzduiește cantitatea și articolul. Cu toate acestea, nu le folosim împreună în același timp.
- Clauza `REDEFINES` este folosită pentru a afirma că `WHLESALE-RECORD` este o descriere alternativă a `RETAIL-RECORD`. Nu alocă memorie separată, ci folosește spațiul alocat de `RETAIL-RECORD`.
- `REAIL-RECORD` deține `AMOUNT` și `DATE`, în timp ce `WHLESALE-RECORD` găzduiește datele `QTY` și `ITEM`.
- `CUSTOMER-NAME` este independent de redefinire, deoarece funcționează separat.
Utilizarea redefinirilor
Redefinirile sunt utilizate în mod obișnuit în scenariile în care diferite aspecte de date sunt încărcate la momente diferite și, în funcție de anumite condiții, programul va alege ce aspect să proceseze. Acest lucru are un efect semnificativ asupra reducerii spațiului de memorie și creșterii vitezei de procesare, o preocupare principală în aplicațiile mainframe.
Servește ca o modalitate de a vizualiza aceeași porțiune de memorie în moduri diferite, în funcție de nevoile programului la un moment dat.
În general, utilizarea clauzei `REDEFINES` în programele COBOL este o modalitate eficientă de gestionare a memoriei, evitând duplicarea inutilă a elementelor de date din memorie. Utilizarea „REDEFINES” poate avea ca rezultat, de asemenea, ca programele dumneavoastră COBOL să fie mai ușor de întreținut, mai ușor de citit și de înțeles.