Redefines er en kraftig funksjon i COBOL-språket som letter minneutnyttelsen på en fornuftig måte. Den gjør det mulig for en programmerer å bruke samme minneplass for å lagre forskjellige data til forskjellige tider. Prosessen med å bruke redefinerer øker kodeeffektiviteten. For å utforske funksjonaliteten ytterligere, la oss fordype oss i løsningen etterfulgt av en trinn-for-trinn-forklaring av koden.
Bruke Redefines i COBOL
01 KUNDEREKORD.
05 KUNDENAVN BILDE X(15).
05 RETAIL-RECORD.
10 BELØP PIC 9(6).
10 DATO BILDE 9(6).
05 GROSS-RECORD REDEFINERER DETAIL-RECORD.
10 ANTALL BILDE 9(4).
10 ITEM PIC X(8).
Redefinerings-klausulen i COBOL lar et dataelement defineres med flere beskrivelser. Minnet som er allokert til disse dataelementene, for eksempel `RETAIL-RECORD` og `WHOLESALE-RECORD` ovenfor, opptar samme minneplass i arbeidslageret.
Merk: Redefines-klausulen kan bare brukes med dataelementer av lik eller mindre størrelse.
Trinn-for-trinn-kodeforklaring
I eksemplet gitt ovenfor er engros- og detaljistpostene lagret under kunderegistrene. De opptar samme minneplass, men tjener forskjellige formål. Den lar effektivt en av disse to postene være tilstede eller brukes på et gitt tidspunkt.
Detaljhandelsposten inneholder beløp og dato, mens engrosposten rommer mengde og vare. Vi bruker dem imidlertid ikke sammen samtidig.
- `REDEFINES`-klausulen brukes til å angi at `WHOLESALE-RECORD` er en alternativ beskrivelse av `RETAIL-RECORD`. Den tildeler ikke separat minne, men bruker plassen som er tildelt av `RETAIL-RECORD`.
- `RETAIL-RECORD` inneholder `AMOUNT` og `DATE` mens `WHOLESALE-RECORD` rommer `QTY` og `ITEM` data.
- `KUNDE-NAVN` er uavhengig av omdefineringen da den opererer separat.
Bruk av Redefines
Redefinerer brukes ofte i scenarier der forskjellige oppsett av data lastes inn til forskjellige tider, og basert på noen betingelser vil programmet velge hvilket oppsett som skal behandles. Dette har en betydelig effekt på å redusere minneplass og øke prosesseringshastigheten, en primær bekymring i stormaskinapplikasjoner.
Det fungerer som en måte å vise den samme delen av minnet på forskjellige måter, basert på behovene til programmet på et gitt tidspunkt.
Totalt sett er bruk av `REDEFINES`-klausulen i COBOL-programmer en effektiv måte å administrere minne på ved å unngå unødvendig duplisering av dataelementer i minnet. Bruk av `REDEFINER` kan også resultere i å gjøre COBOL-programmene dine mer vedlikeholdbare, lettere å lese og forstå.