the SYNC attribute is related to the way storage for variables is allocated,
the alignment boundaries are
BYTE for strings and equivalent data ( packed and pic things )
HALFWORD for 2 bytes binary numbers
FULLWORD for 4 bytes binary numbers
DOUBLEWORD for 8 bytes things
search the net for "COBOL ALIGNMENT RULES IBM" an You will find lots of links
or more simply click on the manuals link at top of the page and scroll to the cobol section
just a bit of history
one upon a time the operand boundaries were strictly enforced by hardware
an You would get a specification exception trying to use operands with the wrong alignment
- everything was done to save addressing cycles
now everything has been relaxed and alignment is not usually needed any longer
somebody will tell You when to use the SYNC attribute
By mentioning Sync clause along with declarion we can make sure that the variable got stored in system from the starting position of the storage.
Like 2 byte or 4 bytes boundaries.We only need to menton as SYNC along with the declaration of the variable in working storage.
But usage of sync clause is actually a wastage in case of storage.