COBOL Coding Standards v1.0

Embed Size (px)

Citation preview

  • 7/25/2019 COBOL Coding Standards v1.0

    1/33

    COBOL STANDARDS AND CONVENTIONS

    1. COBOL CODING STANDARDS.............................................................................21.1 IDENTIFICATION DIVISION...........................................................................2

    1.1.1 PROGRAM-ID.................................................................................................2

    1.1.2 AUTHOR...........................................................................................................21.1.3 INSTALLATION................................................................................................2

    1.1.4 DATE-WRITTEN.............................................................................................21.1.5 DATE-COMPILED...........................................................................................31.1.6 REMARKS........................................................................................................3

    1.2 ENVIRONMENT DIVISION...................................................................................41.2.1 Con!"#$%&!on S'(&!on.....................................................................................41.2.2 In)#&-O#&)#& S'(&!on.......................................................................................4

    1.* DATA DIVISION......................................................................................................61.*.1 FILE SECTION................................................................................................6

    1.*.2 WORKING-STORAGE SECTION................................................................7

    1.*.* LINKAGE SECTION.....................................................................................141.4 PROCEDURE DIVISION....................................................................................15

    1.4.1 P$o"$%+ S&$#($'.........................................................................................151.4.2 Co,!n" S&$#($'...............................................................................................171.4.* CALL S&%&'+'n&................................................................................................18

    1.4.4 COMMENTS..................................................................................................191.4.5 Co+)o#n, Con,!&!on..................................................................................191.4.6 COMPUTE S&%&'+'n&..................................................................................201.4. Con,!&!on N%+'...........................................................................................211.4./ Con,!&!on%0 T'&...........................................................................................22

    1.4. DISPLA S&%&'+'n&.....................................................................................22

    1.4.13 GO TO S&%&'+'n&.......................................................................................221.4.11 IF S&%&'+'n&.................................................................................................231.4.12 Lo"!(%0 Co+)%$!on..................................................................................251.4.1* MOVE S&%&'+'n&........................................................................................251.4.14 ON Con,!&!on...............................................................................................261.4.15 OPENCLOSE S&%&'+'n&........................................................................271.4.16 PERFORM S&%&'+'n&................................................................................271.4.1 P$o"$%+ S!&('.......................................................................................271.4.1 P$o"$%+ A#,!& Con&$o0................................................................................281.4.23 P$o"$%+ Con&%n&.....................................................................................29

    1.4.21 P$o!7!&', O$ R'&$!(&', V'$7.................................................................29

    1.4.22 READ S&%&'+'n&.........................................................................................291.4.2* R'(o$, Co#n&............................................................................................301.4.24 REPORT WRITER F'%$'.......................................................................301.4.25 SEARCH S&%&'+'n&...................................................................................301.4.26 S'8#'n(' C'(9.........................................................................................311.4.2 SORT F'%$'.............................................................................................311.4.2/ STRINGUNSTRING..................................................................................31

  • 7/25/2019 COBOL Coding Standards v1.0

    2/33

    1.4.2 SUBSCRIPT AND INDE:..........................................................................321.4.*3 T%70'............................................................................................................321.4.*1 T'$+!n%&!on P$o('!n"..............................................................................331.4.*2 TRACE V'$7................................................................................................331.4.** WRITE S&%&'+'n&.......................................................................................33

    1. COBOL CODING STANDARDS

    T'' COBOL (o,!n" &%n,%$, %n, (on;'n&!on %$' +'%n& &o '$;' % % ,!$'(&!;' &o !+)$o;' %))0!(%&!on )$o"$%+ 8#%n, (o+)#&'$ )$o"$%++'$ )$o,#(&!;!&

  • 7/25/2019 COBOL Coding Standards v1.0

    3/33

    U' &' o$+%& o %n#%$< *1= 2332 &o $'0'(& &' ,%&' 'n &' (o,!n" % o$!"!n%00< ,';'0o)', 7< &'(o+)#&'$ )$o"$%+ (o,'$.

    1.1.5 DATE-COMPILED

    En&'$ on0< &' )%$%"$%) n%+'= DATE-COMPILED= 7'(%#' &' o)'$%&!n" %&!on P

  • 7/25/2019 COBOL Coding Standards v1.0

    4/33

    DATE WRITTEN. MARCH , !""1.

    DATE COMPILED.

    REMAR#S.

    1$ GENERATES ANNUAL TRAINING STATISTICS

    FROM MASTER STUDENT ATTENDANCE.

    !$ PRODUCES THE FOLLOWING REPORTS:

    %$ XASA1C1R DETAIL COURSE STATS.

    &$ XASA1C!R SUMMARY 'Y COURSES.

    ($ XASA1CR DETAIL DEPT. STATISTICS.

    )$ XASA1C*R DETAIL STUDENT STATS.

    $ TERMINATE JO' IF INPUT OUT OF SEQUENCE.

    SORT ORDER: "1,*1,CH,A SORT #EY

    ++,"*,CH,A TRAN YEAR

    +!,"*,CH,A TRAN MON-DAY

    *$ COURSE CODES AND DESCRIPTIVE NAMES,

    FOR MAXIMUM OF " COURSES.

    $ DEPT CODE AND NAME FOR " AGENCIES.

    MODIFIED DECEM'ER !""1 'Y P. POTTER TO ADD SPECIAL

    STUDENT PORTFOLIO REPORT XASA1CR.

    1.2 ENVIRONMENT DIVISION

    T' #n(&!on o &! ,!;!!on ! &o ,'!n' %n, )'(!< &' %$,%$' (on!"#$%&!on %n, $'8#!$'+'n& #', 7< &' )$o"$%+.

    1.2.1 Con!"#$%&!on S'(&!on

    T' SOURCE COMPUTER %n, OBECT COMPUTER )%$%"$%) n%+' %$' o)&!on%0. I &'' )%$%"$%)n%+' %$' (o,',= 'n&'$ &' )$%' IBM OS*3.

    T' #' o &' SPECIAL NAMES )%$%"$%) o$ %n< )#$)o' o&'$ &%n &o )'(!< TOP-OF-PAGE o$ NEW-PAGE= ! ,!(o#$%"',.

    Do no& #' &' SPECIAL-NAMES )%$%"$%) &o $'n%+' %n !n)#&o#&)#& ,';!('= 7'(%#' &' IO #n(&!on%0n%+' +#& %0$'%,< 7' % '@)0!(!& % %n< +n'+on!(.

    1.2.2 In)#&-O#&)#& S'(&!on

    % No )$o"$%+ !00 #' +o$' &%n &$'' * +%"n'&!( &%)' (%$&$!,"' o$ $''0 ,$!;' (on(#$$'n&0'$o. PROG ID !00 (on&%!n &' ;%0#' o &' )$o"$%+ P$o"$%+ ID (o,'.

    PROCEDURE-1 HANDLING E:CEPTION CONDITION

    1.Fo$ '%( '@(')&!on (on,!&!on% A!"n % n#+7'$ %n, (on&%n& ;%$!%70' n%+' !n WORKING-STORAGE &o '%( )o!70'

    '$$o$ +'%"' o$ '%< $''$'n('.7 DISPLA %n %))$o)$!%&' '$$o$ +'%"' &o &' Con&$o0 R')o$&( DISPLA &' &$%n%(&!on FIELD= RECORD= o$ o&'$ #'#0 !no$+%&!on $'"%$,!n"

    &' '@(')&!on. A00 '$$o$ +'%"' o#0, 7' n#+7'$', %n, 0%7'0', o$ '%', !n % ')%$%&' $''& %$'% %n, )$o('', ?#& 7'o$' &'< %$' n'',', &o +!n!+!>'&' )o!7!0!&< o % S3C n#+'$!(%0 ,%&% '@(')&!on.

    %. R''$'n(' &o &' DATE= DA= o$ TIME $'"!&'$ o#0, 7' '@'(#&', on0< on(' %& &'7'"!nn!n" o &' P$o(',#$' D!;!!on= !n &' !n!&!%0!>%&!on o$ o#'9'')!n" $o#&!n'= %n, &'!$ $'$n-;%0#'+o;', &o Wo$9!n"-S&o$%"' ;%$!%70'.

    7. Do no& #' (o++% o$ '+! (o0on o$ )#n(%&!on. T' )'$!o, +#& 7' #', %& &' 'n, o(on,!&!on%0= 'n&'n('= )%$%"$%) n%+'= %n, '(&!on n%+'.

    (. Con!&'n&0< !n,'n& &' ;%$!o# &%&'+'n& &o ;!#%00< !,'n&!< 0o"!(%0 '8#'n(' o!n&$#(&!on. Con!&'n& !n,'n&%&!on ! ')'(!%00< n'',', 'n ,'!n!n" % (o+)0'@ '8#'n(' o&%&'+'n& &o 7' '@'(#&', o00o!n" &' IF o$ ELSE &%&'+'n&.

    In,'n& ELSE 7< %0!"n!n" !& !& !& %o(!%&', IF. T' ELSE +#& 7' &' on0< &'@& on &%& 0!n'. T'&%&'+'n& %o(!%&', !& &' ELSE +#& 7' !n,'n&', %& 0'%& o#$ )%(' #n,'$ !&.

    ,. Fo$ '%' o $'%,%7!0!&

  • 7/25/2019 COBOL Coding Standards v1.0

    18/33

    In,'n& &' GIVING &o 0!n' #) )%& &' ;'$7 ADD o$ SUBTRACT. EXAMPLE:

    SU'TRACT ALLOTTED FROM APPROPRIATED

    GIVING ENCUM'RANCE.

    ;. W'n )o!70'= #+ %00 (on&$o0 0';'0 7$'%9 %((#+#0%&o$ %& on' )0%(' !n &' )$o"$%+.. Fo$ ;%$!%70' 0'n"& !0'= #' APPL WRITE-ONL !n &' o#&)#& !0' ,'($!)&!on= )'(!< &'

    ,%&% n%+' o %no&'$ 0';'0 31 !&'+ % &' DEPENDING o7?'(& no& &' (o$$')on,!n" !'0, !n &' $'(o$,.@. B' #$' &o )'(!< COMP %n, SNC o$ &' DEPENDING o7?'(&= o$ '0' % (on;'$!on &o

    COMP ! n'',', 'n';'$ &' $'(o$, %n, "$o#) 0'n"& %n, )o!&!on %$' (%0(#0%&',.' o %n %$"#+'n& !n &'USING (0%#' +%< 7' "$'%&'$ &%n &' !>' o &' +%&(!n" o$+%0 )%$%+'&'$= on0< 'n &' %$"#+'n& o$o$+%0 )%$%+'&'$ ! % "$o#) !&'+. A$!&+'&!( '@)$'!on %n, 0!&'$%0 +%< 7' #', % CALL %$"#+'n&.

    U' o CALL &%&'+'n& o#0, 7' +!n!+!>', %n, (o,', !n )%$%"$%) &o 7' )'$o$+', 'n n'',', &o(%00 %$', "0o7%0 )$o"$%+ )$o(''

    U' &' DNAM o)&!on 'n (%00!n" % #7)$o"$%+.

    A;%!0%70' &%n,%$,!>', #7$o#&!n' n%+' %n, &'!$ ,'($!)&!on &%& +%< 7' INCLUDED %$' o#n, !nA))'n,!@ B.

    On0< &' +%!n 'n&$< )o!n& n%+' !00 7' C%00',. A;%!0%70' &%n,%$,!>', #7$o#&!n' n%+' %n, &'!$,'($!)&!on &%& +%< 7' INCLUDED %$' o#n, !n A))'n,!@ B.

    T' )%$%+'&'$ n%+' o#0, 7' %0!"n', %n, 7'"!n on % (on!&'n& (o0#+n

    EXAMPLE:

    CALL EXTRACTOR

    USING MAST-IN-DATA

    SELECT-CRITERIA

    ACCEPTED-DATA.

    1.4.4 COMMENTS

    Co++'n& 0!n' +%< 7' $!&&'n %& %n< 0!n'= ';'n 7'o$' &' IDENTIFICATION DIVISION '%,'$.

    Co++'n& !00 7' #', &o )o!n& o#& o$ '+)%!>' $'0%&!on!) %n, o7?'(&!;' o )$o(''=(o+)%$!on= ;%$!%70'= (o+)0'@ o$+#0%= ,'$!;%&!on o o$+#0%= o$ #' o &%70' o$ %$$%

  • 7/25/2019 COBOL Coding Standards v1.0

    19/33

    E%( )$o"$%+ $o#&!n' %n, #7$o#&!n' !00 %;' (o++'n& &o #++%$!>' &' o#$(' %n, #n(&!on o &'$o#&!n' o$ #7$o#&!n'= ')'(!%00< 'n !& )#$)o' ! no& !++',!%&'0< o7;!o# 7< $'%,!n" !& COBOL&%&'+'n&. Co++'n& %$' +%,' 7< 'n&'$!n" &' %&'$!9 !n (o0#+n .

    EXAMPLE:

    "" VERIFY VALID DATA. TRANSACTION DATE FIELD IS VERIFIED. MONTH-DAY-YEAR

    FIELDS RANGES ARE EDITED. #EY FIELDS OF CUSTOMER-ID

    AND ORDER NUM'ERS ARE CHEC#ED AGAINST TA'LES.

    En&'$ %n %&'$!9 !n (o0#+n &o (o++'n& % 0!n'. Do no& #' &' NOTE &%&'+'n&.

    T' #' o +'%n!n"#0 (o++'n& &%&'+'n& !n )$o"$%+ ! &$on"0< $'(o++'n,',. B$!'0< ,'($!7' &'&%9 o$ #n(&!on o &' +o,#0' &o '@)%n, on &' )%$%"$%) n%+'.

    1.4.5 Co)o#n Con!&!on,

    A (o+)o#n, (on,!&!on%0 &%&'+'n& (on&%!n +#0&!)0' $'#0&%n& o$ on' '0'+'n&%$< ,%&% !&'+.

    %.Co+)o#n, &%&'+'n& &%& o+!& &' &'& !'0, ,%&% n%+' %00 no& 7' #',. U' on0< !+)0' (on,!&!on%0&'&.

    7.E%( (o+)%$' (on,!&!on o#0, 7' '@)0!(!&0< &%&',. U' )%$'n&'! &o %#$' 0o"!(%0 "$o#)!n" oo)'$%n,.

    c.Do no& #' (o+)o#n, n'"%&!;' (on,!&!on%0 &'&.). EXAMPLE-1:

    3.

    9. IF CH#-FIELD 8 A OR 8 ' OR 8 C .....

    .

    . T3 %&3 =6%630346 05=6 &3

  • 7/25/2019 COBOL Coding Standards v1.0

    20/33

    1.4.6 COMPUTE S&%&''n&

    Fo$ %$!&+'&!( '@)$'!on= &' #' o &' COMPUTE &%&'+'n& ! 'n(o#$%"',. I& ! '%< &o ('(9 o#& %n,&'n, &o 7' '0 ,o(#+'n&!n". Ho';'$= o+'&!+' !& +%< 7' +o$' !n!&!;' &o (o,'

    ADD 1 TO CNT-READ

    74=63%) 9 ()74:

    COMPUTE CNT-READ 8 CNT-READ 1

    I&'+ $''$'n(', 7< %$!&+'&!( ;'$7 o#0, %00 7' COMP o$ COMP *. I&'+ %,,', o$ #7&$%(&', o#0, %;'&' %+' n#+7'$ o ,'(!+%0 )0%('.

    Fo$ !&'+ no& !n !,'%0 o$+%& o %+' %&&$!7#&' %n, %+' ,'(!+%0 0'n"&= +o;' &'+ &o !,'%0 ,%&% !&'+o$+%& !n o$9!n" &o$%"' 7'o$' )$o('!n".

    Fo$ (o+)#&%&!on !n;o0;!n" ';'$%0 %$!&+'&!( o)'$%&!on= &' COMPUTE ;'$7 ! +o$' '!(!'n& &%n % '8#'n('o ')%$%&' %$!&+'&!( ;'$7. Ho';'$= &' )$'(!!on o &' !n&'$+',!%&' $'#0& (%nno& 7' (on&$o00', #!n"

    COMPUTE= %n, +%< no& "'n'$%&' &' '@)'(&', !n%0 $')o$&.

    T' $'0%&!;' )'', o &' %$!&+'&!( o)'$%&!on %$' % o00o

    ADD < 9%=6

    SU'TRACT < - 9%=6

    MULTIPLY < =2

    DIVIDE < / =23%&!on !&(' %n, 'n,-o-?o7!&(' %$' 'n(o#$%"', !n(' &'!$ #' ! ##%00< %))%$'n&.

    S!&(' &%& %$' '& on0< on(' )'$ )$o"$%+ $#n %$' %0o o7;!o# %n, o#0, 7' '& ;!% %n !n)#& (on&$o0

    &%&'+'n&. S#( % '0'(&!n" on0< ('$&%!n Co#n&!' &o 7' )$o('', o$ '0'(&!n" on0< ('$&%!n $')o$& &o 7'"'n'$%&',. In %n< ';'n&= ,'&%!0', %nno&%&!on o !&(' ! $'8#!$',.

    T' $'(o++'n,', !&( )$%(&!(' ! &o '& % !&( % % $'#0& o % 0o"!(%0 (on&$o00!n" (on,!&!on. A )$''$%70'+'&o, ! &o &'& &' (on,!&!on %"%!n. I &' (on,!&!on ! no 0on"'$ )$''n&= %n&!(!)%&' &' !%&!on %n, $o#&' &')$o"$%+ &$o#" % ,!'$'n& '$!' o +o,#0'.

    In )0%(' o % ')%$%&' !&( &o !,'n&!< %n EOF (on,!&!on= &' non n#+'$!( 0!&'$%0 KE !'0, o &' $'(o$, +%< 7''& &o !" ;%0#'. T' KE !'0, (%n &'n 7' &'&', o$ &' EOF (on,!&!on. T' !" ;%0#' !n &' KE !'0,!+)0!!' &' o;'$%00 0o"!( &o (o+)0'&' )$o('!n" o o&'$ !n)#& !0'. B#& % ')%$%&' !&( o'$ +o$'0'@!7!0!&

  • 7/25/2019 COBOL Coding Standards v1.0

    28/33

    PERFORM !"-'LUE-EYES

    THRU !"-'LUE-EYES-EXIT.

    IF EYES-ARE-'ROWN

    PERFORM *"-'ROWN-EYES

    THRU *"-'ROWN-EYES-EXIT.

    IF EYES-ARE-GREEN

    PERFORM +"-GREEN-EYES

    THRU +"-GREEN-EYES-EXIT.

    *.4.1 P$!n& R')o$& Fo$%&

    Fo$ &$%,!&!on%0 $')o$&= 7'o$' %&!on o$ )'(!< VALUESPACES !n &' #7 "$o#) o$ FILLER !&'+.

    . Con!,'$ +o;!n" &' ;%$!%70' o %00 )%(' o$ on' )$!n& 0!n' &o 70%n9 o#& &' o0' 0!n' ;!% &' "$o#) n%+'= o$

    +o;!n" )%(' &o )'(!!( )o!&!on.

    1.4.1 P$o"$% A#!& Con&$o+

    E%( )$o"$%+ +#& %;' %n %#,!& (on&$o0 $')o$&. T! $')o$& +#& !n(0#,' &' o00o!n" '$' !& +%9' 'n'

    . T' 0!&'$%0 REPORT !n &' #))'$ 0'& (o$n'$

    . P$o"$%+ !,'n&!!(%&!on ;%0#' !n &' IDENTIFICATION DIVISION !& &' 0%& (%$%(&'$ (%n"', &o R= o00o&' %7o;' 0!&'$%0 !n &' #))'$ 0'& (o$n'$

    . T' 0!&'$%0 FOR THE PERIOD o00o', 7< &' (on&$o0 ,%&' o ,%&%= !n &' o$+ o MMDDCC o$ +on&-

    n%+' CC #n,'$ &' $')o$& n#+7'$. C'n&'$ &' $')o$& '%,'$ &o !,'n&!< &' S&%&'= D')%$&+'n&= D!;!!on= B$%n(= %n, #7?'(& +%&&'$ o &'

    %))0!(%&!on )$o"$%+. C'n&'$ &' $')o$& &!&0' (on&%!n!n" &' 0!&'$%0 CONTROL REPORT

    T' 0!&'$%0 PAGE o00o', 7< &' )%"' (o#n& ;%0#'. P$o"$%+ $#n ,%&' %n, o)&!on%00

  • 7/25/2019 COBOL Coding Standards v1.0

    29/33

    " VALUE-X PIC X"1$ VALUE X.

    " ONE PIC S"$ VALUE 1.

    " TWO PIC S"$ VALUE !.

    1.4.21 P$o8!9!&' O$ R',&$!(&' V'$9,

    T' ALTER &%&'+'n& ! n';'$ )'$+!&&',.

    ACCEPT FROM CONSOLE o)&!on ! no& )'$+!&&',. I #',= !& o#0, 7' no&', !n &' FILE CONTROL)%$%"$%) !& % (o++'n&.

    T$< &o #' CONTINUE = !n&'%, o NE:T SENTENCE.

    T' E:AMINE ;'$7 ! no& )'$+!&&',.

    T' ACCEPT= CURRENT DATE= DATE= DA= DISPLA= E:HIBIT= INSPECT= SIGN IS SEPARATE= STOP RUN=

    TIME= AND UNSTRING ;'$7 %$' no& %00o', o$ CICS )$o"$%+.

    1.4.22 READ S&%&''n&

    D%&% ! &o 7' $'%, !n&o % o$9!n" &o$%"' ,'!n', %$'% 7'o$' %n< )$o('!n"= %n, ,%&% ! n';'$ $'%, !n&o &'FD $'(o$, ,'($!)&!on ,%&% !'0, o$ )$o('!n".

    U' &' READ...INTO...WORKING-STORAGE-INPUT-AREA o$+%&. T! o$+%& )$o;!,' % $'%,%70' &$%(' !n+'+o$< ,#+).

    U' &' AT END o$ INVALID KE (0%#' o$ %n< READ &%&'+'n&.

    Co,' on0< on' READ &%&'+'n& o$ '%( !0' !n % )%$%"$%)= &%& ! PERFORMED 'n';'$ &' ,%&% !n'',',.

    A,;%n&%"' o on' #n(&!on%0 READ o$ WRITE )%$%"$%) o$ '%( !0' %$'

    . Co,!n" (%n 7' %,,', &o (o#n& &' )$o('', $'(o$,.

    . T' !0' (%n 7' $'o$+%&&', !&o#& (%n"!n" &' )$o"$%+ 0o"!(.

    . DEBUG &%&'+'n& (%n 7' '%!0< %,,', &o DISPLA $'(o$,.

    T' !n)#& %$'% o#0, 7' !00', !& %00 !" ;%0#' %& 'n, o !0' #n0' &' 'n, o !0' (on,!&!on o$(' %n 'n, o?o7 (on,!&!on. T! )%$&!(#0%$ %))$o%( ! !n &' !n&'$'& o #n!o$+!&< o$ EOF 0o"!( $%&'$ &%n "%!n!n" %n