PL1.DOC

161
Udhay a’s PL/I Material 6/06/2 003 Page:- 1 / 161 PL/I

Transcript of PL1.DOC

Page 1: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 1/161

Udhaya’s PL/I Material 6/06/2003 Page:- 1 / 161

PL/I

Page 2: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 2/161

Udhaya’s PL/I Material 6/06/2003 Page:- 2 / 161

CONTENTSSECTION NO. TOPIC PAGESECTION 1 BASIC STRUCTURE OF PL/I PROGRAMS 3

SECTION 2 COMPILING UNDER MVS 9

SECTION 3 DATA TYPES AND DATA MANIPULATION 13

SECTION 4 PROCEDURES, FUNCTIONS 22

SECTION 5 SUBROUTINES AND FUNCTIONS 36

SECTION 6 CONTROL STATEMENTS 50

SECTION CONDITIONS AND ON UNITS 54

SECTION ! ARRAYS 69

SECTION 9 STRUCTURES AND PICTURES 2

SECTION 10 STORAGE CONTROL !1

SECTION 11 FILE PROCESSING 101

SECTION 11"A STREAM ORIENTED DATA TRANSMISSION 105

SECTION 11"B RECORD I/O 116

SECTION 11"C DEFINING AND USING VSAM DATA SETS 122

SECTION 12 PL/I AND MULTITAS#ING 133

SECTION 12 PREPROCESSOR FACILITIES 140

SECTION 13 STUDENT PRO$ECT %OR# 151

A&&'()*' 155LIMITS

References :- 1) IBM PL/I for MVS and VM Programming Guide2) IBM PL/I for MVS and VM Language Reference3) PL/I Structured Programming ! "oan#$#%ug&es#

Page 3: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 3/161

Udhaya’s PL/I Material 6/06/2003 Page:- 3 / 161

SECTION 1 BASIC STRUCTURE OF PL/I PROGRAMS 

B+- P**+ S'

MYPROG:PROCEDURE OPTIONS(MAIN);

.

. /' t&is is a comment '/ 

.END MYPROG;

Note:-1. MYPROG: is a label. Co!!e"ts a#e e"$ase% i" &' '&. OPTIONS(MAIN) i"%i$ates e"t# *oi"t o+ *#o,#a! a"% !st be i"%i$ate% o"l +o# o"e

*#o$e%#e i" te *#o,#a!./. Col!"s sta#t at a"% e"% at 0.. 2#ee +o#! o+ 3#iti",

4. Col!" to 0 se# so#$e $o%e0. Col!" 0 to 56 !a $o"tai" *#o,#a! ID o# se7e"$e $o%e. It is "ot $e$8e% b te$o!*ile#.

 ( first sim*e rogramCONP961: PROC OPTIONS(MAIN);

DC9 U22ER CAR(56) INIT(<E99O 2ROM CONSP961<);PUT S=IP 9IST(U22ER);GET 9IST(U22ER);PUT S=IP 9IST(U22ER);

END CONP961;

See t&e s!stem for t&e I+L1,L rocedure and t&e ",L to reare and run t&eaoe rogram#

,&aracter Sets

>?@ ACDE2GI=9MNOPBRDSTUYF61/405bla"8H E7al & assi,"!e"t s!bol Pls si,"- Mi"s si,"' Aste#is8 & !lti*l s!bol& Slas & %iJi%e s!bol

( ) Pa#e"tesisK Co!!a. Poi"t o# *e#io%< Si",le 7otatio" !a#8 o# a*ost#o*eL Pe#$e"t s!bol; Se!i$olo": Colo"  NOT s!bol AND s!bol

Page 4: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 4/161

Udhaya’s PL/I Material 6/06/2003 Page:- 4 / 161

OR s!bol G#eate# ta" s!bol 9ess ta" s!bol

 Q #ea8 ("%e#s$o#e) Bestio" !a#8

 A $o!bi"atio" o+ s!bols !a be se% K e.,.

 A'' A *o3e#  A H A ,#eate# ta" o# e7al to <A< << A $o"$ate"ate% 3it

I.+0II+RS a#iable "a!esK P#o$e%#e "a!esK State!e"t 9abelsK 8e3o#%s (e.,. PUTK GET)K2ile "a!es et$.

Co"sists o+ 1 to 1 al*abeti$ $a#a$te#s !a%e * o+ (A-FKK@K>K6-KQ).2i#st $a#a$te# !st be a Al*abet.

E(+'

MYQ9AE9Q1C9IENTQNAME

 A *#o$e%#e 3it OPTIONS(MAIN) is a" ete#"al *#o$e%#e . Ete#"al *#o$e%#e "a!es$a" be !ai!! o+ seJe" $a#a$te#s o"l. Tis is also t#e o+ a +ile "a!eK 3i$o3eJe# $a" ,o * to ei,t $a#a$te#s.

S0(0+M+0 RM(0 9AE9: =EYORD STATEMENT OPTIONS;

Ea!*leREADQSTMT:GET 9IST(AKKC);

2#ee +o#! state!e"t 3i$ $a" $o"tai" as !a" bla"8s as +elt "e$essa# b *#o,#a!!e#.Positio" 1 #ese#Je% +o# se b O&S.Positio" to 0 !a $o"tai" o"e o# !o#e P9&I state!e"t ea$ se*a#ate% b < ; <

GET 9IST (AK); GET 9IST (CKD); Alte#"atel o"e state!e"t !a be $o"ti"e% a$#oss seJe#al li"es e.,.;

GET 9IST(AK);

Positio" 0 to 56 !a $o"tai" se7e"$e "!be# !ai"tai"e% b e%ito#.

PL/I ,S0(0S De$i!al 2ie% Poi"t 1.6 K 156K 16. K -1.1K 6.6

De$i!al 2loati", Poi"t 6.1/E .EK .E-E*o"e"t #a",e 16''-05 to 16''0

Ca#a$te# St#i", <ACDE<'ABCD''EF', (2)'ABCD'

it St#i", Co"sta"t <11611<K (14)<6<

i"a# 2ie% Poi"t 1611

i"a# 2loati", Poi"t 6.11611611E/5

Page 5: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 5/161

Udhaya’s PL/I Material 6/06/2003 Page:- 5 / 161

LIS0 .IR+,0+. I/ IP0 GET 9IST (AKKCKDKE);  /'Reads from S4SI '/ GET 2I9E(SYSIN) 9IST (AKKCKDKE);  /'e5*icit form '/ 

OR

OR

I" 9ist Di#e$te% I&O "o #e$o#% bo"%a#ies a#e $o"si%e#e%. Ite!s a#e eite# se*a#ate% b abla"8 o# a $o!!a

GET 9IST (AK) COPY;  /' additiona**! coies t&e data to S4SPRI0 '/ Ea!*le o+ I"*t 1.6K.6/EK<ACD<K<1616<Ea!*le

DEC9ARE DATA1 CAR(1);GET 9IST (DATA1);

0P0 PUT 9IST (6K<AC<K1K10);

PUT 9IST (K54K50);

PUT 9IST (AKKC'D);  /' note use of an e5ression ,'. '/ PUT PAGE 9IST (<AC<);  /' (B, rints in ne5t age '/ PUT S=IP 9IST(1);  /' S6i one *ine efore rint '/ PUT S=IP(6) 9IST (1);  /' Print 7it&out sacing '/ PUT S=IP() 9IST (1);  /' S6i t7o *ines efore rint '/ PUT PAGE 9INE (16) 9IST (1);  /' S6i to *ine 18 of ne7 age and rint '/ 

PUT PAGE 9IST ((166)<-<);  /' ne7 age and 188 das&es '/

100 90 80 70 90

90

 70

 80

 90

 100

 100,90,80,70,90

1 25 49 3 9 1216 AC 1 10 54 50

Page 6: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 6/161

Udhaya’s PL/I Material 6/06/2003 Page:- 6 / 161

PRGR(M S0R,0R+ MNPROC: PROCEDURE OPTIONS(MAIN);

.

.CA99 SUPROCQ1;CA99 SUPROCQ;.

RETURN;

SUPROCQ1: PROCEDURE;..

END SUPROCQ1;

SUPROCQ: PROCEDURE;..

END SUPROCQ;END MNPROC;

E(+' -' &''7 *'7)*'&&USERAA1 O MSGC9ASSHAKNOTI2YHUSERAA&&MYSTEP EEC PROCHIE91C9GKREGION.P9IH1M&&P9I.SYSIN DD 'MYPROG: PROCEDURE OPTIONS(MAIN);DC9 2IE9D1 2IED DECIMA9(0K);DC9 2IE9D 2IED DECIMA9(0K);GET DATA (2IE9D1K2IE9D);PUT S=IP 9IST(SUM(2IE9D1K2IE9D));

SUM:PROCEDURE (AK) RETURNS(2IED DECIMA9(0K));DC9 A 2IED DECIMA9(0K);DC9 2IED DECIMA9(0K);RETURN (A);

END SUM;END MYPROG;&'&&GO.SYSIN DD '2IE9DH1.K2IE9D1H./;&'&&

E(+' 7'&*+' ' 8+*-+'

&&USERAA1 O MSGC9ASSHAKNOTI2YHUSERAA&&MYSTEP EEC PROCHIE91C9GKREGION.P9IH1M&&P9I.SYSIN DD 'MYPROG: PROCEDURE OPTIONS(MAIN);DC9 2IE9D1 2IED DECIMA9(0K);DC9 2IE9D 2IED DECIMA9(0K);DC9 SUM 2IED DECIMA9(0K);GET DATA (2IE9D1K2IE9D);CA99 ADD; PUT S=IP 9IST(SUM);

Page 7: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 7/161

Udhaya’s PL/I Material 6/06/2003 Page:- 7 / 161

PUT S=IP DATA; /: P*'7)*' ADD :/ ADD:PROCEDURE;

SUMHA;END ADD;

 /: E&7 P*'7)*' ADD :/END MYPROG;

&'&&GO.SYSIN DD '2IE9DH1.K2IE9D1H./;&'&&

Page 8: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 8/161

Udhaya’s PL/I Material 6/06/2003 Page:- 8 / 161

SECTION 2 COMPILING UNDER MVS

S'' ' C++)'7 P*'7)*' '; -& ' <'.

1. IE91C Co!*ile o"l

. IE91C9 Co!*ile a"% 9i"8 E%it. IE91C9G Co!*ileK 9i"8-e%it a"% #"/. IE91CG Co!*ile loa% a"% #"

DD &+'P9I.SYSIN SOURCEP9I.SYS9I COPY OO=SP9I.STEP9I 9OAD9I ERE COMPI9ER RESIDESP9I.SYSPRINT COMPI9ATION 9ISTINGP9I.SYS9IN COMPI9ED OECT CODEP9I.SYSUT1 COMPI9ER OR= 2I9E9=ED.STEP9I 9OAD9I ERE 9IN=AGE EDITOR RESIDES9=ED.SYS9IN PRIMARY INPUT 2OR 9IN=AGE EDITOR

9=ED.SYS9MOD OUTPUT O2 9IN=AGE EDITORK TE 9OAD MODU9E9=ED.SYSIN SECONDARY INPUT 2OR 9IN=AGE EDITOR9=ED.SYS9I 9IN= 9IRARY O2 PRECOMPI9ED OECT CODE9=ED.SYSUT1 9IN=AGE EDITOR OR= 2I9E9=ED.SYSPRINT 9IN=AGE EDITOR 9ISTING

INVOCATION %IT= INLINE SOURCE&&MYPROG O&&STEP1 EEC IE91C9GKREGION.P9IH1M&&P9I.SYS9I DD DSNHMY.SOURCE.9IKDISPHSR&&P9I.SYSIN DD '

.Pt o# so#$e e#e.

&'&&

INVOCATION %IT= SOURCE IN A PDS MEMBER&&MYPROG O&&STEP1 EEC IE91C9GKREGION.P9IH1M&&P9I.SYS9I DD DSNHMY.SOURCE.9IKDISPHSR&&P9I.SYSIN DD DSNHMY.SOURCE.9I(PROG1)KDISPHSR&&

E>AMPLE&&USERAA1 O MSGC9ASSHAKNOTI2YHUSERAA&&MYSTEP EEC PROCHIE91C9GKREGION.P9IH1M

&&P9I.SYSIN DD 'MYPROG: PROCEDURE OPTIONS(MAIN);DC9 2IE9D CAR(6) INIT(<E99O OR9D<);PUT 9IST (2IE9D);END MYPROG;

&&

E>AMPLE OF SEPARATE COMPILATIONS IN ONE $OB&&USERAA1 O MSGC9ASSHAKNOTI2YHUSERAA

Page 9: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 9/161

Udhaya’s PL/I Material 6/06/2003 Page:- 9 / 161

&&STEP1 EEC PROCHIE91CKREGION.P9IH1M&&P9I.SYSIN DD 'SUM: PROCEDURE(AK) RETURNS(2IED DEC());DC9 (AK) 2IED DEC();RETURN(A);END SUM;

&'&&STEP EEC PROCHIE91C9GKREGION.P9IH1M&&P9I.SYSIN DD 'MYPROG: PROCEDURE OPTIONS(MAIN);DC9 SUM ENTRY(2IED DEC()K2IED DEC()) RETURNS(2IED DEC());DC9 (AK) 2IED DEC();

 AH;H;PUT 9IST(SUM(AK));END MYPROG;

&&

E>AMPLE OF SEPARATE COMPILATIONS IN SEPARATE $OBS?PART A)&&USERAA1 O MSGC9ASSHAKNOTI2YHUSERAA&&MYSTEP EEC PROCHIE91C

&&P9I.SYSIN DD 'SUM: PROCEDURE (AK);DC9 (AK) 2IED DECIMA9(4K);DC9 RESU9T 2IED DECIMA9(4K) ETERNA9;RESU9THA;

END SUM;&'&&P9I.SYS9IN DD DSNHUSERAA.P9IC9ASS.O(SUM)KDISPH(NEK=EEP)K&& UNITHSYSDAKSPACEH(TR=K(1KK1)) //

?PART B)&&USERAA1 O MSGC9ASSHAKNOTI2YHUSERAA

&&MYSTEP EEC PROCHIE91C9G&&P9I.SYSIN DD 'MYPROG: PROCEDURE OPTIONS(MAIN);DC9 SUM ENTRY(2IED DECIMA9(4K)K2IED DECIMA9(4K));DC9 RESU9T 2IED DECIMA9(4K) ETERNA9;DC9 2IED DECIMA9(4K);

  DC9 Y 2IED DECIMA9(4K);H1./;YH111.11;CA99 SUM(KY);PUT S=IP EDIT(<RESU9T IS:<KRESU9T)(AK2(4K));

END MYPROG;&'

&&9=ED.SYS9I DD DSNHUSERAA.P9IC9ASS.O(SUM)KDISPHO9D&& DD DSNHCEE.SCEE9=EDKDISPHSR&&

E>AMPLE OF SEPARATE COMPILATIONS AND CREATION OF A LOAD MODULE&&USERAA1 O MSGC9ASSHAKNOTI2YHUSERAA&&MYSTEP EEC PROCHIE91C9&&P9I.SYSIN DD 'MYPROG: PROCEDURE OPTIONS(MAIN);DC9 SUM ENTRY(2IED DECIMA9(4K)K2IED DECIMA9(4K));

Page 10: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 10/161

Udhaya’s PL/I Material 6/06/2003 Page:- 10 / 161

DC9 RESU9T 2IED DECIMA9(4K) ETERNA9;DC9 2IED DECIMA9(4K);

  DC9 Y 2IED DECIMA9(4K);H1./;YH111.11;CA99 SUM(KY);PUT S=IP EDIT(<RESU9T IS:<KRESU9T)(AK2(4K));

END MYPROG;&'&&9=ED.SYS9I DD DSNHUSERAA.P9IC9ASS.O(SUM)KDISPHO9D&& DD DSNHCEE.SCEE9=EDKDISPHSR&&9=ED.SYS9MOD DD DSNHUSERAA.ASMC9ASS.9OAD9I(P9I)KDISPHO9D&&

E>AMPLE OF RUNNING A PREVIOUSLY CREATED LOAD MODULE&&USERAA1 O MSGC9ASSHAKNOTI2YHUSERAA&&MYSTEP EEC PGMHP9I&&STEP9I DD DSNHUSERAA.ASMC9ASS.9OAD9IKDISPHSR&&SYSPRINT DD SYSOUTH'&&CEEDUMP DD SYSOUTH'

&&SYSUDUMP DD SYSOUTH'&&

SOME IMPORTANT COMPILER OPTIONSESD NOESD 9isti", o+ ete#"al s!bol %i$tio"a#29AG(I) 9ist all !essa,es29AG() 9ist all e$e*t i"+o#!atio" !essa,es29AG(E) list all e$e*t 3a#"i", a"% i"+o#!atio" !essa,es29AG(S) list o"l seJe#e e##o# !essa,esDEC= NODEC= De$8 s*e$i+ies tat te obe$t !o%le is 3#itte" i" $a#% i!a,e

+o#! o"to SYSPCVNOWAGGREGATE $o"t#ols listi", o+ le",ts o+ a##as a"% st#$t#es i" *#o,#a!

listi",

VNOWATTRIUTES (2U99 SORT)$o"t#ols listi", o+ all so#$e *#o,#a! i%e"ti+ie#s 3it tei#att#ibtes i" te *#o,#a! listi",. I" SORT "-#e+e#e"$e%i%e"ti+ie#s a#e o!itte%.

NOT(9not c&aracter9 ) De+i"es "e3 NOT $a#a$te# 

VNOWGONUMER $o"t#ols 3ete# te $o!*ile# *#o%$es $o%e 3i$ 3ill ,iJe li"e"!be# +#o! te so#$e *#o,#a! to be i"$l%e% i" #" ti!e!essa,es

VNOWOECT $o"t#ols 3ete# te $o!*ile# *#o%$es a obe$t !o%le o"SYS9IN

VNOWOPTIONS $o"t#ols 3ete# te $o!*ile# *#i"ts te o*tio"s i" e++e$t i" te*#o,#a! listi",

VNOWSOURCE $o"t#ols 3ete# te $o!*ile# lists te so#$e *#o,#a! i" te*#o,#a! listi",.

SYSTEM (MSCMSTSOCICS..)

Page 11: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 11/161

Udhaya’s PL/I Material 6/06/2003 Page:- 11 / 161

S*e$i+ies te +o#!at i" 3i$ *a#a!ete#s a#e *asse% to te !ai"P9I *#o$e%#e (tis is sste! %e*e"%e"t)

VNOWRE2(2U99SORT) Co"t#ols i"$lsio" o+ $#oss #e+e#e"$e table i" te listi",

Tese o*tio"s $a" be set i" te so#$e b teLPROCESS o*tio"Ko*tio"KX..;

o# 

'PROCESS o*tio"Ko*tio"KX.;

Page 12: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 12/161

Udhaya’s PL/I Material 6/06/2003 Page:- 12 / 161

SECTION 3 DATA TYPES AND DATA MANIPULATION

P9&I Data T*e IM Data 2o#!at  Sto#a,e asi$ Usa,e2IED DECIMA9 Pa$8e% De$i!al / bits & %e$i!al A#it!eti$

%i,itK si," O*e#atio"s

2IED INARY 2ie% Poi"t al+3o#% o# A#it!eti$2ll3o#% O*e#atio"s

29OAT DECIMA9 2loati", Poi"t 4/ 15 its A#it!eti$29OAT INARY O*e#atio"s

PICTURE Fo"e% De$i!al 5 bits *e# %i,it N!e#i$  Ca#a$te# 

CARACTER Ca#a$te# 5 bits *e# Ca# Al*abeti$Ca#a$te# 

IT it O"e bte !i" 9o,i$alData

DEC9ARE PRICE DECIMA9 2IED(K);P#e$isio" o+ +iJe %i,its o+ 3i$ t3oa#e %e$i!al +#a$tio"S$ale Att#ibtease att#ibteI%e"ti+ie# (Ja#iable)P9&I =e3o#%

DEC9ARE PRICE 29OAT DECIMA9(4);PRICE H .1/

DEC9ARE PRICE DECIMA9 2IED(4K);PRICE H 1/.4;

DEC9ARE PRICE 2IED INARY(1);  /' 1 its ; sign it '/ 

PRICE H 1/4;DEC9ARE PRICE 2IED INARY(1);  /' 31 its ; sign it '/ 

PRICE H 1/4;DEC9ARE PRICE 2IED INARY(1K); /' 1 its ; sign# im*ied 2 its fraction

1111111111111#11 fraction ma5 #< decima*'/ 

MODE ATTRIBUTEDC9 COMP9EQAR 29OAT DECIMA9 (4) COMP9E;ot Real a"% i!a,i"a# $o!*o"e"t aJe 29OAT DECIMA9 (4) base S$ale a"%P#e$isio".

Pa#tial De$la#atio"s *ossibleDC9 A DECIMA9;  /' on*! ase defined '/ 

 /' sca*e and recision defau*t to L(0 =>) '/ 

DC9 A INARY  /' on*! ase defined '/  /'sca*e and recision defau*t to L(0=21) '/ 

DC9 A 2IED;  /' on*! sca*e defined '/  /' ase and recision defau*t to .+,IM(L =?8)'/ 

DC9 A 29OAT  /' on*! sca*e defined '/  /' ase and recision defau*t to .+,IM(L =>) '/ 

Page 13: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 13/161

Udhaya’s PL/I Material 6/06/2003 Page:- 13 / 161

Ote# att#ibtes %e+alt to te table belo3D'+*'7 A*-)' D'+) A*-)'DECIMA9 2IED (K6)DECIMA9 29OAT (4)INARY 2IED (1K6)INARY 29OAT (1)DECIMA9 29OAT (4)INARY 29OAT (1)2IED DECIMA9 (K6)29OAT DECIMA9 (4)No"eK a#iable be,i"s 3it I-N INARY 2IED (1)No"eK a#iable be,i"s 3it A-KO-FK?K@K> DECIMA9 29OAT (4)

Bit .ataDC9 ENDQO2Q2I9E IT(1);DC9 NO IT(1) INIT(<6<);DC9 YES IT(1) INIT(<1<);..

ENDQO2Q2I9E H NO;ON END2I9E(SYSIN) ENDQO2Q2I9E H YES;DO I9E( ENDQO2Q2I9E);

.

.END;

,&aracter .ata DC9 CARQDATA CAR(6) INIT(<ACDE2G<);

 /' Left "ustified and added on rig&t 7it& *an6s '/ Var!ing attriuteDC9 CARQDATA CAR(6) ARYING;

 /' 0&is is a t7o !te *engt& fie*d fo**o7ed '/ 

 /' ! a 28 !te fie*d for data '/ 

CARQDATA H <MY NAME<;CARQDATA H<<;  /' nu** string '/ DC9 ITQDATA IT(5) ARYING;

.efined attriuteDC9 A CAR(6);DC9 CAR() DE2 A;  /' oer*a! on ( '/ DC9 C CAR(16) DE2 A;  /' oer*a! on ( '/ DC9 D CAR(16) DE2 C;  /' +RRR @? not a**o7ed '/ 

Permitted Redifinesase I%e"ti+ie# De+i"e% Ite!Co%e% A#it!eti$ Ja#iable $o%e% a#it!eti$ Ja#iable 3it sa!e ASEK SCA9EK

PRECISIONCa#a$te# St#i", Ca#a$te# st#i", o# it St#i",it St#i", Ca#a$te# st#i", o# it st#i",

Position (ttriute DC9 CARQ9IST CAR(6);DC9 A CAR(16) DE2INED CARQ9IST;

Page 14: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 14/161

Udhaya’s PL/I Material 6/06/2003 Page:- 14 / 161

 /' oer*a!s first ten ositions '/ DC9 CAR(16) DE2INED CARQ9IST POSITION(16);

 /' oer*a!s ne5t 18 ositions '/ Initia* (ttriuteUse tis to i"itialise Ja#iablesDC9 A 2IED DECIMA9 (0K) INITIA9(/.6);DC9 CAR(16) INIT((16)<A<);DC9 C IT() INIT(<66<);DC9 D 2IED INARY(1) INIT (6);sa!e e++e$t $a" also be a$ieJe% b a" assi,"!e"t state!e"t at lo3e# $o%e e++i$ie"$.

PL/I .ata (ttriutes FI>ED DECIMAL ( Also #e*#ese"te% as 2IEDK DECIMA9 2IED)Data 2o#!at Pa$8e% De$i!alT*e o+ Data Co%e% a#it!eti$De+alt P#e$isio" De$i!al Di,its SKMai!! P#e$isio" 1 De$i!al %i,its SKKKKUse% +o# !o"eta# $al$latio"sEa!*le:

DC9 A 2IED DECIMA9 (K) INIT (1./);

FI>ED BINARYData 2o#!at 2ie% *oi"t si,"e% bi"a# (al+3o#% o# 2ll3o#%)T*e o+ Data Co%e% a#it!eti$De+alt P#e$isio" 1 its *ls si," bit (De$i!al K040)Mai!! P#e$isio" 1 its *ls si," bit (De$i!al K1/0K/5K4/0)Use% +o# +ast $o!*tatio"sK sall +o# i"te,e#sa#iables be,i""i", I-N %e+alt to +ie% i"a# "less e*li$itl %e+i"e% ote#3iseCa" be se% +o# #e*#ese"ti", +#a$tio"sK bt +#a$tio"s %o "ot aJe ea$t #e*#ese"tatio"i" i"a# .Ea!*le:

DC9 A 2IED INARY (1) INIT(1/0/54/0);

FLOAT DECIMAL  (Also #e*#ese"te% as DECIMA9)Data 2o#!at 2loati", Poi"tK bitK 4/ bit o# 15 bit #e*#ese"tatio"T*e o+ %ata Co%e% A#it!eti$De+alt *#e$isio" 4 De$i!al %i,itsMai!! *#e$isio" 14 De$i!al %i,itsRa",e o+ E*o"e"t 16''-05 to 16''0Ea!*les:

DC9 A 29OAT DEC(4);DC9 A DEC (4);  /' .efau*ts to L(0 '/ DC9 A 29OAT DEC(4) INIT(4.6E1);

Note that in storage there is no difference between FLOAT BINARY and FLOATDECIMAL data representation The! are both represented as E" D and L for#at f$oating

 point data" depending on the precision

 BITData 2o#!at bit (5 bits *e# bte)T*e o+ Data 9o,i$alDe+alt le",t No"eMai!! 9e",t 5666 bits +o# $o"sta"ts

040 bits +o# Ja#iables+5am*es

DC9 29AGS IT(5) INIT(<11166661<);DC9 29AGS IT() INIT(()<6<);

Page 15: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 15/161

Udhaya’s PL/I Material 6/06/2003 Page:- 15 / 161

Note tat bit st#i",s a#e (li8e $a#a$te# st#i",s ) assi,"e% le+t to #i,t. I+ a s!alle# bit st#i",is assi,"e% to a la#,e# st#i",K *a%%i", 3it bi"a# e#oes ta8es *la$e o" te Ja$a"t #i,t*ositio"s. I+ te assi,"e% bit st#i", is la#,e# ta" te #e$eiJi", +iel% te" t#"$atio" ta8es*la$e o" te #i,t.

C=ARACTERData 2o#!at Ca#a$te#  T*e o+ %ata Al*a"!e#i$ (a"ti", ,oes)De+alt le",t No"eMai!! 9e",t 1666 $a#a$te#s +o# $o"sta"ts

040 $a#a$te#s +o# Ja#iablesO" assi,"!e"t %ata is le+t ali,"e% a"% Ja$a"t *ositio"s o" #i,t a#e *a%%e% 3it s*a$es.I+ te #e$eiJi", +iel% is s!alle#K te" t#"$atio" ta8es *la$e o" te #i,t.+5am*e:

DC9 A CAR(6) INIT(<ACDE2<);DC9 A CAR(16) INIT((16)< <);

DATA DECLARATIONE(-- D'+*+-&Te s$o*e o+ a" e*li$it %e$la#atio" o+ a "a!e is tat blo$8 to 3i$ te %e$la#atio" is

i"te#"alK i"$l%i", all $o"tai"e% blo$8sK e$e*t tose blo$8s (a"% a" blo$8s $o"tai"e%3iti" te!) to 3i$ a"ote# e*li$it %e$la#atio" o+ te sa!e "a!e is i"te#"al.

 P: PROC;DC9 AK ;

B: PROC;  DC9 K C;  /' of roc is no7 &idden ! t&is '/ 

  /' a of roc is sti** isi*e '/   /' c of roc A is isi*e '/ 

R: PROCDC9 CK D  /' c of roc A is no7 &idden ! t&is c'/ 

 /' a of roc is sti** isi*e '/  /' of roc A is sti** isi*e '/ 

  /' d of roc r is isi*e '/  END R;

 /' no7 c of roc A is isi*e '/  /' of roc A is isi*e '/  /' a of roc is isi*e '/ 

  END B; /' o7 B of PR, P is isi*e '/  /' ( of PR, P is isi*e '/ 

  END P;

  DECLARE S+''&

Te DEC9ARE state!e"t s*e$i+ies att#ibtes o+ a "a!e a"% its *ositio" %ete#!i"es tes$o*e o+ te %e$la#atio" o+ te "a!e.

DEC9ARE V*ee* W name VattriuteW K V*ee* W name VattriuteW

F+*-& A*-)' Att#ibtes $o!!o" to seJe#al "a!es $a" be +a$to#e% to eli!i"ate #e*eate% s*e$i+i$atio"o+ te sa!e att#ibte.

DEC9ARE (AKKCKD) INARY 2IED (1);

Page 16: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 16/161

Udhaya’s PL/I Material 6/06/2003 Page:- 16 / 161

DEC9ARE (E DECIMA9(4K)K 2 CARACTER(16)) STATIC;DEC9ARE ((AK) 2IED(16)KC 29OAT()) ETERNA9;

I-- D'+*+-& N+'I+ a "a!e a**ea#s i" a *#o,#a! a"% is "ot e*li$itl %e$la#e%K it is i!*li$itl %e$la#e%. Tes$o*e o+ a" i!*li$it %e$la#atio" is %ete#!i"e% as i+ te "a!e 3e#e %e$la#e% i" aDEC9ARE state!e"t i!!e%iatel +ollo3i", te PROCEDURE state!e"t o+ te ete#"al*#o$e%#e i" 3i$ te "a!e is se%.

I!*li$it %e$la#atio" as te sa!e e++e$t as i+ te "a!e 3e#e %e$la#e% i" te ete#"al*#o$e%#eK eJe" 3e" all te o$$##e"$es o+ te "a!e a#e i"te#"al to a blo$8 ($alle% K+o# ea!*le) tat is $o"tai"e% i" te ete#"al *#o$e%#e. Co"se7e"tlK te "a!e is8"o3" t#o,ot te e"ti#e ete#"al *#o$e%#eK e$e*t +o# a" blo$8s i" 3i$ te "a!eis e*li$itl %e$la#e%. It is as i+ blo$8 as i"e#ite% te %e$la#atio" +#o! te $o"tai"i",ete#"al *#o$e%#e.

So!e att#ibtes +o# a "a!e %e$la#e% i!*li$itl $a" be %ete#!i"e% +#o! te $o"tet i"3i$ te "a!e a**ea#s. Tese $asesK $alle% $o"tetal %e$la#atio"sK a#e:

•  A "a!e tat a**ea#s i" a CA99 state!e"tK i" a CA99 o*tio"K o# is +ollo3e% b a"

a#,!e"t list is ,iJe" te UI9TIN a"% INTERNA9 att#ibtes.

•  A "a!e tat a**ea#s i" a 2I9E o# COPY o*tio"K o# a "a!e tat a**ea#s i" a" ONKSIGNA9 state!e"t +o# a $o"%itio" tat #e7i#es a +ile "a!e is ,iJe" a 2I9E att#ibte.

•  A "a!e tat a**ea#s i" a" ON CONDITION o# SIGNA9 CONDITION state!e"t is,iJe" te CONDITION att#ibte.

•  A "a!e tat a**ea#s i" te ASED att#ibteK i" a SET o*tio"K o# o" te le+t-a"% si%eo+ a lo$ato# 7ali+i$atio" s!bol is ,iJe" te POINTER att#ibte.

•  A "a!e tat a**ea#s i" a" IN o*tio"K o# i" te O22SET att#ibteK is ,iJe" te AREA

att#ibte.

E(+' &'()+ 7'+*+-& +*'@

READ 2I9E (PREB) INTO (B);

 A99OCATE IN (S);

I" tese state!e"tsK PREB is ,iJe" te 2I9E att#ibteK a"% S is ,iJe" te AREA att#ibte.

Page 17: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 17/161

Udhaya’s PL/I Material 6/06/2003 Page:- 17 / 161

S' D'+*+-&

  P B B R RZ S I A: PROCEDURE;  DEC9ARE PK B;  : PROCEDURE;  DEC9ARE B;  R H B;  C: EGIN;  DEC9ARE R;  DO I H 1 TO 16;

  .END;

  END C;  END ;  D: PROCEDURE;  DEC9ARE S;  END D;END A;

 • P is %e$la#e% i" te blo$8 A a"% 8"o3" t#o,ot A si"$e it is "ot #e-%e$la#e%.

• B is %e$la#e% i" blo$8 AK a"% #e-%e$la#e% i" blo$8 . Te s$o*e o+ te +i#st %e$la#atio"o+ B is all o+ A e$e*t ; te s$o*e o+ te se$o"% %e$la#atio" o+ B is blo$8 o"l.

• R is %e$la#e% i" blo$8 CK bt a #e+e#e"$e to R is also !a%e i" blo$8 . Te #e+e#e"$eto R i" blo$8 #eslts i" a" i!*li$it %e$la#atio" o+ R i" AK te ete#"al *#o$e%#e.Te#e+o#eK t3o se*a#ate "a!es (R a"% R[) 3it %i++e#e"t s$o*es eist. Te s$o*e o+te e*li$itl %e$la#e% R is blo$8 C; te s$o*e o+ te i!*li$itl %e$la#e% R is all o+ Ae$e*t blo$8 C.

• I is #e+e##e% to i" blo$8 C. Tis #eslts i" a" i!*li$it %e$la#atio" i" te ete#"al*#o$e%#e A. As a #esltK tis %e$la#atio" a**lies to all o+ AK i"$l%i", te $o"tai"e%*#o$e%#es K CK a"% D.

• S is e*li$itl %e$la#e% i" *#o$e%#e D a" is 8"o3" o"l 3iti" D.

INTERNAL +&7 E>TERNAL A*-)'

INTERNA9 s*e$i+ies tat te "a!e $a" be 8"o3" o"l i" te %e$la#i", blo$8. A" ote#e*li$it %e$la#atio" o+ tat "a!e #e+e#s to a "e3 obe$t 3it a %i++e#e"tK "o" oJe#la**i",s$o*e.

 A "a!e 3it te ETERNA9 att#ibte $a" be %e$la#e% !o#e ta" o"$eK eite# i" %i++e#e"tete#"al *#o$e%#es o# 3iti" blo$8s $o"tai"e% i" ete#"al *#o$e%#es. All %e$la#atio"s o+te sa!e "a!e 3it te ETERNA9 att#ibte #e+e# to te sa!e %ata.

ETERNA9 is te %e+alt +o# $o"t#olle% Ja#iablesK +ile $o"sta"tsK e"t# $o"sta"tsKe$ase ete#"al %e$la#atio"s +o# te sa!e "a!e all #e+e# to te sa!e %ataK te !st all#eslt i" te sa!e set o+ att#ibtes.

L+&)+' S'--'7 D'+)

Page 18: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 18/161

Udhaya’s PL/I Material 6/06/2003 Page:- 18 / 161

e" a *#oble!-%ata "a!e as "ot bee" %e$la#e% 3it a %ata t*e o# 3e" teRETURNS o*tio" is o!itte% +#o! a +"$tio" *#o$e%#eK te %e+alt is $o%e% a#it!eti$*#oble! %ata.

If mode? sca*e? and ase are not secified ! a .+,L(R+ or .+(L0 statement?or ! a R+0RS otion? aria*es 7it& names eginning 7it& an! of t&e *etters It&roug& are gien t&e attriutes R+(L I+. BI(R4 =1?8)? and t&ose 7it&names eginning 7it& an! ot&er a*&aetic c&aracter are gien t&e attriutesR+(L L(0 .+,IM(L =>)#

 A s$ali", +a$to# i" te *#e$isio" att#ibte $o"stittes a" e*li$it %e$la#atio" o+ 2IED.

If mode? sca*e? or ase is secified ! a .+,L(R+ or .+(L0 statement? or ! aR+0RS otion? t&e remaining attriutes are com*eted from t&e fo**o7ing *ist ofdefau*ts:

0&e defau*t ase is .+,IM(L#0&e defau*t sca*e is L(0#0&e defau*t mode is R+(L#

.efau*t recision is t&en com*eted from t&e fo**o7ing *ist:

=?8) for .+,IM(L I+.=1?8) for BI(R4 I+.=>) for .+,IM(L L(0 =21) for BI(R4 L(0 

2o# ea!*le te state!e"t:

DC9 INARY (1) /' no sca*e secified #gets t&e attriutes R+(L and L(0 '/ 

DC9 INARY (1K6)

 /' sca*e secified gets t&e attriutes R+(L and I+.# '/ 

I+ "o *a#a!ete# %es$#i*to# list is ,iJe"K te %e+alt is tat te a#,!e"t att#ibtes !at$te *a#a!ete# att#ibtes.

DEFAULT S+''&Te DE2AU9T state!e"t s*e$i+ies %ata-att#ibte %e+alts (3e" att#ibte sets a#e "ot$o!*lete). A" att#ibtes "ot a**lie% b te DE2AU9T state!e"t +o# a" *a#tiall$o!*lete e*li$it o# $o"tetal %e$la#atio"sK a"% +o# i!*li$it %e$la#atio"sK a#e s**lie% bla",a,e-s*e$i+ie% %e+alts.

 Abb#eJiatio": D2T RANGE(lette#)S*e$i+ies tat te %e+alts a**l to "a!es tat be,i" 3it te "a!e(s) s*e$i+ie%. 9ette#

$a" be a" lette# i" te E",lis al*abet.

E(+'@RANGE (AC)a**lies to tese "a!es:

 AC ACD ACDE

bt "ot to:

Page 19: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 19/161

Udhaya’s PL/I Material 6/06/2003 Page:- 19 / 161

 AD AC A A

e"$e a si",le lette# i" te #a",e-s*e$i+i$atio" a**lies to all "a!es tat sta#t 3it tatlette#.

RANGE (lette# : lette#)

S*e$i+ies tat te %e+alts a**l to "a!es 3it i"itial lette#s tat eite# $o##es*o"% to tet3o lette#s s*e$i+ie%K o# to a" lette#s bet3ee" te t3o i" al*abeti$ se7e"$e.

RANGE(')

S*e$i+ies all "a!es i" te s$o*e o+ te DE2AU9T state!e"t.

E(+'@DE2AU9T RANGE (A:C) A9UE (2IED DEC(16)K29OAT DEC(1/)KAREA(666));

DEC9ARE 2IED DECIMA9K C 29OAT DECIMA9K A AREA;

Tese state!e"ts a#e e7iJale"t to:

DEC9ARE 2IED DECIMA9 (16)K C 29OAT DECIMA9(1/)K A AREA(666);

E(+'@D2T RANGE(I:N) 2IED INARY A9UE(2IED INARY(1));

D2T RANGE(A:KO:F) 29OAT DECIMA9 A9UE(29OAT DECIMA9(4));

D++ C&8'*-&e" !ie% %ata t*es a**ea# i" a" a#it!eti$ e*#essio"K P9&I $ases te +ollo3i",

$o"Je#sio"s to ta8e *la$e to !a8e te e*#essio" aJe all to8e"s o+ te sa!e %ata t*e.

1. I+ base o+ te %ata ite! %i++e#sK DECIMA9 is $o"Je#te% to INARY. I+ te s$ale %i++e#s 2IED is $o"Je#te% to 29OAT. I+ CARACTER a"% IT a#e i"JolJe%K te" IT is $o"Je#te% to CARACTER a it 1

be$o!i", $a#a$te# 1K a e#o be$o!i", $a#a$te# 6.

Va*ues oerated on ,onersion ,ommentsDC9 A 2IED DECK A is $o"Je#te% s$ale is %i++e#e"t  29OAT DEC; to 29OAT 2IED - 29OAT  Y H A ;

DC9 C 2IED DECK C is $o"Je#te% base is %i++e#e"t

D 2IED IN; to 2IED IN DEC - IN  I H C'D;

DC9 E 2IED DECK E is $o"Je#te% base a"% s$ale a#e  2 29OAT IN; to 29OAT IN %i++e#e"t  R H E&2; 2IED - 29OAT

  DECIMA9 - INARY

DC9 = CAR(1)K is $o"Je#te% to IT - CARACTER  I CAR()K CAR(5)

Page 20: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 20/161

Udhaya’s PL/I Material 6/06/2003 Page:- 20 / 161

IT(5);  = H I ;

 (ssignment StatementsDC9 A 2IED DECIMA9(K) INIT(1.1);DC9 2IED DECIMA9(K) INIT(.);DC9 C 2IED DECIMA9(K);

C H A;  /' note t&at assignment is t&e C sign '/  AKKC H 6;  /' a** t&ree aria*es assigned a*ue 8 '/ C H A' D /' Rig&t &and side is an e5ression '/   Note tat te assi,"e% te#! $a" be a Ja#iable o# a" e*#essio" ( o+ $o"sta"ts &$o"sta"ts a"% Ja#iables.

 (rit&metic erations'' E*o"e"tiatio"' Mlti*li$atio"

& DiJisio" A%%itio"- Sbt#a$tio"Rle 1: O#%e# o+ #esoltio" i" a" a#it!eti$ e*#essio" is E*o"e"tiatio" +i#st ,oi", #i,t

to le+t. Net !oJi", +#o! le+t to #i,t !lti*li$atio" o# %iJisio"K 3i$eJe# a**ea#s+i#st. Te" a%%itio" o# sbt#a$tio" K 3i$eJe# a**ea#s +i#stK !oJi", +#o! le+t to#i,t.

Rle : I+ *a#e"tesis a#e se% i" a" e*#essio"K te i""e#!ost e*#essio" 3iti" te*a#e"tesis is #esolJe% +i#stK i" $o"so"a"$e 3it Rle 1K a"% te #esoltio"!oJes ot3a#%s. Ea!*le A ' (C)

 /' reso*e B;, first and mu*ti*! t&e resu*t ! ( '/ 

Rle : P#e+i o*e#ato#s a#e *e#+o#!e% be+o#e i"+i o*e#ato#s

Ea!*le A H ''-A /' egate ( first# 0&en raise B to t&e o7er of ( '/ 

Rle /: A" e*#essio" o# ele!e"t !a be #aise% to a *o3e# 3i$ $a" be a "e,atiJeJale Ea!*le A''K (A)''K A''-

Rle : I+ t3o o# !o#e o*e#ato#s 3it te i,est *#io#it a**ea# i" te sa!e e*#essio"Kte o#%e# o+ *#io#it is +#o! #i,t to le+tEa!*le -A''  /' +5onentiation first? egation ne5t '/ 

  A''''C /' +a*uate B'', first#0&en raise ( to t&e resu*tant o7er'/ 

erator Precedence

Lee* erator  1 *#e+i K *#e+i -K '' K 'K & i"+i K i"+i -/ HKKHKK HKX..4 0

Page 21: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 21/161

Udhaya’s PL/I Material 6/06/2003 Page:- 21 / 161

SECTION 4 PROCEDURES, FUNCTIONS

Bui*t In unctionsDe$la#atio" #e7i#e%DC9 function-name  UI9TIN;

Ea!*leDC9 DATE UI9TIN;

 (rit&metic Bui*t-in unctionsROUND?+*1,+*2a#,1 is te Jale to be #o"%e%K $a" be a" ele!e"tK a##a ele!e"t o# a##a "a!e a#,s*e$i+ies te %i,it *ositio" 3e#e #o"%i", is to o$$#. I+ *ositiJeK #o"%i", o$$#s "t%i,it to #i,t o+ %e$i!al *oi"t. I+ e#oK #o"%i", o$$#s at te +i#st %i,it le+t o+ te %e$i!al*oi"t. I+ "e,atiJe #o"%i", o$$#s at "1 %i,it to te le+t o+ te %e$i!al *oi"t.Ea!*le:

DC9 2IED DECIMA9(0K/);DC9 Y 2IED DECIMA9(0K/); H 1.041Y H ROUND(K);  /' 4 is 123#<2>8'/ Y H ROUND(K);  /' 4 is 123#<388'/ Y H ROUND(K6);  /' 4 is 12E#8888'/ Y H ROUND(K-1);  /' 4 is 128#8888'/ 

MOD?+*1,+*2Te Jale #et#"e% is te #e!ai"%e# o+ te %iJisio" o+ a#,1 b a#,.

COS?+*1, SIN?+*1, LOG?+*1 '. +*' +8+-+'

.ate and 0ime ui*t in functionsDC9 DATEAR CAR(4);DC9 TIMEAR CAR();

  DC9 DATE UI9TIN;  DC9 TIME UI9TIN;

DATEAR H DATE;  /' 44MM.. '/ TIMEAR H TIME;  /' %%MMSS000 '/ 

String &and*ing functionsSUBSTR?+*1,I,$Ret#"s a sb-st#i", +#o! a#,1 ($a#a$te#K it o# Pi$t#e att#ibte)sta#ti", at *ositio" I a"% $a#a$te#s lo",. A#,1 $a" be a $o"sta"tK Ja#iable "a!e o# a" e*#essio". It !a alsobe s*e$i+ie% as a 9IST ite! i" a GET o# PUT state!e"t.

Pseudoaria*esIs a bilt i" +"$tio" a**ea#i", as a #e$eiJi", +iel%.

Ea!*le:DC9 DATE CAR(4) INIT(<561<);SUSTR(DATEK1K)H<<;  /' c&ange 44 to FF '/ GET 9IST (SUSTR(DATEKK/)); /' get MM.. from S4SI '/ 

BITCo"Je#ts $o%e% a#it!eti$ %ata ite! o# Ca#a$te# st#i", to a it st#i",

DC9 A IT();DC9 2IED INARY(1);

 A H IT();  /' conerts into a 31 ; sign it string '/ 

Page 22: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 22/161

Udhaya’s PL/I Material 6/06/2003 Page:- 22 / 161

 A H IT(K1);  /' ( contains a it string of *engt& 1 '/ 

C=ARCo"Je#ts a ,iJe" Jale to Ca#a$te# +o#!

DC9 A 2IED DEC() INIT(10);DC9 CAR(); H CAR(A);  /' B contains 91<9 '/  H CAR(AK); /'B contains 91<9 '/ 

LENGT=Ret#"s le",t o+ $a#a$te# o# it st#i",. Use+l i" +i"%i", le",t o+ $a#a$te# st#i",s 3itte ARYING att#ibte.

DC9 A CAR(6) ARYING;DC9 AQ9ENGT 2IED INARY(1);

 A H <ACDE2<; AQ9ENGT H 9ENGT(A);  /' (L+G0% &as a a*ue of > '/ 

INDE>Sea#$es a ,iJe" st#i", +o# a s*e$i+ie% IT o# CAR sb-st#i",. I+ +o"% #et#"s te le+t!ost o$$##e"$e o+ te sb-st#i", else #et#"s e#o. A#,!e"ts $a" be bit st#i",K

$a#a$te# st#i",K bi"a# $o%e% a#it!eti$ +iel%K %e$i!al *i$t#e o# a##a "a!es. I+ bota#,!e"ts a#e "ot bit st#i",sK bot a#,!e"ts a#e $o"Je#te% i"to $a#a$te# st#i",sK elsete o*e#atio" is *e#+o#!e% o" bit st#i",s.

DC9 SENTENCE CAR(/6);SENTENCE H <TE DOG CASED TE TAC<;START H INDE(SENTENCEK<TAC<);  /' Locate 90(,9 '/ 

SUSTR(SENTENCEKSTARTK) H <CAT<; /' and ,&ange it to 9,(09 '/ 

  REPEATREPEAT(st#i",K")Re*eats st#i", " ti!es.DC9 SENTENCE CAR(/6);

SENTENCE H (16)<ACD< /'S+0+,+ contains 9(B,.(B,.H#9 '/ SENTENCE H REPEAT(<A99A<K); /' S+0+,+ is 9(LL((LL(9 '/ 

TRANSLATETRANS9ATE(So#$eQst#i",K Re*la$e!e"tQst#i",K Positio"Qst#i",)

DC9 SOURCE CARACTER();DC9 TARGET CARACTER();DC9 NEQA9UE CAR(1);DC9 O9DQA9UE CAR(1);SOURCE H <1/<;NEQA9UE H < <;O9DQA9UE H <<;TARGET H TRANS9ATE(SOURCEKNEQA9UEKO9DQA9UE);

 /' 0(RG+0 is no7 9 123E9 '/

PROGRAM ORGANISATIONPrograms

 A P9&I *#o,#a! $o"sists o+ o"e o# !o#e ete#"al *#o$e%#es. Ea$ *#o$e%#e $a"$o"tai" ote# *#o$e%#esK be,i"-blo$8sK o# bot.

Program (ctiation A P9&I *#o,#a! be$o!es a$tiJe 3e" a $alli", *#o,#a! i"Jo8es te !ai" *#o$e%#e.

Page 23: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 23/161

Udhaya’s PL/I Material 6/06/2003 Page:- 23 / 161

CONTR9: PROCEDURE OPTIONS(MAIN);  CA99 A;  CA99 ;  CA99 C;  END CONTR9;

B*oc6s•  A blo$8 is a %eli!ite% se7e"$e o+ state!e"ts tat %ete#!i"es te s$o*e o+ te

%e$la#atio" o+ "a!es %e$la#e% 3iti" itK li!its te allo$atio" o+ ato!ati$ Ja#iablesKa"% %ete#!i"es te s$o*e o+ DE2AU9T state!e"ts.

• T3o 8i"%s o+ blo$8s: *'7)*'  a"% '-&".

• e,i"-blo$8s a"% *#o$e%#es $a" $o"tai" %e$la#atio"s tat a#e t#eate% as lo$al%e+i"itio"s o+ "a!es.

• Tese %e$la#atio"s a#e "ot 8"o3" otsi%e tei# o3" blo$8.

•  Ato!ati$ sto#a,e is allo$ate% *o" e"t# to te blo$8 3e#e te sto#a,e is

%e$la#e%. Te sto#a,e is +#ee% *o" eit +#o! te blo$8.

B*oc6 (ctiation• E$e*t +o# te !ai" *#o$e%#eK ete#"al a"% i"te#"al *#o$e%#es $o"tai"e% i" a

*#o,#a! a#e a$tiJate% o"l 3e" te a#e i"Jo8e% b a *#o$e%#e #e+e#e"$e.

• e,i"-blo$8s a#e a$tiJate% t#o, se7e"tial +lo3 o# as ON-"its.

.uring B*oc6 (ctiation@

• E*#essio"s +o# ato!ati$ a"% %e+i"e% Ja#iables a#e eJalate% +o# %i!e"sio"bo"%sK a#ea siesK st#i", le",tsK a"% i"itial Jales (i"$l%i", ite#atio" +a$to#s).

• Sto#a,e is allo$ate% +o# ato!ati$ Ja#iables a"% i"itialisatio"K i+ s*e$i+ie%.

• C##e"tl a$tiJe blo$8s 8"o3" to te *#o$e%#e a#e i%e"ti+ie%K so tat te $o##e$t,e"e#atio"s o+ ato!ati$ sto#a,e a#e a$$essibleK a"% te $o##e$t ON-"its $a" bee"te#e%.

• Sto#a,e is allo$ate% +o# a" %!! a#,!e"ts tat !i,t be $#eate% i" tis blo$8.

B*oc6 0ermination A *#o$e%#e is te#!i"ate% 3e" $o"t#ol *asses ba$8 to te i"Jo8i", blo$8 o# toso!e ote# a$tiJe blo$8K b !ea"s ote# ta" a *#o$e%#e #e+e#e"$e. Si!ila#lK abe,i"-blo$8 is te#!i"ate% 3e" $o"t#ol *asses to a"ote# a$tiJe blo$8K b !ea"sote# ta" a *#o$e%#e #e+e#e"$e.

.uring *oc6 termination@• Te ON-"it e"Ji#o"!e"t is #e-establise% as it eiste% be+o#e te blo$8 3as

a$tiJate%.• Sto#a,e +o# all ato!ati$ Ja#iables allo$ate% i" te blo$8 is #elease%.

Interna* and +5terna* B*oc6s• Te#e $a" be "o oJe#la**i", o+ blo$8s;

•  A *#o$e%#e tat is $o"tai"e% 3iti" a"ote# blo$8 is $alle% a" i"te#"al *#o$e%#e. A*#o$e%#e tat is "ot $o"tai"e% 3iti" a"ote# blo$8 is $alle% a" ete#"al *#o$e%#e.

Page 24: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 24/161

Page 25: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 25/161

Udhaya’s PL/I Material 6/06/2003 Page:- 25 / 161

 A: PROCEDURE;  .  .  : EGIN;  .  .  END ;  .  .  C: PROCEDURE;  .  .  D: EGIN;  .  .  E: PROCEDURE;  .  .  END E;

  .  .  END D;  END C;  .  .  END A;

Procedures A *#o$e%#e is a se7e"$e o+ state!e"ts %eli!ite% b a PROCEDURE state!e"ts a"% a$o##es*o"%i", END state!e"t.

2o# ea!*le:

NAME: A: PROCEDURE;  .  .  .  END NAME;

Te le+t!ost label o+ te PROCEDURE state!e"t #e*#ese"ts te *#i!a# e"t# *oi"t o+te *#o$e%#e. O*tio"allK a%%itio"al labels %e+i"e se$o"%a# e"t# *oi"ts. Te ENTRYstate!e"t also %e+i"es se$o"%a# e"t# *oi"ts.

: ENTRY;

PR,+.R+ and +0R4 Statements

 A *#o$e%#e (sb#oti"e o# +"$tio") $a" aJe o"e o# !o#e e"t# *oi"ts. Te *#i!a#e"t# *oi"t to a *#o$e%#e is establise% b te le+t!ost label o+ te PROCEDUREstate!e"t. Se$o"%a# e"t# *oi"ts to a *#o$e%#e a#e establise% b a%%itio"al labels o+te PROCEDURE state!e"t a"% b te ENTRY state!e"t.

 A: I: PROCEDURE ();

is the sa#e as%

 A: PROCEDURE ();

Page 26: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 26/161

Udhaya’s PL/I Material 6/06/2003 Page:- 26 / 161

I : ENTRY ();

e" a" ETERNA9 ENTRY is %e$la#e% 3itot a *a#a!ete# %es$#i*to# listK !at$i",bet3ee" *a#a!ete#s a"% a#,!e"ts %oes "ot o$$#. Te#e+o#eK "o %ia,"osti$ !essa,e isisse% i+ a" a#,!e"ts a#e s*e$i+ie% i" a CA99 to s$ a" e"t# *oi"t.

'(+'@DEC9ARE ENTRY ETERNA9;CA99 (*a#a!ete#);

F*+ * PROCEDURE +''&entr!-constant : PROCEDURE ( arameter? arameter KX)

RETURNS(attriute) OPTIONS (tions-*ist )

F*+ * ENTRY +''&entr!-constant : ENTRY ( arameter? arameter KX)

RETURNS(attriute) OPTIONS (tions-*ist )

Imortant P0IS are

YADDR o# YA9UES*e$i+ o3 all *a#a!ete#s %e+i"e% +o# tis *#o$e%#e e"t# a#e *asse%. I+ o s*e$i+YADDRK *a#a!ete#s a#e #e$eiJe% b a%%#ess. I+ o s*e$i+ YA9UEK *a#a!ete#s a#e#e$eiJe% b Jale. A" $a",e to a *a#a!ete# tat is bei", *asse% b Jale is "ot#e+le$te% i" te a#,!e"t *asse% b te $alle#. YADDR is te %e+alt

YA9UE $a" be s*e$i+ie% +o# ETERNA9 PROCEDURE state!e"tsK bt it $a""ot bes*e$i+ie% +o# i"te#"al *#o$e%#es o# ENTRY state!e"ts. A%%itio"all YA9UE e"t#*oi"ts $a" o"l aJe s$ala# a#,!e"ts a"% #et#" Jales tat a#e eite# POINTER o#REA9 2IED INARY(1K6)

YADDR is te %e+alt.

E(+'@ETR: PROCEDURE(AK) OPTIONS (YADDR);

  DC9 (AK) 29OAT;

MAIN Te P9&I *#o$e%#e is te i"itial *#o$e%#e o+ a P9&I *#o,#a!. Te o*e#ati",sste! $o"t#ol *#o,#a! i"Jo8es it as te +i#st ste* i" te ee$tio" o+ tat*#o,#a!.

COO9 S*e$i+ies tat te %esi,"ate% e"t# *oi"t is i" a COO9 sb*#o,#a!. 

 ASSEM9ER s*e$i+ies tat te %esi,"ate% e"t# *oi"t is i" a" asse!ble# sb#oti"e.P9&I *asses a#,!e"ts %i#e$tl to te sb#oti"eK #ate# ta" Jia P9&I $o"t#olblo$8s. E"t#ies 3it te ASSEM9ER o*tio" a#e sbe$t to te +ollo3i", #les:

 • Te $a""ot be se% as a +"$tio" #e+e#e"$e.

•  A" "!be# o+ a#,!e"ts $a" be *asse% i" te CA99 state!e"t i"Jo8i", tee"t#K +#o! e#o * to te "!be# s*e$i+ie% b te e"t# %e$la#atio"K bti"te#Je"i", a#,!e"ts $a""ot be o!itte%.

Page 27: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 27/161

Udhaya’s PL/I Material 6/06/2003 Page:- 27 / 161

Parameter (ttriutese$ase a *a#a!ete# as "o asso$iate% sto#a,e 3iti" te i"Jo8e% *#o$e%#eK it $a""otbe %e$la#e% to aJe a" o+ te sto#a,e att#ibtes STATICK AUTOMATICK ASEDK o#DE2INED. o3eJe#K it $a" be %e$la#e% to aJe te CONTRO99ED att#ibte.

,ontro**ed Parameter Bounds? Lengt&s? and SiJesTe bo"%sK le",tK o# sie o+ a $o"t#olle% *a#a!ete# $a" be s*e$i+ie% i" a DEC9AREstate!e"t eite# b aste#is8s o# b ele!e"t e*#essio"s.

MAIN: PROCEDURE OPTIONS(MAIN) ;  DEC9ARE (A(6)K (6)K C(166)K  D(166)) CONTRO99EDK  NAME CARACTER (6)K  I 2IED (K6) ;  DEC9ARE (SU1KSU) ENTRY;  A99OCATE AK;  CA99 SU1(AK) ;  2REE AK;  /: F*'' A +&7 B ++'7 -& SUB1 :/  2REE AK;  /: F*'' A +&7 B ++'7 -& MAIN :/  GET 9IST (NAMEKI) ;  /:G' NAME +&7 I * SYSIN :/

  CA99 SU (CKDKNAMEKI);  2REE CKD;  END MAIN;

SU1: PROCEDURE (UK) ;  DC9 (U(')K (')) CONTRO99ED;  A99OCATE U(6)K (/6);  RETURN;  END SU1;

SU: PROCEDURE (KYKNAMEAKN);  DEC9ARE ((N)KY(N)) CONTRO99EDK  NAMEA CARACTER (')K

  N 2IED(K6);  A99OCATE KY;  RETURN;  END SU;

e" SU1 is i"Jo8e%K A a"% K 3i$ aJe bee" allo$ate% as %e$la#e%K a#e *asse%.Te A99OCATE state!e"t i" SU1 s*e$i+ies bo"%s +o# te a##as; $o"se7e"tlK teallo$ate% a##asK 3i$ a#e a$tall a se$o"% ,e"e#atio" o+ A a"% K aJe bo"%s%i++e#e"t +#o! te +i#st ,e"e#atio". I+ "o bo"%s 3e#e s*e$i+ie% i" te A99OCATEstate!e"tK te bo"%s o+ te +i#st a"% te "e3 ,e"e#atio" a#e i%e"ti$al.

O" #et#" to MAINK te +i#st 2REE state!e"t +#ees te se$o"% ,e"e#atio" o+ A a"% (allo$ate% i" SU1)K a"% te se$o"% 2REE state!e"t +#ees te +i#st ,e"e#atio" (allo$ate%

i" MAIN).

I" SUK a"% Y a#e %e$la#e% 3it bo"%s tat %e*e"% *o" te Jale o+ N. e" a"% Y a#e allo$ate%K tis Jale %ete#!i"es te bo"%s o+ te allo$ate% a##a.

Te aste#is8 "otatio" +o# te le",t o+ NAMEA i"%i$ates tat te le",t is to be *i$8e% *+#o! te a#,!e"t (NAME).Tis $a" be %o"e b te bilt-i" +"$tio" 9ENGT.

P*'7)*' A-8+-&

•  A+te# te 8e3o#% CA99 i" a CA99 state!e"t (as %es$#ibe% i" \CA99 State!e"t])

Page 28: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 28/161

Udhaya’s PL/I Material 6/06/2003 Page:- 28 / 161

•  A+te# te 8e3o#% CA99 i" te CA99 o*tio" o+ te INITIA9 att#ibteE(+': SETQUP is te "a!e o+ a *#o$e%#e tat $a" set te i"itial Jales o+ele!e"ts i" TA9E. a"% Y a#e a#,!e"ts *asse% to SETQUP. DEC9ARE TA9E (6K6) INITIA9 CA99 SETQUP (KY);

 As a +"$tio" #e+e#e"$e

E&*< P-& A: READIN: PROCEDURE;

  state!e"t-1  state!e"t-  ERRT: ENTRY;  state!e"t-  state!e"t-/  state!e"t-

NET: RETR: ENTRY;  state!e"t-4  . . .  END READIN;

I" te ea!*leK A is te *#i!a# e"t# *oi"t. A a"% READIN s*e$i+ te sa!e e"t# *oi"tKas %o NET a"% RETR. o3eJe# "ote tat %e*e"%i", o" te e"t# *oi"t se% to i"Jo8ete *#o$e%#eK te $o%e ee$te% $a" be %i++e#e"t. Te *#o$e%#e $a" be a$tiJate% ba" o+ te +ollo3i", state!e"ts:

CA99 A;CA99 ERRT;CA99 NET;CA99 RETR;CA99 READIN;

E&*< V+*-+'

DEC9ARE ENT1 ENTRY ARIA9E;ENT1 H ERRT;CA99 ENT1;  /' t&is ca** and t&e ne5t ca** &ae t&e same effect '/ CA99 ERRT; /' t&is ca** and t&e reious &ae t&e same effect '/ 

Procedure 0erminationNo#!al *#o$e%#e te#!i"atio" o$$#s 3e":

• Co"t#ol #ea$es a RETURN state!e"t 3iti" te *#o$e%#e. Te ee$tio" o+ aRETURN state!e"t #et#"s $o"t#ol to te *oi"t o+ i"Jo$atio" i" te i"Jo8i",*#o$e%#e. I+ te *oi"t o+ i"Jo$atio" is a CA99 state!e"tK ee$tio" i" te i"Jo8i",*#o$e%#e #es!es 3it te state!e"t +ollo3i", te CA99. I+ te *oi"t o+ i"Jo$atio" iso"e o+ te ote# +o#!s o+ *#o$e%#e #e+e#e"$es (tat isK a CA99 o*tio" o+ te INIT

8e3o#% o# a +"$tio" #e+e#e"$e)K ee$tio" o+ te state!e"t $o"tai"i", te #e+e#e"$eis #es!e%.

• Co"t#ol #ea$es te END state!e"t o+ te *#o$e%#e. E++e$tiJelK tis is e7iJale"t tote ee$tio" o+ a RETURN state!e"t.

T#a"s+e##i", $o"t#ol ot o+ a *#o$e%#e si", a GO TO state!e"t $a" so!eti!es #eslt i"te te#!i"atio" o+ seJe#al *#o$e%#es a"%&o# be,i"-blo$8s. S*e$i+i$allK i+ te t#a"s+e#

Page 29: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 29/161

Udhaya’s PL/I Material 6/06/2003 Page:- 29 / 161

*oi"t s*e$i+ie% b te GO TO state!e"t is $o"tai"e% i" a blo$8 tat %i% "ot %i#e$tla$tiJate te blo$8 bei", te#!i"ate%K all i"te#Je"i", blo$8s i" te a$tiJatio" se7e"$e a#ete#!i"ate%.

E(+'@ A: PROCEDURE OPTIONS(MAIN) ;

  state!e"t-1  state!e"t-  : EGIN;  state!e"t-b1  state!e"t-b  CA99 C;  state!e"t-b  END ;  state!e"t-  state!e"t-/  C: PROCEDURE;  state!e"t-$1  state!e"t-$  state!e"t-$

  D: EGIN;  state!e"t-%1  state!e"t-%  GO TO 9A;  state!e"t-%  END D;  state!e"t-$/  END C;

state!e"t-  9A: state!e"t-4  state!e"t-0  END A;

 A a$tiJates K 3i$ a$tiJates CK 3i$ a$tiJates D. I" DK te state!e"t GO TO 9At#a"s+e#s $o"t#ol to state!e"t-4 i" A. Si"$e tis state!e"t is "ot $o"tai"e% i" DK CK o# Kall t#ee blo$8s a#e te#!i"ate%; A #e!ai"s a$tiJe. TsK te t#a"s+e# o+ $o"t#ol ot o+ D#eslts i" te te#!i"atio" o+ i"te#Je"i", blo$8s a"% C as 3ell as te te#!i"atio" o+ blo$8D.

.!namic Loading of an +5terna* ProcedureUse 2ETC a"% RE9EASE state!e"ts

 PROGA: PROC OPTIONS(MAIN);DC9 (CKD) 2IED IN(1);DC9 PROG ENTRY(2IED IN(1)K2IED IN(1));

2ETC PROG;

CA99 PROG(CKD);RE9EASE PROG;END PROGA;

E(+'&&XX O&&DYNSTP EEC PROCHIE91C9KREGION.P9IH1M&&P9I.SYSIN DD 'PROG : PROC(AK);DC9 (AK) 2IED IN(1);

Page 30: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 30/161

Udhaya’s PL/I Material 6/06/2003 Page:- 30 / 161

PUT 9IST(<A AND :< KAK);END PROG;&'&&P9I.SYS9IN DD DSNH9OADSETKDISPH(NEK=EEP)K.......sa!e *a#!s as

eisti", SYS9IN state!e"t i" IE91C9 *#o$&&9=ED.OMOD DD DSNH9OADSETKDISPH(O9DKDE9ETE)&&9=ED.SYS9MOD DD DSNHMY9I.P9I.9OAD9IKDISPHO9D&&9=ED.SYS9IN DD '

ENTRY PROGINC9UDE OMODNAME PROG( R )

&'

",L for comi*e and *in6 edit main roc#&&XX.. O&&COMP9E= EEC IE91C9&&P9I.SYSIN DD ' PROGA: PROC OPTIONS(MAIN);

DC9 (CKD) 2IED IN(1);DC9 PROG ENTRY(2IED IN(1)K2IED IN(1));

CH1;DH;  2ETC PROG;

CA99 PROG(CKD);RE9EASE PROG;

END PROGA;&'&&9=ED.SYS9MOD DD DSNHMY9I.P9I.9OAD9I(PROGA)KDISPHSR

+5ecuting main roc&&STEP EEC PGMHPROGA&&STEP9I DD DSNHMY9I.P9I.9OAD9IKDISPHSR

Suroutines

 A sb#oti"e is a *#o$e%#e tat is i"Jo8e% b a CA99 state!e"t o# CA99 o*tio" o+ a"INITIA9 att#ibte. It $a" be eite# a" ete#"al o# a" i"te#"al *#o$e%#e.

Ea!*le o+ I"Jo$atio" o+ sb#oti"es tat a#e i"te#"al to a"% ete#"al to te i"Jo8i",blo$8.E(+'

PRMAIN: PROCEDURE;  DEC9ARE NAME CARACTER (6)K ITEM IT ()K  OUTSU ENTRY;  CA99 OUTSU (NAMEK ITEM);

END PRMAIN;

  OUTSU: PROCEDURE (AK);

  DEC9ARE A CARACTER (6)K IT ();  PUT 9IST (AK);END OUTSU;

E(+' A: PROCEDURE;

DEC9ARE RATE 29OAT (16)KTIME 29OAT ()KDISTANCE 29OAT (1)K

Page 31: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 31/161

Udhaya’s PL/I Material 6/06/2003 Page:- 31 / 161

MASTER 2I9E;  CA99 READCM (RATEK TIMEKDISTANCEK MASTER);

READCM: PROCEDURE (KKYKF) ;  DEC9ARE 29OAT (16)K  29OAT ()K  Y 29OAT (1)K F 2I9E;  GET 2I9E (F) 9IST (KKY);  Y H ';  I2 Y 6 TEN  RETURN;  E9SE  PUT 9IST (^ERROR READCMZ);  END READCM;  END A;

BUILTIN S)*)-&'Tese aJe e"t# "a!e tat a#e %e+i"e% at $o!*ile-ti!e a"% a#e i"Jo8e% b a CA99state!e"t.

F)&-&

 A +"$tio" is a *#o$e%#e tat is i"Jo8e% b a +"$tio" #e+e#e"$e i" a" e*#essio". A+"$tio" #e+e#e"$e is a" e"t# #e+e#e"$e tat #e*#ese"ts a" e"t# "a!e (a *a#ti$la# e"t#*oi"t o+ a *#o$e%#e) i"Jo8e% as a +"$tio".

 A +"$tio" #et#"s a JaleK a"% $o"t#olK to #e*la$e te +"$tio" #e+e#e"$e i" te eJalatio"o+ te e*#essio" i" 3i$ te +"$tio" #e+e#e"$e a**ea#s. Tis si",le Jale $a" be o+a" %ata t*e e$e*t e"t#.

E(+'MAINP: PROCEDURE;

  GET 9IST (AK K CK Y); H Y''SPROD(AKKC);

.

.END MAINP;

SPROD: PROCEDURE (UKK) RETURNS (IN 29OAT (1));  DC9 (UKK) IN 29OAT ();  I2 U   TEN RETURN (6);  E9SE

RETURN ( U'');  END SPROD;

A-+-& A*)'& +&7 P+*+''*e" a +"$tio" o# sb#oti"e is i"Jo8e%K *a#a!ete#s i" te *a#a!ete# list a#e asso$iate%K +#o! le+t to #i,tK 3it te a#,!e"ts i" te a#,!e"t list. Te "!be# o+ *a#a!ete#s a"%a#,!e"ts !st be te sa!e.

D)< A*)'& A #e+e#e"$e to a" a#,!e"tK "ot its JaleK is ,e"e#all *asse% to a sb#oti"e o# +"$tio".Tis is 8"o3" as *assi", a#,!e"ts b #e+e#e"$e. o3eJe#K tis is "ot al3as *ossibleo# %esi#able. Co"sta"tsK +o# ea!*leK sol% "ot be alte#e% b a" i"Jo8e% *#o$e%#e.Te#e+o#eK te $o!*ile# allo$ates sto#a,e (i" sto#a,e belo",i", to te i"Jo8i",

Page 32: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 32/161

Udhaya’s PL/I Material 6/06/2003 Page:- 32 / 161

*#o$e%#e) +o# so!e a#,!e"ts si", att#ibtes tat a,#ee 3it te *a#a!ete#K $o"Je#tsKa"% assi,"s te a#,!e"t to te allo$ate% sto#a,eK a"% te" *asses a #e+e#e"$e to teallo$ate% sto#a,e. Tese sto#a,e lo$atio"s a#e $alle% %!! a#,!e"ts. A" $a",e toa *a#a!ete# +o# 3i$ a %!! a#,!e"t as bee" $#eate% is #e+le$te% o"l i" te Jaleo+ te %!! a#,!e"t a"% "ot i" te Jale o+ te o#i,i"al a#,!e"t +#o! 3i$ it 3as$o"st#$te%.

 A %!! a#,!e"t is $#eate% 3e" te o#i,i"al a#,!e"t is a" o+ te +ollo3i",:

•  A $o"sta"t.

•  A" e*#essio" 3it o*e#ato#sK *a#e"tesesK o# +"$tio" #e+e#e"$es.

•  A Ja#iable 3ose %ata att#ibtes o# ali,"!e"t att#ibtes a#e %i++e#e"t +#o! teatt#ibtes %e$la#e% +o# te *a#a!ete#. Tis %oes "ot a**l to si!*le *a#a!ete#s 3e"o"l bo"%sK le",tsK o# sie %i++e# a"%K +o# te *a#a!ete#K tese a#e %e$la#e% 3itaste#is8s.

• I" te $ase o+ a#,!e"ts a"% *a#a!ete#s 3it te PICTURE att#ibteK a %!!

a#,!e"t is $#eate% "less te *i$t#e s*e$i+i$atio"s !at$ ea$tlK a+te# a"#e*etitio" +a$to#s a#e a**lie%.

•  A $o"t#olle% st#i", o# a#ea (be$ase a" A99OCATE state!e"t $ol% $a",e tele",t o# ete"t).

P+-& +& A*)'& ' MAIN P*'7)*'TOM: PROC (PARAM) OPTIONS (MAIN) ;

  DC9 PARAM CAR(166) ARYING;

• e" NOEECOPS is s*e$i+ie%K te MAIN *#o$e%#e $a" aJe a si",le *a#a!ete#tat is a ARYING CARACTER st#i",. Te *a#a!ete# is *asse% as isK a"% a%es$#i*to# is set *. (\&]K i+ $o"tai"e% i" te st#i",K is t#eate% as *a#t o+ te st#i",).

E(+'@MAIN: PROC(PARM) OPTIONS(MAIN NOEECOPS);  DC9 PARM CAR(") ARYING;

Note tat te OPTION NOEECOPS i!*lies tat te PARM st#i", is "ot eJalate%b te #" e"Ji#o"!e"t o+ CMS o# MS bt *asse% "$a",e% to te se# *#o,#a!.

So3s a MAIN *#o$e%#e tat $a" be i"Jo8e% as +ollo3s:

&& EEC PGMHMAINK PARMH^REPORTK9ISTZ

Te PARM $o"tai"s REPORTK9IST a"% as a le",t o+ 11.

• e" P9&I *#o,#a!s a#e $alle% +#o! Asse!ble# #oti"esK !o#e ta" o"e *a#a!ete#$a" be *asse% as belo3:

  E(+'MAIN: PROC(2UNCK P) OPTIONS(MAIN NOEECOPS);

DC9 2UNC 2IED IN(1);DC9 P POINTER;

B'-&"B A be,i"-blo$8 is a se7e"$e o+ state!e"ts %eli!ite% b a EGIN state!e"t a"% a$o##es*o"%i", END state!e"t.

Page 33: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 33/161

Udhaya’s PL/I Material 6/06/2003 Page:- 33 / 161

Ea!*le:

: EGIN;  state!e"t-1  state!e"t-  .  .  .  state!e"t-"  END ;

U"li8e a *#o$e%#eK a label is o*tio"al +o# a be,i"-blo$8.

B'-&" A-8+-&e,i"-blo$8s a#e a$tiJate% t#o, se7e"tial +lo3 o# as a "it i" a" I2K ONK ENK o#OTERISE state!e"t. Co"t#ol $a" be t#a"s+e##e% to a labelle% EGIN state!e"t bee$tio" o+ a GO TO state!e"t.

B'-&"B T'*-&+-& A be,i"-blo$8 is te#!i"ate% 3e" $o"t#ol *asses to a"ote# a$tiJe blo$8 b so!e !ea"s

ote# ta" a *#o$e%#e #e+e#e"$e; tat isK 3e":

• Co"t#ol #ea$es te END state!e"t +o# te blo$8. e" tis o$$#sK $o"t#ol !oJes tote state!e"t *si$all +ollo3i", te ENDK e$e*t 3e" te blo$8 is a" ON-"it.

• Te ee$tio" o+ a GO TO state!e"t 3iti" te be,i"-blo$8 (o# a" blo$8 a$tiJate%+#o! 3iti" tat be,i"-blo$8) t#a"s+e#s $o"t#ol to a *oi"t "ot $o"tai"e% 3iti" te blo$8.

•  A STOP o# EIT state!e"t is ee$te% (te#eb te#!i"ati", ee$tio" o+ te $##e"ttas8 a"% all its sb-tas8s).

• Co"t#ol #ea$es a RETURN state!e"t tat t#a"s+e#s $o"t#ol ot o+ te be,i"-blo$8(a"% ot o+ its $o"tai"i", *#o$e%#e as 3ell).

•  A *#o$e%#e 3iti" 3i$ te be,i"-blo$8 is $o"tai"e% as bee" atta$e% as a tas8Ka"% te atta$i", blo$8 te#!i"ates.

 A GO TO state!e"t $a" also te#!i"ate ote# blo$8s i+ te t#a"s+e# *oi"t is $o"tai"e% i" ablo$8 tat %i% "ot %i#e$tl a$tiJate te blo$8 bei", te#!i"ate%. I" tis $aseK all i"te#Je"i",blo$8s i" te a$tiJatio" se7e"$e a#e te#!i"ate%.

E&*< D++E"t# %ata $a" be a" e"t# $o"sta"t o# te Jale o+ a" e"t# Ja#iable. A" e"t# $o"sta"t isa "a!e 3#itte" as a label *#e+i to a PROCEDURE o# ENTRY state!e"tK o# a "a!e%e$la#e% 3it te ENTRY att#ibte a"% "ot te ARIA9E att#ibte. A" e"t# $o"sta"t$a" be assi,"e% to a" e"t# Ja#iable.

E(+'@P: PROCEDURE;

DEC9ARE E ENTRY ARIA9EK  (E1KE) ENTRY;

E H E1;CA99 E;E H E;CA99 E;

Page 34: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 34/161

Udhaya’s PL/I Material 6/06/2003 Page:- 34 / 161

PK E1K a"% E a#e e"t# $o"sta"ts. E is a" e"t# Ja#iable.

Te +ollo3i", ea!*le $o"tai"s a sb-s$#i*te% e"t# #e+e#e"$e:

DEC9ARE (AKKCKDKE) ENTRYKDEC9ARE 2() ENTRY ARIA9E

  INITIA9 (AKKCKDKE);DO I H 1 TO ;

CA99 2(I) (KYKF);END;

 /' t&e fie entries (?B?,?.?+? are eac& ino6ed 7it& arameters ?4 and K '/ 

D'+*-& E&*< D++I"te#"al e"t# $o"sta"ts a#e e*li$itl %e$la#e% b te a**ea#a"$e o+ a label *#e+i to aPROCEDURE o# ENTRY state!e"t. A *a#a!ete#-%es$#i*to# list (te "!be# o+*a#a!ete#s a"% tei# att#ibtes) is obtai"e% +#o! te *a#a!ete# %e$la#atio"sK i+ a"K a"%b %e+alts.

o !st e*li$itl %e$la#e ete#"al e"t# $o"sta"ts. Tis %e$la#atio":

• De+i"es a" e"t# *oi"t to a" ete#"al *#o$e%#e

• o*tio"all s*e$i+ies a *a#a!ete#-%es$#i*to# listK i+ a"K +o# te e"t# *oi"t

• O*tio"all s*e$i+ies te att#ibtes o+ te Jale tat is #et#"e% b te *#o$e%#e i+ tee"t# is i"Jo8e% as a +"$tio".

E(+' +*+''* 7'*-* -

ENTRY (CARACTER(16)KKK2IED DEC);  /' E arameters '/ ENTRY (');  /' indicates one arameter '/ ENTRY(29OAT INARYK );  /'indicates 2 arameters '/ ENTRY ( );  /' secifies entr! &as ni* arms'/ ENTRY;  /'Suresses argument c&ec6s'/ 

E(+'TEST: PROCEDURE (AKKCKDKEK2);DEC9ARE A 2IED DECIMA9 ()K

  29OAT INARY (1)K  C POINTERK  1 DK  PK  BK

  R 2IED DECIMA9K  1 EK  K

YK  FK  2(/) CARACTER (16);

END TEST;

+0R4 for t&is cou*d e dec*ared as fo**o7s:

Page 35: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 35/161

Udhaya’s PL/I Material 6/06/2003 Page:- 35 / 161

DEC9ARE TEST ENTRY  (DECIMA9 2IED ()K  INARY 29OAT (1)K  POINTERK  1 K  K  K  DECIMA9 2IEDK  1K

KKK

  (/) CARACTER (16));

BUILTIN A*-)'S*e$i+ies tat te "a!e is a bilt-i" +"$tio" "a!eK PSEUDOARIA9E "a!eK o# bilt-i"sb#oti"e "a!e

 A: PROCEDURE;  DEC9ARE SBRT 29OAT INARY;

  H SBRT;  /' rogrammer dec*ared SR0 is assigned '/ 

  : EGIN;  DEC9ARE SBRT UI9TIN;  F H SBRT(P);  /' interna* SR0 function is ca**ed'/   END ;

END A;

GENERIC A*-)' +&7 R''*'&' A ,e"e#i$ "a!e is %e$la#e% 3it te GENERIC att#ibteK a"% s*e$i+ies a set o+ e"t##e+e#e"$es.

E(+'DEC9ARE CA9C GENERIC

  ( 2DCA9 EN (2IEDK2IED)K  29OCA9 EN (29OATK29OAT)K  MIED EN (29OATK2IED));  F H CA9C (KY);

De*e"%i", o" te a#,!e"t att#ibtesK te !at$i", e"t# *oi"t is se%. I" a si!ila#!a""e#K a" e"t# *oi"t to a *#o$e%#e $a" be sele$te% o" te basis o+ te %i!e"sio".

E(+'@DC9 D GENERIC ( D1 EN (('))K

  D EN (('K')))K

  A()K  (K);CA99 D(A);  /' entr! .1 '/ CA99 D();  /' entr! .2 '/ 

RETURN S+''&Te RETURN state!e"t te#!i"ates ee$tio" o+ te *#o$e%#e tat $o"tai"s teRETURN state!e"t.

RETURN (e*#essio");

Page 36: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 36/161

Udhaya’s PL/I Material 6/06/2003 Page:- 36 / 161

Te RETURN state!e"t 3it e*#essio" is se% to te#!i"ate a *#o$e%#ei"Jo8e% b a +"$tio" #e+e#e"$e.

SECTION 5 SUBROUTINES AND FUNCTIONSSuroutines and Procedures• Mai" P#o$e%#es (e"t# *oi"t i"to *#o,#a!)

• Sb#oti"e P#o$e%#es• 2"$tio" P#o$e%#es

• P#o$e%#es $a" be "este% ("li8e C a"% li8e Pas$al)

•  A#,!e"ts $a" be *asse% to *#o$e%#es

• 2"$tio" *#o$e%#es $a" #et#" Jale (li8e C +"$tio"s)

• Sb#oti"e *#o$e%#es #et#" Jale(s) t#o, !o%i+i$atio" o+ a#,!e"t(s) *asse%

• I"Jo8e a *#o$e%#e Jia a CA99 state!e"tEa!*le: CA99 SURT(AKKC);

• Sb#oti"es $o!*ile% se*a#atel a#e $alle% ETERNA9 *#o$e%#es a"% tei# "a!e isli!ite% to seJe" $a#a$te#s. (Alto, MS s**o#ts ei,tK te last *ositio" is se% bte P9&I $o!*ile# +o# a s++i to se,#e,ate $o%e +#o! o"e ete#"al *#o$e%#e i"to !o#eta" o"e CSECT).

 A STOP o# EIT #oti"e i" a *#o$e%#e sto*s o# eits te 3ole #" "it.

E(+'@MAINPR: PROCEDURE OPTIONS(MAIN);

DC9 2IED DEC(0K);DC9 Y 2IED DEC(0K);DC9 F 2IED DEC(5K);DC9 SURT ENTRY;  /' dec*ares SBR0 as a rocedure'/ GET 9IST (KY);CA99 SURT(KYKF);PUT 9IST(<TE SUM IS H<KF);

END MAINPR;SURT: PROCEDURE(AKKC);

DC9 A 2IED DEC(0K);DC9 2IED DEC(0K);DC9 C 2IED DEC(5K);C H A ;

END SURT;

 A" a#,!e"t $a" be o"e o+ te +ollo3i",a#iableCo"sta"tE*#essio"

 A##a "a!e A##a e*#essio"Mao# st#$t#e "a!eMi"o# st#$t#e "a!e

St#$t#e e*#essio"ilt i" +"$tio" "a!eE"t# "a!e ($a" be a" E"t# a#iable o# a 9abel Ja#iable)2ile "a!e

E(+'@CA99 SURT(<ACD<KARQ1);CA99 SURT(ARQKSBRT()); /' since ui*t in function &as arguments

 /' it is ino6ed efore SBR0 is ca**ed '/ 

Page 37: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 37/161

Udhaya’s PL/I Material 6/06/2003 Page:- 37 / 161

CA99 SURT(AKDATEKC);  /' .(0+ is 0 ca**ed efore SBR0 '/ CA99 SURT(AK(DATE)KC);  /' .(0+ is ca**ed efore SBR0 '/ DAY H SUSTR(DATEKK);  /' since .(0+ is argument to ca** 

  to anot&er ui*t in function it ISino6ed efore SBS0R is ca**ed '/ 

e" a $o"sta"t is *asse% as a" a#,!e"tK i"te#"all a %!! a#,!e"t is ,e"e#ate%to a"%le tis a#,!e"t

E(+'@  CA99 SURT(.0K);Note tat te %!! a#,!e"t 3ill aJe att#ibte 2IED(K1) 3e#eas i" SURT te+i#st a#,!e"t 3as 2IED(0K). Tis $a" $ase e##o#. To aJoi% tis *it+all $o%e as belo3

E(+'@DC9 ARGQ1 2IED DECIMA9(0K);

 ARGQ1 H .0;CA99 SURT(ARGQ1K);

 Alte#"atel %e$la#e te sb#oti"e *#o$e%#e as belo3

E(+'@DC9 SURT ENTRY(2IED DECIMA9(0K)K

  2IED DECIMA9(0K)K  2IED DECIMA9(5K));

 Alte#"atelDC9 SURT ENTRY(2IED DECIMA9(0K)K

  2IED DECIMA9(0K) K );

 /' note t&e asence of t&ird arameter ! t&e comma# 0&is is reAuired ast&e t&ird arameter &as no a*ue initia**! '/ 

 A %!! a#,!e"t is ,e"e#ate% "%e# +ollo3i", $o"%itio"s• I+ a" a#,!e"t is a $o"sta"t

• I+ a" a#,!e"t is a" e*#essio" i"JolJi", o*e#ato#s• I+ a" a#,!e"t is a" e*#essio" i" *a#e"tesis

• I+ a" a#,!e"t is a Ja#iable 3ose att#ibtes a#e %i++e#e"t +#o! tose te %e$la#e% +o#te *a#a!ete# i" te ENTRY "a!e att#ibte s*e$i+i$atio" a**ea#i", i" te i"Jo8i",blo$8

• I+ a" a#,!e"t is itsel+ a +"$tio" #e+e#e"$e $o"tai"i", a#,!e"ts

ote t&at an! modification made to a arameter 7&ic& is reresented ! a dumm!argument is not ref*ected in t&e origina* arameter .

unction ProceduresRet#" state!e"t is se% to te#!i"ate a +"$tio"

RETURN(ele!e"t-e*#essio");

Ea!*le : H CA9C(AK);

MAINPR: PROCEDURE OPTIONS(MAIN);DC9 CA9C ENTRY RETURNS(2IED DEC(0));DC9 SUM 2IED DECIMA9(0);DC9 A 2IED DECIMA9(0);DC9 2IED DECIMA9(0);DC9 C 2IED DECIMA9(0);

Page 38: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 38/161

Udhaya’s PL/I Material 6/06/2003 Page:- 38 / 161

GET 9IST(AKKC);SUM H CA9C(AKKC);PUT 9IST(<SUM IS<KSUM);

END MAINPR;

CA9C: PROCEDURE (KYKF) RETURNS(2IED DECIMA9(0));DC9 2IED DECIMA9(0);DC9 Y 2IED DECIMA9(0);DC9 F 2IED DECIMA9(0);

RETURN(YF);END CA9C;

Scoe of IdentifiersP1:PROCEDURE;

DC9 CAR();DC9 Y CAR();DC9 F CAR();DC9 SUM 2IED DEC(0);.

.CA99 P;..

P:PROCEDURE;DC9 A CAR();DC9 CAR();DC9 C CAR();DC9 SUM CAR(0);  /' t&is &ides t&e SM in P1 '/  H <A<;  /' Parameters in outer *oc6 can e accessed '/ 

#.

END P;

END P1;Note: KY a"% F a#e 8"o3" to P1.o3eJe# AK a"% C a#e "ot 8"o3" to P1

 AK a"% C $o!e i"to eiste"$e o"l 3e" P is i"Jo8e%KYKFKAK a"% C a#e all 8"o3" to P.

Inner *oc6s can see out# uter *oc6s cannot see in7ards#

 A" %ata ite! 3it te ETERNA9 att#ibte tells te $o!*ile# tat tis Ja#iable is 8"o3"otsi%e tis !o%le a"% is to be allo$ate% o"$e i" te Global %ata a#ea. o3eJe# all ote#!o%les 3i$ #e+e# to tis Ja#iable !st %e$la#e tis 3it sa!e "a!e a"% att#ibtes a"%ETERNA9 att#ibte.

,*assification of Bui*t In unctions  To ai% i" tei# %es$#i*tio"K bilt-i" +"$tio"s a#e liste% i" $lasses belo3. Te +i#st +o#

$lasses a#e $o!*tatio"al bilt-i" +"$tio"s.

  St#i",-a"%li", A#it!eti$

  Mate!ati$al  A##a-a"%li",

  Co"%itio"-a"%li",  Sto#a,e $o"t#ol  EJe"t  I"*t & Ot*t

Page 39: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 39/161

Udhaya’s PL/I Material 6/06/2003 Page:- 39 / 161

Mis$ella"eos

S*-&"=+&7-& B)- I& F)&-&Te st#i",-a"%li", bilt-i" +"$tio"s si!*li+ te *#o$essi", o+ bit a"% $a#a$te# st#i",s.Te a#e:

IT IG MPSTR TRANS9ATEOO9 INDE REPEAT UNSPECCAR 9ENGT STRING ERI2YGRAPIC 9O SUSTR

A*-'- B)- I& F)&-&  Te a#it!eti$ bilt-i" +"$tio"s allo3 o to:

1. Co"t#ol $o"Je#sio" o+ baseK s$aleK !o%eK a"% *#e$isio" bot %i#e$tl a"% %#i",basi$ a#it!eti$ o*e#atio"s.

. Dete#!i"e *#o*e#ties o+ a#it!eti$ Jales. 2o# ea!*leK te SIGN +"$tio" i"%i$ateste si," o+ a" a#it!eti$ Jale.

  Te a#e:  AS DECIMA9 IMAG PRECISION  ADD DIIDE MA REA9  INARY 2IED MIN ROUND  CEI9 29OAT MOD SIGN  COMP9E 29OOR MU9TIP9Y TRUNC  CONG

M+'+-+ B)- I& F)&-&  Te !ate!ati$al bilt-i" +"$tio"s *#oJi%e !ate!ati$al o*e#atio"s. Te a#e:  ACOS COSD 9OG SIN  ASIN COS 9OG SBRT  ATAN ER2 9OG16 TAN

  ATAND ER2C SIN TAND  ATAN EP SIND TAN

 All o+ tese +"$tio"s o*e#ate o" +loati",-*oi"t Jales to *#o%$e a +loati",-*oi"t #eslt.

A**+<"=+&7-& B)- I& F)&-&  Te a##a-a"%li", bilt-i" +"$tio"s o*e#ate o" a##a a#,!e"ts a"% #et#" a" ele!e"t

Jale . Te a#e:  A99 9OUND  ANY PO9Y  DIM PROD  OUND SUM

C&7--&"=+&7-& B)- I& F)&-&  Te $o"%itio"-a"%li", bil%-i" +"$tio"s allo3 o to i"Jesti,ate te $ase o+

e"able% $o"%itio"s. Te a#e:

  DATA2IE9D ON2I9E  ONCAR ON=EY  ONCODE ON9OC  ONCOUNT ONSOURCE

Page 40: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 40/161

Udhaya’s PL/I Material 6/06/2003 Page:- 40 / 161

Use o+ tese +"$tio"s is i" $o"tet 3e" 3iti" te s$o*e o+ a" ON-"it e"te#e% +o# te$o"%itio" s*e$i+i$ to te bilt-i" +"$tio"K o# 3iti" a" ON-"it +o# te ERROR o# 2INIS$o"%itio" 3e" #aise% as a" i!*li$it a$tio". All ote# ses a#e ot o+ $o"tet.

S*+' C&* B)- I& F)&-&Te sto#a,e-$o"t#ol bilt i" +"$tio"s allo3 o to %ete#!i"e te sto#a,e #e7i#e!e"ts a"%lo$atio" o+ Ja#iablesK to assi," s*e$ial Jales to a#ea a"% lo$ato# Ja#iablesK to *e#+o#!$o"Je#sio" bet3ee" o++set a"% *oi"te# JalesK a"% to obtai" te "!be# o+ ,e"e#atio"s o+a $o"t#olle% Ja#iable. Te a#e:

  ADDR ENTRYADDR POINTERADD  A99OCATION NU99 POINTERA9UE  INARYA9UE O22SET STORAGE  CURRENTSTORAGE POINTER SYSNU99  EMPTY

I&) / O)) B)- I& F)&-&  Te I"*t & Ot*t bilt-i" +"$tio"s allo3 o to %ete#!i"e te $##e"t state o+ a +ile.

  Te a#e:  COUNT 9INENO SAME=EY

M-'+&') B)- I& F)&-&  Te bilt-i" +"$tio"s tat %o "ot +it i"to a" o+ te +o#e,oi", $lasses a#e:  DATE DATETIME P9IRET  TIME P9IRETC

B)- IN S)*)-&'  Te P9&I bilt-i" sb#oti"es a#e te +ollo3i",;  P9ICANC P9ISRTC  P9IC=PT P9ISRTA P9ISRTD

  P9IDUMP P9ISRT P9ITEST 

P')7"8+*-+'  Pse%o-Ja#iables #e*#ese"t #e$eiJi", +iel%s. E$e*t 3e" "ote% i" te %es$#i*tio"K te

Pse%o-Ja#iables :

• Ca" a**ea# o" te le+t o+ te assi,"!e"t s!bol i" a" assi,"!e"t.

• Ca" a**ea# i" a %ata list o+ a GET state!e"t o# i" te STRING o*tio" o+ a PUT  state!e"t.

• Ca" a**ea# as te st#i", "a!e i" a =EYTO o*tio".

  Te Pse%o-Ja#iables a#e:  COMP9ETION ONCAR STATUS  COMP9E ONSOURCE STRING  ENTRYADDR PRIORITY SUSTR  IMAG REA9 UNSPEC

ADDR ?S*+' &*

Page 41: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 41/161

Udhaya’s PL/I Material 6/06/2003 Page:- 41 / 161

 ADDR #et#"s te *oi"te# Jale tat i%e"ti+ies te ,e"e#atio" o+ . Te s"ta +o# ADDRis:

 ADDR () Re+e#e"$e to Ja#iable o+ a" %ata t*eK

ALL ?A**+<"=+&7-& A99 #et#"s a bit st#i", i" 3i$ ea$ bit is 1 i+ te $o##es*o"%i", bit i" ea$ ele!e"t o+ eists a"% is 1. Te le",t o+ te #eslt is e7al to tat o+ te lo",est ele!e"t. Te s"ta+o# A99 is:

 A99 () /' &ere is an (rra! e5ression '/ I+ is "ot a bit-st#i", a##aK it is $o"Je#te% to bit st#i",.

ALLOCATION ?S*+' C&* A99OCATION #et#"s a 2IED INARY (1K6) Jale s*e$i+i", te "!be# o+,e"e#atio"s tat $a" be a$$esse% i" te $##e"t tas8 +o# . Te s"ta +o# A99OCATIONis:

 A99OCATION ()

ANY ?A**+<"+&7-& ANY #et#"s a bit st#i", i" 3i$ ea$ bit is 1 i+ te $o##es*o"%i", bit i" a" ele!e"t o+ eists a"% is 1. Te le",t o+ te #eslt is e7al to tat o+ te lo",est ele!e"t . Tes"ta +o# ANY is:

  ANY () is a" A##a e*#essio".

BINARYVALUE ?S*+' C&*INARYA9UE #et#"s a REA9 2IED IN (1K6) Jale tat is te $o"Je#te% Jale o+ its*oi"te# e*#essio"K . Te s"ta +o# INARYA9UE is:

INARYA9UE ()

BIT ?S*-& IT #et#"s te Jale o+ 3it le",t s*e$i+ie% b Y 3e#e Y is 2IED INARY(1)Te s"ta is

IT (K Y)

C=AR ?S*-&"=+&7-&CAR #et#"s te $a#a$te# Jale o+ K 3it a le",t s*e$i+ie% b Y 3i$ is 2IEDINARY(1). Te s"ta +o# CAR is:

CAR (K Y)

COUNT ?I&) / O))COUNT #et#"s a 2IED INARY (1K6) Jale s*e$i+i", te "!be# o+ %ata ite!st#a"s!itte% %#i", te last GET o# PUT o*e#atio" o" . Te s"ta +o# COUNT is:

COUNT () is a 2ile-#e+e#e"$e. Te +ile !st be o*e" a"% aJe te STREAM att#ibte.

Page 42: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 42/161

Udhaya’s PL/I Material 6/06/2003 Page:- 42 / 161

CURRENTSTORAGE ?S*+' C&*CURRENTSTORAGE #et#"s a 2IED INARY (1K6) Jale ,iJi", te i!*le!e"tatio"-%e+i"e% sto#a,e i" btesK #e7i#e% b . Te s"ta +o# CURRENTSTORAGE is:

CURRENTSTORAGE ()

DATAFIELD ?C&7--&"=+&7-&DATA2IE9D is i" $o"tet i" a NAME $o"%itio" ON-"it (o# a" o+ its %"a!i$%es$e"%a"ts)K a"% #et#"s a $a#a$te# st#i", 3ose Jale is te $o"te"ts o+ te +iel% tat#aise% te $o"%itio".

DATA2IE9D ( )

DATE ?M-'+&') DATE #et#"s a $a#a$te# st#i",K le",t 4K i" te +o#!at YYMMDD. Te s"ta +o# DATEis:

DATE ( )

Te #et#"e% $a#a$te# st#i", #e*#ese"ts:YY last t3o %i,its o+ te $##e"t ea# MM C##e"t !o"tDD C##e"t %a

DATETIME ?M-'+&')  DATATIME #et#"s a $a#a$te# st#i",K le",t 10K i" te +o#!at o+

YYYYMMDDMMSSTTT. Te s"ta +o# DATATIME is:

DATETIME ( )

Te #et#"e% $a#a$te# st#i", #e*#ese"ts:

YYYY C##e"t ea# MM C##e"t !o"tDD C##e"t %a C##e"t o# MM C##e"t !i"teSS C##e"t se$o"%TTT C##e"t !illise$o"%

DECIMAL ?A*-'-DECIMA9 #et#"s te %e$i!al Jale o+ K 3it a *#e$isio" s*e$i+ie% b P a"% B . Te#eslt as te !o%e a"% s$ale o+ . Te s"ta +o# DECIMA9 is:

DECIMA9 (K PK B)

DIM ?A**+<"=+&7-&DIM #et#"s a 2IED INARY (1K6) Jale s*e$i+i", te $##e"t ete"t o+ te %i!e"sio"Y o+ . Te s"ta +o# DIM is:

DIM (K Y)

Page 43: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 43/161

Udhaya’s PL/I Material 6/06/2003 Page:- 43 / 161

A##a e*#essio". !st "ot aJe less ta" Y %i!e"sio"sK a"% !st"ot be a" a##a o+ st#$t#es.

Y E*#essio" s*e$i+i", a *a#ti$la# %i!e"sio" o+ . I+ "e$essa#K Y is$o"Je#te% to a 2IED INARY (1K6) Jale. Y !st be ,#eate# ta" o# e7al to 1

I+ te ete"t o+ a" a##a %i!e"sio" e$ee%s te allo3able "!be# +o# te i!*le!e"tatio"Kte DIM +"$tio" #et#"s a" "%e+i"e% Jale.

EMPTY ?S*+' C&*EMPTY #et#"s a" a#ea o+ e#o ete"t. It $a" be se% to +#ee all allo$atio"s i" a" a#ea.Te s"ta +o# EMPTY is:

EMPTY ( )  E(+'

DEC9ARE A AREAK  I ASED (P);  ASED (B);

 A99OCATE I IN (A)K IN (A); A H EMPTY( );

 /'eAuia*ent to: R++ I I =()? " I =()D'/ 

ENTRYADDR ?S*+' C&*ENTRYADDR #et#"s a *oi"te# Jale tat is te a%%#ess o+ te +i#st ee$te% i"st#$tio" i+te e"t# is i"Jo8e% . Te e"t# !st be a" ete#"al e"t#. Te s"ta +o#ENTRYADDR is:

ENTRYADDR () E"t# #e+e#e"$e.

ENTRYADDR ?P')7"8+*-+'Te ENTRYADDR Pse%o-Ja#iable i"itialises a" e"t# Ja#iable K 3it te a%%#ess o+ tee"t# to be i"Jo8e%. Te s"ta +o# ENTRYADDR PSEUDOARIA9E is:

ENTRYADDR () E"t# #e+e#e"$e

=BOUND ?A**+<"=+&7-&OUND #et#"s a 2IED INARY (1K6) Jale s*e$i+i", te $##e"t **e# bo"% o+%i!e"sio" Y o+ . Te s"ta +o# OUND is:

OUND (K Y)

A##a e*#essio". !st "ot aJe less ta" Y %i!e"sio"sK a"% !st "ot be a"a##a o+ st#$t#es.Y E*#essio" s*e$i+i", a *a#ti$la# %i!e"sio" o+ . I+ "e$essa# Y is $o"Je#te% to a2IED INARY (1K6) Jale. Y !st be ,#eate# ta" o# e7al to 1

INDE> ?S*-&"=+&7-&INDE #et#"s a 2IED INARY (1K6) Jale i"%i$ati", te sta#ti", *ositio" 3iti" o+ asb-st#i", i%e"ti$al to Y. Te s"ta +o# INDE is:

Page 44: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 44/161

Udhaya’s PL/I Material 6/06/2003 Page:- 44 / 161

INDE (K Y) St#i",-e*#essio" to be sea#$e%.Y St#i",-e*#essio" to be sea#$e% +o#.

i+ Y %oes "ot o$$# i" K o# i+ eite# o# Y aJe e#o le",tK te Jale e#o is #et#"e%I+ o$$#s !o#e ta" o"$e i" K te sta#ti", *ositio" o+ te le+t!ost o$$##e"$e is #et#"e%.

LBOUND ?A**+<"=+&7-& 9OUND #et#"s a 2IED INARY (1K6) Jale s*e$i+i", te $##e"t lo3e# bo"% o+%i!e"sio" Y o+ . Te s"ta +o# 9OUND is:

9OUND (K Y) A##a e*#essio"K !st "ot aJe less ta" Y %i!e"sio"sK a"% !st"ot be a" a##a o+ st#$t#es.Y E*#essio" s*e$i+i", te *a#ti$la# %i!e"sio" o+ . I+ "e$essa# Y is$o"Je#te% to a 2IED INARY (1K6) Jale . Y !st be ,#eate# ta" o# e7al to 1

LENGT= ?S*-&"=+&7-&9ENGT #et#"s a 2IED INARY (1K6) Jale s*e$i+i", te $##e"t le",t o+ . Tes"ta +o# 9ENGT is:

9ENGT () St#i", -e*#essio". I+ is bi"a# it is $o"Je#te% to bit st#i",; ote#3isea" ote# $o"Je#sio" #e7i#e% is to $a#a$te# st#i",.

LINENO ? I&) / O))9INENO #et#"s a 2IED INARY (1K6) Jale s*e$i+i", te $##e"t li"e "!be# o+ .Te s"ta +o# 9INENO is:

9INENO () 2ile-#e+e#e"$e.

Te +ile !st be o*e" a"% aJe te PRINT att#ibte.

NULL ?S*+' C&*NU99 #et#"s te "ll *oi"te# Jale . Te "ll *oi"te# Jale %oes "ot i%e"ti+ a",e"e#atio" o+ a Ja#iable Te "ll *oi"te# Jale $a" be $o"Je#te% to O22SET bassi,"!e"t o+ te bilt-i" +"$tio" Jale to a" o++set Ja#iable. Te s"ta +o# NU99 is:

NU99 ( )

OFFSET ?S*+' C&*O22SET #et#"s a" o++set Jale %e#iJe% +#o! a *oi"te# #e+e#e"$e a"% #elatiJe to a"

a#ea Y. I+ is te "ll *oi"te# JaleK te "ll o++set Jale is #et#"e%. Te s"ta +o#O22SET is:

O22SET (K Y) Poi"te# #e+e#e"$eK 3i$ !st i%e"ti+ a ,e"e#atio" o+ a base% Ja#iable3iti" te a#ea YK o# be te "ll *oi"te# Jale.Y A#ea #e+e#e"$e.

ONC=AR ?C&7--&"=+&7-&

Page 45: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 45/161

Udhaya’s PL/I Material 6/06/2003 Page:- 45 / 161

ONCAR #et#"s a $a#a$te# st#i", o+ le",t 1K $o"tai"i", te $a#a$te# tat $ase%te CONERSION $o"%itio" to be #aise%. It is i" $o"tet i" a" ON-"it (o# a" o+ its%"a!i$ %es$e"%a"ts) +o# te CONERSION $o"%itio" o# +o# te ERROR o# 2INIS$o"%itio" #aise% as te i!*li$it a$tio" +o# te CONERSION $o"%itio". Te s"ta +o#ONCAR is:

ONCAR ( )

ONC=AR ? P')7"8+*-+' Te Pse%o-Ja#iable sets te $##e"t Jale o+ te ONCAR bilt-i" +"$tio". Teele!e"t Jale assi,"e% to te *se%o-Ja#iable is $o"Je#te% to a $a#a$te# Jale o+ le",t1. Te "e3 $a#a$te# is se% 3e" te $o"Je#sio" is #e-atte!*te%.

ONCAR ( )

ONCODE ?C&7--&"=+&7-&ONCODE #et#"s 2IED INARY (1K6) Jale tat is te $o"%itio" $o%e. It is i" $o"teti" a" ON-"itK o# a" %"a!i$ %es$e"%a"t o+ a" ON-"it.

ONCODE ( )

ONFILE ?C&7--&"=+&7-&ON2I9E #et#"s a $a#a$te# st#i", 3ose Jale is te "a!e o+ te +ile +o# 3i$ a"i"*t&ot*t o# CONERSION $o"%itio" is #aise%.

ON2I9E ( )

ONLOC ?C&7--&"=+&7-& ON9OC #et#"s a $a#a$te# st#i", 3ose Jale is te "a!e o+ te e"t#-*oi"t se% +o# te$##e"t i"Jo$atio" o+ te *#o$e%#e i" 3i$ a $o"%itio" 3as #aise%. It is i" $o"tet i"

a" ON-"itK o# i" a" o+ its %"a!i$ %es$e"%a"ts.

ON9OC ( )

ONSOURCE ?C&7--& " =+&7-&ONSOURCE #et#"s a $a#a$te# st#i", 3ose Jale is te $o"te"ts o+ te +iel% tat 3asbei", *#o$esse% 3e" te CONERSION $o"%itio" 3as #aise%. It is i" $o"tet i" a" ON-"itK o# a" o+ its %"a!i$ %es$e"%a"tsK +o# te CONERSION $o"%itio" o# +o# teERROR o# 2INIS $o"%itio" #aise% as te i!*li$it a$tio" +o# te CONERSIONCONDITION. Te s"ta +o# ONSOURCE is:

ONSOURCE ( )

ONSOURCE ?P')7"8+*-+'Te *se%o-Ja#iable sets te $##e"t Jale o+ te ONSOURCE bilt-i" +"$tio". Teele!e"t Jale assi,"e% to te *se%o-Ja#iable is $o"Je#te% to a $a#a$te# st#i", a"%K i+"e$essa#K is *a%%e% o" te #i,t 3it bla"8s o# t#"$ate% to !at$ te le",t o+ te +iel%tat #aise% te CONERSION $o"%itio". Te "e3 st#i", is se% 3e" te $o"Je#sio" is#e-atte!*te%.

ONSOURCE ( )

Page 46: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 46/161

Udhaya’s PL/I Material 6/06/2003 Page:- 46 / 161

PLIDUMP ?B)-"-& S)*)-&'Tis bilt-i" sb#oti"e allo3s o to obtai" a +o#!atte% %!* o+ sele$te% *a#ts o+sto#a,e se% b o# *#o,#a!. 2o# te s"ta o+ te P9IDUMP a"% ote# %etails loo8*9a",a,e E"Ji#o"!e"t +o# MS a"% M Deb,,i", Gi%e a"% R" Ti!e Messa,es.

PLIRETC ?B)-"-& S)*)-&' Tis bilt-i" sb#oti"e allo3s o to set a #et#" $o%e tat $a" be ea!i"e% b te*#o,#a! o# (sb) sste! tat i"Jo8e% tis P9&I *#o,#a! o# b a"ote# P9&I *#o$e%#e Jiate P9IRET bilt-i" +"$tio". Te s"ta +o# P9IRETC is:

P9IRETC (return-code)

Ea!*le: CA99 P9IRETC(14);  /' sets return code of 1> '/ 

PLIRETV ?M-'+&') P9IRET #et#"s a 2IED INARY (1K6) Jale tat is te P9&I #et#" $o%e. Te s"ta+o# P9IRET is:

P9IRET (  )

Te Jale o+ te P9&I #et#" $o%e is te !ost #e$e"t Jale s*e$i+ie% b a CA99P9IRETC state!e"t i" a" tas8 o# te Jale #et#"e% b a COO9 o# asse!ble# #oti"e(Jia Re,iste# 1) 3ose e"t# *oi"t is %e$la#e% 3it te o*tio" OPTIONS(RETCODE)K o#e#o.

POINTER ?S*+' C&*)POINTER #et#"s a *oi"te# Jale tat i%e"ti+ies te ,e"e#atio" s*e$i+ie% b a" o++set#e+e#e"$e K i" a" a#ea s*e$i+ie% b Y. I+ is te "ll o++set JaleK te "ll *oi"te# Jaleis #et#"e%. Te s"ta +o# POINTER is:

POINTER (K Y)

O++set #e+e#e"$eK 3i$ $a" be te "ll o++set Jale; i+ it is "otK it !sti%e"ti+ a ,e"e#atio" o+ a base% Ja#iable.

Y A#ea #e+e#e"$e.

REPEAT ?S*-&"=+&7-&REPEAT #et#"s a bit o# $a#a$te# st#i", $o"sisti", o+ $o"$ate"ate% to itsel+ te"!be# o+ ti!es s*e$i+ie% b Y; tat isK te#e a#e (Y1) o$$##e"$es o+ . Te s"ta +o#REPEAT is:

REPEAT (K Y)

it o# $a#a$te# e*#essio" to be #e*eate%. i+ is a#it!eti$K it is$o"Je#te% to bit st#i", i+ it is bi"a#K $a#a$te# st#i", i+ it is %e$i!al.Y E*#essio". I+ "e$essa#K is $o"Je#te% to a 2IED INARY ( 1K6)

i+ Y is e#o o# "e,atiJeK te st#i", is #et#"e%.

STORAGE ?S*+' C&*STORAGE #et#"s a 2IED INARY (1K6) Jale ,iJi", te i!*le!e"tatio" - %e+i"e%sto#a,eK i" btesK allo$ate% to a Ja#iable . Te s"ta +o# STORAGE is:

Page 47: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 47/161

Udhaya’s PL/I Material 6/06/2003 Page:- 47 / 161

STORAGE ( ) A Ja#iable o+ a" %ata t*eK %ata o#,a"isatio"K ali,"!e"t

STRING ?S*-&"=+&7-&STRING #et#"s a" ele!e"t bit o# $a#a$te# st#i", tat is te $o"$ate"atio" o+ all teele!e"ts o+ . Te s"ta +o# STRING is:

STRING ( )

A,,#e,ate o# ele!e"t #e+e#e"$e. Ea$ base ele!e"t o+ !st be eite#all bit-st#i",K o# all $a#a$te# st#i", a"%&o# "!e#i$ $a#a$te#K i" a"$o!bi"atio". I+ is a st#$t#e tat as *a%%i", $ase% b A9IGNEDele!e"tsK te *a%%i", is "ot i"$l%e% i" te #eslt. I+ a" o+ te st#i",s i"te a,,#e,ate a#e o+ Ja#i", le",tK o"l te $##e"t le",tK "oti"$l%i", te -bte le",t *#e+iK is $o"$ate"ate%. i+ is a" ele!e"tJa#iableK te #les +o# a,,#e,ates a**l e$e*t tat te#e is "o$o"$ate"atio".

SUBSTR ?S*-&"=+&7-&

SUSTR #et#"s a sb-st#i",K s*e$i+ie% b Y a"% FK o+ . Te s"ta +o# SUSTR is:

SUSTR ( K YK F)

St#i",-e*#essio" +#o! 3i$ te sb-st#i", is to be et#a$te%. I+ is "ota st#i",K it is $o"Je#te% to a bit st#i", i+ bi"a#K o# a $a#a$te# st#i", i+%e$i!al.

Y E*#essio" tat $a" be $o"Je#te% to a 2IED INARY (1K6) Jales*e$i+i", te sta#ti", *ositio" o+ te sb-st#i", i" .

F E*#essio" tat $a" be $o"Je#te% to a Jale s*e$i+i", te le",t o+ tesb-st#i", i" . I+ F is e#oK a "ll st#i", is #et#"e%. i+ F is o!itte%K te

sb-st#i", #et#"e% is *ositio" Y i" to te e"% o+ .

Te S0RIGR(G+ condition is #aise% i+ F is "e,atiJe o# i+ te Jales o+ Y a"% F a#es$ tat te sb-st#i", %oes "ot lie e"ti#el 3iti" te $##e"t le",t o+ ; it is "ot #aise%3e" Y H 9ENGT()1 a"% FH6 o# F is o!itte%.

SUBSTR ?P')7"8+*-+' Te *se%o-Ja#iable assi,"s a st#i", Jale to a sb-st#i",K s*e$i+ie% b Y a"% FK o+ .Te #e!ai"%e# o+ is "$a",e%. (Assi,"!e"ts to a Ja#i", st#i", %o "ot $a",e tele",t o+ te st#i",.) Te s"ta +o# SUSTR *se%o-Ja#iable is:

SUSTR (KYKF) H X..

St#i",-#e+e#e"$e. !st "ot be a "!e#i$ $a#a$te#.

Y E*#essio" tat $a" be $o"Je#te% to a 2IED INARY (1K6) Jales*e$i+i", te sta#ti", *ositio" o+ te sb-st#i", i" .

F E*#essio" tat $a" be $o"Je#te% to a 2IED INARY (1K6) Jales*e$i+i", te le",t o+ te sb-st#i", i" . I+ F is e#oK a "ll st#i", is#et#"e%. I+ F is o!itte%K te sb-st#i", #et#"e% is *ositio" Y i" to tee"% o+ . Y a"% F $a" be a##as o"l i+ is a" a##a.

Page 48: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 48/161

Udhaya’s PL/I Material 6/06/2003 Page:- 48 / 161

SUM ?A**+<"=+&7-&SUM #et#"s te s! o+ all te ele!e"ts i" . Te baseK !o%eK a"% s$ale o+ te #eslt!at$ tose o+ . Te s"ta +o# SUM is:

SUM ( ) A##a e*#essio". I+ te ele!e"ts o+ a#e st#i",sK te a#e $o"Je#te% to

+ie%-*oi"t i"te,e# Jales.

SYSNULL ?S*+' C&* SYSNU99 #et#"s te sste! "ll *oi"te# Jale. It $a" be se% to i"itialise stati$ *oi"te#a"% o++set Ja#iables. It also $a" be assi,"e% o# $o"Je#te% to o++set Ja#iables (li8e NU99).Te S"ta +o# SYSNU99 is :

SYSNU99 ( )

TIME?M-'+&')

TIME #et#"s a $a#a$te# st#i",K le",t K i" te +o#!at o+ MMSSTTT. Te s"ta +o#TIME is:

  TIME ( )Te #et#"e% $a#a$te# st#i", #e*#ese"ts: C##e"t o#MM C##e"t !i"teSS C##e"t se$o"%TTT C##e"t !illise$o"%

TRASLATE ?S*-&"=+&7-& TRANS9ATE #et#"s a $a#a$te# st#i", o+ te sa!e le",t as . Te S"ta +o#TRANS9ATE is:

TRANS9ATE (K YK F)

Ca#a$te# e*#essio" to be sea#$e% +o# *ossible t#a"slatio" o+ its$a#a$te#s.

Y Ca#a$te# e*#essio" $o"tai"i", te t#a"slatio" Jales o+ $a#a$te#s.

F Ca#a$te# e*#essio" $o"tai"i", te $a#a$te#s tat a#e to be t#a"slate%.I+ F is o!itte%K a st#i", o+ 4 $a#a$te#s is ass!e%; it $o"tai"s o"ei"sta"$e o+ ea$ ECDIC $o%e a##a",e% i" as$e"%i", $ollati",se7e"$e (ea%e$i!al 66 t#o, 22)

TRANS9ATE o*e#ates o" ea$ $a#a$te# o+ as +ollo3s. I+ a $a#a$te# i" is+o"% i" FK te $a#a$te# i" Y tat $o##es*o"%s to tat i" F is $o*ie% to te #eslt;ote#3iseK te $a#a$te# i" is $o*ie% %i#e$tl to te #eslt. i+ F $o"tai"s%*li$atesK te le+t!ost o$$##e"$e is se%. Y is *a%%e% 3it bla"8sK o#t#"$ate%K o" te #i,t to !at$ te le",t o+ F.

 A" a#it!eti$ o# bit a#,!e"ts a#e $o"Je#te% to $a#a$te#.E(+'@

 DEC9ARE (K ) CAR ();

Page 49: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 49/161

Udhaya’s PL/I Material 6/06/2003 Page:- 49 / 161

H ^ACZ;  H TRANS9ATE (K ^TARZK ^DAZ);

 /' C (R,N '/ 

VERIFY ?S*-&" =+&7-& ERI2Y #et#"s a 2IED INARY (1K6) Jale i"%i$ati", te le+t!ost $a#a$te# o# bit*ositio" i" tat is "ot i" Y. I+ all te $a#a$te#s o# bits i" %o a**ea# i" YK a Jale o+e#o is #et#"e%. I+ is te "ll st#i",K a Jale o+ e#o is #et#"e%. I+ is "ot te "ll st#i",a"% Y is te "ll st#i",K a Jale o+ o"e is #et#"e%. Te s"ta +o# ERI2Y is:

ERI2Y (K YK) St#i", E*#essio"Y St#i", e*#essio" .

I+ eite# a#,!e"t is $a#a$te# o# %e$i!alK $o"Je#sio"s a#e *e#+o#!e% to *#o%$e$a#a$te# st#i",. Ote#3iseK i+ te a#,!e"ts a#e bit a"% bi"a# o# bot bi"a#K a"%$o"Je#sio"s a#e *e#+o#!e% to *#o%$e bit st#i",s. I" te +ollo3i", ea!*leK te ERI2Ybilt-i" +"$tio" is se% to test 3ete# o# "ot a st#i", is all-"!e#i$:

ERI2Y (K ^61/405Z).

Page 50: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 50/161

Udhaya’s PL/I Material 6/06/2003 Page:- 50 / 161

SECTION 6 CONTROL STATEMENTSLogica* 0esting 

S!bols O*e#atio"sGE o# H G#eate# ta" o# e7al toGT o# G#eate# ta"

NE o# Not e7al toH E7al to9T o# 9ess ta"

  9E o# H 9ess ta" o# e7al toN9 o# Not less ta"NG o# Not ,#eate# ta"

I2 *ogica* e5ression TEN statement  ;E9SE statement ;

I2 *ogica* e5ression TENDO;..END;

E9SEDO;..END;

ested I statement 

I2 AH TENI2 AHC TEN

H1;E9SE

H;E9SE

H;u** I 

I2 AH TEN I2 AH TENI2 AHC TEN I2 AHC TEN

H1; H1;E9SE; E9SE

E9SE H;H;

Se*ect Statement 

SE9ECT (e*#essio" 3i$ is o*tio"al);EN (e*#essio") a$tio" 1;EN (e*#essio") a$tio" ;EN (e*#essio") a$tio" ;OTERISE a$tio" ;

END;

E(+'@SE9ECT (CODE)

Page 51: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 51/161

Udhaya’s PL/I Material 6/06/2003 Page:- 51 / 161

EN (1) DO;..END;

EN () CA99 SURTN;OTERISE CA99 INCODE;

END;

SE9ECT;EN(CODE16) DO;..END;EN (CODEH16) CA99 SURTN;OTERISE CA99 ERRORTN;

END;

Logica* eratorsNOT

AND OR

Note tat te o# $a" be $a",e% b te LPROCESS state!e"t li8e belo3LPROCESS NOT(<_<);  /' O ecomes t&e not oerator '/  

I2 AH CHD TEN CA99 SURTN;Logica* erators in t&e assignment statement 

 AHHC; /'If BC, t&en a a*ue of 1 is assigned to ( e*se 8 is assigned'/  AHC; /' If B, t&en a a*ue of 1 is assigned to ( e*se 8 is assigned'/ 

E(+' +)*-& PARM, SELECT +''& +&7 IF +''&

&&USERAA1 O MSGC9ASSHAKNOTI2YHUSERAA&&MYSTEP EEC PROCHIE91C9GKREGION.P9IH1MKPARM.GOH<E<&&P9I.SYSIN DD 'LPROCESS ATTRIUTES(2U99)KRE2(2U99);

MYPROG: PROCEDURE(A) OPTIONS(MAIN);DC9 A CAR(6) ARYING;PUT S=IP EDIT(<PARM PASSED ISH<KA)(A);SE9ECT(A);EN(<A<) PUT S=IP 9IST(<PARM PASSED IA A<);EN(<<) PUT S=IP 9IST(<PARM PASSED IA <);EN(<C<) PUT S=IP 9IST(<PARM PASSED IA C<);EN(<D<) PUT S=IP 9IST(<PARM PASSED IA D<);OTERISE PUT S=IP 9IST(<UN=NON CAR PASSED<);

END;I2 A H <A< TENPUT S=IP 9IST(<CAR IS A<);E9SEI2 AH<< TEN

PUT S=IP 9IST(<CAR IS <);E9SEI2 AH<C< TEN

PUT S=IP 9IST(<CAR IS C<);E9SE

Page 52: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 52/161

Udhaya’s PL/I Material 6/06/2003 Page:- 52 / 161

I2 AH<D< TENPUT S=IP 9IST(<CAR IS D<);E9SE

PUT S=IP 9IST(<UN=NON CAR<);END MYPROG;

&'&&

. LPS DO UNTI9(e*#essio")  /' test is after t&e *oo od! '/ 

 /' *oo terminates 7&en t&e condition ecomes true '/ 

DO I9E(e*#essio") /' test is efore t&e *oo od! '/  /' *oo terminates 7&en t&e condition ecomes fa*se'/ 

DO UNTI9 (e*#essio");..END;E*#essio" $a" be a lo,i$al e*#essio" o# a +la, Ja#iable (IN (1)). A +la, Ja#iable

3it a Jale o+ bi"a# o"e is t#e. A bi"a# Jale o+ e#o is +alse.

Iteratie . *oo

DO contro*-aria*e H initia* a*ue  TO *imit a*ue Y modification a*ueVI9E(e5ression) UNTI9(e5ression)W;

E(+'@H16;=H;9H;DO IH TO = Y 9;.

.END;

E(+'?@DO IH1 TO 166 Y 1;  /' . IC1 B4 1 0 188 is a*so $ '/ 

DO IH166 TO 1 Y -1;

DO IH1 Y 1;  /'termination condition must e inside t&e *oo'/ 

DO IH6.1 Y 6.1 TO 1.6;

DO IH1 TO K16 TO 6K TO 6 Y ;

DO IH1K/K0K;

DO IH1 TO 166 I9E(166); /' *oo terminates 7&en I reac&es 188 or C188'/ 

Co!!as se*a#ate s*e$i+i$atio"s as belo3DO IH1 TO 16K 11 Y 6 I9E(AH);

 /' after I C 1 to 18? continuos *ooing at I C 11 ta6es *ace 7&i*e  (CB# (t t&is time *oo terminates on*! 7&en ( is not C B '/ 

Page 53: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 53/161

Page 54: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 54/161

Udhaya’s PL/I Material 6/06/2003 Page:- 54 / 161

SECTION CONDITIONS AND ON UNITS

,ondition and -I0S $o"%itio" o$$#s

sste! "oa$tio" ("ll o*e#atio") a$tio"

P#o,#a! s*e$i+ie% a$tio"

I" abse"$e o+ *#o,#a! s*e$i+ie% a$tio" %e+alt sste! a$tio" ta8es *la$e. ERROR$o"%itio" is #aise% a"% te *#o,#a! is te#!i"ate%. T3o bilt-i" +"$tio"s eistK ONCODE(3i$ #et#"s te e##o# $o%eK bi"a# JaleK +o# %ia,"osti$ *#*oses) a"% ON9OC 3i$#et#"s te *#o$e%#e&+"$tio" "a!eK as a st#i",K 3e#e te e##o# o$$##e%. Note tattese bilt-i" +"$tio"s %o "ot aJe a" a#,!e"ts a"% sol% te#e+o#e be %e$la#e%be+o#e se as belo3

DC9 ONCODE UI9TIN;

Sta"%a#% e##o# a"%li", #oti"es $a" be 8e*t i" so#$e +o#! i" a so#$e state!e"t lib#a#a"% i"$l%e% i" o# *#o,#a! b te state!e"t

LINC9UDE oo6name

ON "its $a" be %e$la#e% to a"%le s*e$i+i$ $o"%itio"s. iti" a" ON "it +a$ilities a#e*#oJi%e% to ,et !o#e i"+o#!atio" o" te $o"%itio" tat $ase% te ON "it to be a$tiJate%.So!e o+ tese a#e ONCODE( )K ONSOURCE( )K ONCAR( ). A "o#!al #et#" +#o! a"

ON "it is sai% to ta8e *la$e 3e" ee$tio" #et#"s t#o, END state!e"t. A"ab"o#!al te#!i"atio" is sai% to o$$# 3e" 3e b#a"$ ot o+ te ON "it t#o, aGOTO state!e"t.

ON conditionEGIN;..END;

E(+'@ON END2I9E(SYSIN)

EGIN

.

.END;

E(+'@ON ERROR SYSTEM; /' restores ac6 s!stem action for +RRR condition'/ ON ERROR

EGIN;ON ERROR SYSTEM;PUT DATA;  /' outut a** aria*es and a*ues '/ 

  WHAT

ACTION ?

Page 55: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 55/161

Udhaya’s PL/I Material 6/06/2003 Page:- 55 / 161

END;

,ondition %and*ing C&7--& P*'-('

Yo $a" s*e$i+ 3ete# o# "ot so!e $o"%itio"s a#e e"able% o# %isable%. I+ a $o"%itio" ise"able%K te #aisi", o+ te $o"%itio" ee$tes a" a$tio". I+ a $o"%itio" is %isable%K te#aisi", o+ te $o"%itio"s %oes "ot ee$te a" a$tio".

E"abli", a"% %isabli", $a" be s*e$i+ie% +o# te eli,ible $o"%itio"s b a $o"%itio" *#e+i.Ea!*le:

(SIFE): 91 H(I''N);

Te $o"%itio"s tat a#e al3as e"able% "less te a#e e*li$itl %isable% b $o"%itio"*#e+ies a#e:

  CONERSION  2IEDOER29O  OER29O  UNDER29O  FERODIIDE

Ea$ o+ te *#e$e%i", $o"%itio"s $a" be %isable% b $o"%itio" *#e+i s*e$i+i", te$o"%itio" "a!e *#e$e%e% b NO 3it i"te#Je"i", bla"8s. TsK o"e o+ te +ollo3i", i" a$o"%itio" *#e+i %isables te #es*e$tiJe $o"%itio":

  NOCOERSION  NO2IEDOER29O  NOOER29O  NOUNDER29O  NOFERODIIDE

Te $o"%itio"s tat a#e al3as %isable% "less te a#e e"able% b a $o"%itio" *#e+i a#e:

  SIFE  SUSCRIPTRANGE  STRINGRANGE  STRINGSIFE

 All ote# $o"%itio"s a#e al3as e"able% a"% $a""ot be %isable% . Tese $o"%itio"s a#e:

  AREA =EY  ATTENTION NAME  CONDITION RECORD  END2I9E TRANSMIT  ENDPAGE UNDE2INED2I9E  ERROR PENDING

  2INIS

S' ' C&7--& P*'-(

 A $o"%itio" *#e+i atta$e% to a PROCEDURE o# EGIN state!e"t a**lies to all testate!e"ts * to a"% i"$l%i", te $o##es*o"%i", END state!e"t. Tis i"$l%es ote#PROCEDURE o# EGIN state!e"ts "este% 3it tat blo$8.

Te s$o*e o+ a $o"%itio" *#e+i a**lie% to a DO o# SE9ECT state!e"t is li!ite% toee$tio" o+ te state!e"t itsel+; it %oes "ot a**l to ee$tio" o+ te e"ti#e ,#o*.

Page 56: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 56/161

Udhaya’s PL/I Material 6/06/2003 Page:- 56 / 161

ON S+''&Te ON state!e"t establises te a$tio" to be ee$te% +o# a" sbse7e"t #aisi", o+a" e"able% $o"%itio" i" te s$o*e o+ te establise% a$tio".

  ON condition VSNAPW VSYSTEMW on&'nit  

SNAPS*e$i+ies tat 3e" te e"able% $o"%itio" is #aise%K a list is *#i"te% o+ all te blo$8s a"%ON-"its a$tiJe i" te $##e"t tas8 at te ti!e te $o"%itio" is #aise%. Te a$tio" o+ teSNAP o*tio" *#e$e%es te a$tio" o+ te ON-"it.

SYSTEMS*e$i+ies tat te i!*li$it a$tio" is ta8e". Te i!*li$it a$tio" is "ot te sa!e +o# eJe#$o"%itio"K alto, +o# !ost $o"%itio"s a !essa,e is *#i"te% a"% te ERROR $o"%itio" is#aise%.

on&'nit 

S*e$i+ies te a$tio" to ee$te% 3e" te $o"%itio" is #aise% a"% is e"able%. Te a$tio"is %e+i"e% b te state!e"t o# state!e"ts i" te ON-"it itsel+. Te O"-"it is "otee$te% at te ti!e te ON state!e"t is ee$te%; it is ee$te% o"l 3e" te s*e$i+ie%e"able% $o"%itio" is #aise%.

nu** on-nit Te e++e$t o+ a "ll state!e"t o"-"it is to ee$te "o#!al #et#" +#o! te $o"%itio". Useo+ te "ll o"-"it is "ot te sa!e as %isabli",K +o# t3o #easo"s:

 •  A "ll ON-"it $a" be s*e$i+ie% +o# a" $o"%itio"K bt "ot all $o"%itio"s $a" be

%isable%.

• Disabli", a $o"%itio"K i+ *ossibleK $a" saJe ti!e b aJoi%i", a" $e$8i", +o# tis

$o"%itio". (I+ a "ll ON-"it is s*e$i+ie%K te sste! !st still $e$8 +o# te #aisi", o+te $o"%itio").

Te ee$tio" o+ a" ON state!e"t establises a" a$tio" s*e$i+i$atio" +o# a $o"%itio".O"$e tis a$tio" is establise%K it #e!ai"s establise% t#o,ot tat blo$8 a"%t#o,ot all %"a!i$all %es$e"%e"t blo$8s "til it is oJe##i%%e" b te ee$tio" o+a"ote# ON state!e"t o# a REERT state!e"t o# "til te#!i"atio" o+ te blo$8 i" 3i$te ON state!e"t is ee$te%.

E(+' * REVERT@"PROC1: PROCEDURE;  ON CONERSION EGIN;

  END;

  : PROC;  ON CONERSION EGIN;  /' errides unit in PR,1 '/  

END;  .  .

Page 57: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 57/161

Udhaya’s PL/I Material 6/06/2003 Page:- 57 / 161

REERT CONERSION;  /' o7 t&e unit in PR,1 is ac6 in contro* '/   END PROC;END PROC1;

Note: D"a!i$ %es$e"%e"$ #e+e#s to te +a$t tat ON-"its a#e i"e#ite% +#o! te$alli", *#o$e%#e i" all $i#$!sta"$es. D"a!i$ %es$e"%a"$ is o+te" "ot 8"o3" "til #"ti!eK si"$e a *#o$e%#e $a" be $alle% +#o! a"3e#e 3e#e it is Jisible.

To *#eJe"t a" ERROR $o"%itio" #aise% i" a" ERROR ON-"it +#o! ee$ti", te sa!eERROR ON-"itK ts #aisi", te ERROR $o"%itio" a,ai" a"% $asi", a loo*K te+ollo3i", te$"i7e $a" be se%:

ON ERROR EGIN;  ON ERROR SYSTEM;  .  .  .  END;

E(+'

DC9 2 2I9EK G 2I9E ARIA9E;  G H2;

91: ON END2I9E (G);9: ON END2I9E (2);

Te state!e"ts labelle% 91 a"% 9 a#e e7iJale"t.

E(+'

DEC9ARE 2 2I9E ARIA9EK  2C1 2I9EK

  2C 2I9E;2 H 2C1;ON END2I9E (2) GO TO 2IN;  /' unit for ,1 '/ 

  .  .  .

2 H2C;READ 2I9E (2C1) INTO (1);READ 2I9E (2) INTO ();

 A" END2I9E $o"%itio" #aise% %#i", te +i#st READ state!e"t $ases te o"-"it to bee"te#e%K si"$e te o"-"it #e+e#s to +ile 2C1. I+ te $o"%itio" is #aise% i" te se$o"% READstate!e"tK o3eJe#K te o"-"it is "ot e"te#e%K si"$e tis READ #e+e#s to +ile 2C.

SIGNAL S+''&Yo $a" #aise a $o"%itio" b !ea"s o+ te SIGNA9 state!e"t. Tis state!e"t $a" bese% i" *#o,#a! testi", to Je#i+ te a$tio" o+ a" ON-"it a"% to %ete#!i"e 3ete# te$o##e$t a$tio" is asso$iate% 3it te $o"%itio". Te establise% a$tio" is ta8e" "less te$o"%itio" is %isable%.

I+ te s*e$i+ie% $o"%itio" is %isable%K te SIGNA9 state!e"t be$o!es e7iJale"t to a "llstate!e"t. Te s"ta +o# te SIGNA9 state!e"t is:

Page 58: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 58/161

Udhaya’s PL/I Material 6/06/2003 Page:- 58 / 161

SIGNA9 Co"%itio";

C+--+-& C&7--&  Te $o"%itio"s a#e $lassi+ie% as +ollo3s:

• Co!*tatio" $o"%itio"s-tose asso$iate% 3it %ata a"%li",K e*#essio" eJalatio"K

a"% $o!*tatio". Te $o"%itio"s a#e:  CONERSION SIFE  2IEDOER29O UNDER29O  OER29O FERODIIDE

I+ a $o!*tatio"al $o"%itio"al (e$e*t UNDER29O) is #aise% a"% te $o"%itio" is%isable%K te *#o,#a! is i" e##o#;

• I"*t&ot*t $o"%itio"s-tose $o"%itio"s asso$iate% 3it i"*t a"% ot*t.  Te a#e:

END2I9E ENDPAGE=EY TRANSMITUNDE2INED2I9E NAME

RECORD

END2I9E e" e"% o+ +ile is #ea$e%=EY I"$o##e$t =EY +o# a 8ee% %ata setUNDE2INED2I9E 2ile $ol% "ot be o*e"e%ENDPAGE E"% o+ *a,e o" PRINT +ileTRANSMIT I&O e##o#  NAME O" GET DATA 3e" i"$o##e$t ite!s i" i"*t

RECORD T*i$all 3e" b++e# is too s!all +o# #e$o#%2o# #ea%. 2o# 3#ite o+ +ie% le",t #e$o#%s itCa" o$$# i+ b++e# is la#,e# ta" #e$o#% sie.

• P#o,#a!-$e$8ot $o"%itio"s-tose $o"%itio"s tat +a$ilitate te %eb,,i", o+ a*#o,#a!. Te a#e

STRINGSIFESTRINGRANGESUSCRIPTRANGE

I+ SUSCRIPTRANGE is #aise% is %isable%K te *#o,#a! is i" e##o#. e$ase tis$e$8i", i"JolJes a sbsta"tial oJe#ea% i" bot sto#a,e s*a$e a"% #" ti!eK itsall is se% o"l i" *#o,#a!s testi",. It is #e!oJe% +o# *#o%$tio" *#o,#a!sKbe$ase te aboJe a#e "o#!all %isable% $o"%itio"s.

• Mis$ella"eos $o"%itio"sK 3i$ a#e: AREA ERROR

  ATTENTION 2INIS  CONDITION

AREA C&7--&  Te AREA $o"%itio" is #aise% i" eite# o+ te +ollo3i", $i#$!sta"$es:

• e" a" atte!*t is !a%e to allo$ate a base% Ja#iable 3iti" a" a#ea tat $o"tai"si"s++i$ie"t +#ee sto#a,e +o# te allo$atio" to be !a%e.

• e" a" atte!*t is !a%e to *e#+o#! a" a#ea assi,"!e"tK a"% te ta#,et a#ea$o"tai"s i"s++i$ie"t sto#a,e to a$$o!!o%ate te allo$atio"s i" te so#$e a#ea.

Page 59: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 59/161

Udhaya’s PL/I Material 6/06/2003 Page:- 59 / 161

Te s"ta +o# AREA is:ON AREA EGIN;

.END;

• Reslt: I" bot $ases te atte!*te% allo$atio" o# assi,"!e"t as "o e++e$t.

I!*li$it A$tio": A !essa,e is *#i"te% a"% te ERROR $o"%itio" is #aise%.• Stats: AREA is al3as e"able%.

• No#!al Ret#"1) I+ te $o"%itio" 3as #aise% b a" allo$atio" a"% te o"-"it is a NU99 o"-"it te

allo$atio" is "ot atte!*te% a,ai".) I+ te o"-"it is "ot NU99 te" te allo$atio" is atte!*te% a,ai" *#oJi%e% te

*oi"te# 7ali+i", te #e+e#e"$e to te AREA as bee" $a",e%) I+ te $o"%itio" 3as #aise% b a" a#ea assi,"!e"t o# b a SIGNA9 state!e"tK te

ee$tio" $o"ti"es +#o! te "et state!e"t.

CONDITION C&7--&Te CONDITION condition  is #aise% b a SIGNA9 state!e"t tat s*e$i+ies tea**#o*#iate "a!e. Te "a!e s*e$i+ie% i" te SIGNA9 state!e"t %ete#!i"es 3i$

CONDITION condition is to be #aise%. Te s"ta +o# CONDITION is:

ON CONDITION ("a!e)

 Abb#eJiatio": COND

Te CONDITION condition allo3s o to establis a" ON-"it tat is ee$te% 3e"eJe#a SIGNA9 state!e"t is ee$te% s*e$i+i", CONDITION a"% tat "a!e.

 As a %eb,,i", ai%K tis $o"%itio" $a" be se% to establis a" ON-"it 3ose ee$tio"#eslts i" *#i"ti", i"+o#!atio" tat so3s te $##e"t stats o+ te *#o,#a!. Te O"-"it$a" be ee$te% +#o! a" *oi"t i" te *#o,#a! t#o, *la$e!e"t o+ SIGNA9 state!e"t.O+ $o#seK "o#!al #les o+ "a!e s$o*e a**l;

2ollo3i", is a" ea!*le o+ o3 te CONDITION condition  !i,t be i"$l%e% i" a*#o,#a!:

DC9 TEST CONDITION; &' %e$la#e te TEST $o"%itio" '&ON CONDITION (TEST) EGIN; &'No3 set * te ON "it '&

  .  .  .  END;

Te be,i"-blo$8 is ee$te% 3e"eJe# te +ollo3i", state!e"t is ee$te%:SIGNA9 CONDITION (TEST);

I#p$icit Action: A !essa,e is *#i"te% a"% ee$tio" $o"ti"es 3it te state!e"t

+ollo3i", SIGNA9.

(tat's: CONDITION is al3as e"able%.No#!al Ret#": Ee$tio" $o"ti"es 3it te state!e"t +ollo3i", te SIGNA9 state!e"t.

CONVERSION C&7--&Te CONERSION $o!*tatio"al $o"%itio" is #aise% 3e"eJe# a" i"Jali% $o"Je#sio" isatte!*te% o" $a#a$te# %ata.

Page 60: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 60/161

Udhaya’s PL/I Material 6/06/2003 Page:- 60 / 161

•  A $a#a$te# ote# ta" 6 o# 1 eists i" $a#a$te# %ata bei", $o"Je#te% to bit %ata.

•  A $a#a$te# Jale bei", $o"Je#te% to a "!e#i$ $a#a$te# +iel%K o# to $o%e% a#it!eti$K$o"tai"s $a#a$te#s 3i$ a#e "ot te #e*#ese"tatio" o+ a" o*tio"all si,"e% a#it!eti$$o"sta"tK o# a" e*#essio" to #e*#ese"t a $o!*le $o"sta"t .

•  A Jale bei", $o"Je#te% to a $a#a$te# *i$t#e% ite! $o"tai"s $a#a$te#s "ot allo3e%b te *i$t#e s*e$i+i$atio".

Te s"ta +o# CONERSION is;

ON CONERSION X.

Im*icit (ction: A !essa,e is *#i"te% a"% te ERROR $o"%itio" is #aise%.

Status% CONERSION is e"able% t#o,ot te *#o,#a!K e$e*t 3iti" te s$o*e o+ a$o"%itio" *#e+i s*e$i+i", NOCONERSION.

orma* Return: I+ te ONSOURCE o# ONCAR PSEUDOARIA9E is se%K te*#o,#a! #et#ies te $o"Je#sio" o" #et#" +#o! te o"-"it. I+ te e##o# is "ot $o##e$te%K te*#o,#a! loo*s. I+ tese PSEUDOARIA9ES a#e "ot se% te ERROR $o"%itio" is#aise%.

E(+'DC9 IT(/); H <16A1<;  /' a** c&ars must e 1 or 8 '/ 

 

ENDFILE C&7--&Te END2I9E i"*t ` ot*t $o"%itio" $a" be #aise% %#i", a GET o# READ o*e#atio" ba" atte!*t to #ea% *ast te e"% o+ te +ile s*e$i+ie% i" te GET o# READ state!e"t. Ita**lies o"l to SEBUENTIA9 INPUTK SEBUENTIA9 UPDATEK a"% STREAM INPUT+iles. Te s"ta +o# END2I9E is:

ON END2I9E (+ile-#e+e#e"$e) X..

I" #e$o#%-o#ie"te% %ata t#a"s!issio"K END2I9E is #aise% 3e"eJe# a" e"% o+ +ile ise"$o"te#e% %#i", te ee$tio" o+ a READ state!e"t.

I" st#ea!-o#ie"te% %ata t#a"s!issio"K END2I9E is #aise% %#i", te ee$tio" o+ a GETstate!e"t i+ a" e"% o+ +ile is e"$o"te#e% eite# be+o#e a" ite!s i" te GET state!e"t%ata list aJe bee" t#a"s!itte% o# bet3ee" t#a"s!issio" o+ t3o o+ te %ata ite!s. I+ a"e"% o+ +ile is e"$o"te#e% 3ile a %ata ite! is bei", *#o$esse%K o# i+ it is e"$o"te#e%3ile a" +o#!at ite! is bei", *#o$esse%K te ERROR $o"%itio" is #aise%.

I+ te +ile is "ot $lose% a+te# END2I9E is #aise%K a" sbse7e"t GET o# READ state!e"t+o# tat +ile i!!e%iatel #aises te END2I9E $o"%itio" a,ai".

Im*icit (ction: A !essa,e is *#i"te% a"% te ERROR $o"%itio" is #aise%.

Status@ Te END2I9E $o"%itio" is al3as e"able%.

orma* Return: Ee$tio" $o"ti"es 3it te state!e"t i!!e%iatel +ollo3i", te GETo# READ state!e"t tat #aise% tis $o"%itio". I+ a +ile is $lose% i" a" o"-"it +o# tis

Page 61: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 61/161

Udhaya’s PL/I Material 6/06/2003 Page:- 61 / 161

e$e*tio"K te #eslts o+ "o#!al #et#" is "%e+i"e%. Eit i" s$ sitatio"s !st be b aGO TO +#o! te o"-"it blo$8.

ENDPAGE C&7--&Te ENDPAGE i"*t&ot*t $o"%itio" is #aise% 3e" a PUT state!e"t #eslts i" a"atte!*t to sta#t a "e3 li"e beo"% te li!it s*e$i+ie% +o# te $##e"t *a,e. Tis li!it $a"be s*e$i+ie% b te PAGESIFE o*tio" i" a" OPEN state!e"t; i+ PAGESIFE as "ot bee"s*e$i+ie%K a %e+alt li!it o+ 46 is a**lie%. Te atte!*t to e$ee% te li!it $a" be !a%e%#i", %ata t#a"s!issio" (i"$l%i", asso$iate% +o#!at ite!sK i+ te PUT state!e"t is e%it-%i#e$te%)K b te 9INE o*tio"K o# b S=IP o*tio". ENDPAGE $a" also be #aise% b a 9INEo*tio" o# 9INE +o#!at ite! tat s*e$i+ie% a li"e "!be# less ta" te $##e"t li"e "!be# .Te s"ta +o# ENDPAGE is

ON ENDPAGE (+ile-#e+e#e"$e)

• ENDPAGE is #aise% o"l o"$e *e# *a,eK e$e*t 3e" it is #aise% b te SIGNA9state!e"t. e $a" a#ti+i$iall si,"al tis $o"%itio" 3it SIGNA9 ENDPAGE(+ile"a!e);

• Te ON-"it $a" sta#t a "e3 *a,e b ee$tio" o+ a PAGE o*tio" o# a PAGE +o#!atite!K 3i$ sets te $##e"t li"e to o"e.

I+ te ON-"it %oes "ot sta#t a "e3 *a,eK te $##e"t li"e "!be# $a" i"$#easei"%e+i"itel

Im*icit (ction: A "e3 *a,e is sta#te%. I+ te $o"%itio" is si,"alle%K ee$tio" is"a++e$te% a"% $o"ti"es 3it te state!e"t +ollo3i", te SIGNA9 state!e"t.

Status@ ENDPAGE is al3as e"able%.orma* Return: Ee$tio" o+ te PUT state!e"t $o"ti"es a"% te %ata is 3#itte" o" te$##e"t li"e 3i$ !a(*#obabl 3ol%) aJe bee" $a",e% b te ON UNIT.

ERROR C&7--&  Te ERROR $o"%itio" is #aise% "%e# te +ollo3i", $i#$!sta"$es:

• P#oJi%es $o!!o" $o"%itio" tat $a" be se% to $e$8 !a" ote# $o"%itio"s

•  As a #eslt o+ te i!*li$it a$tio" +o# a $o"%itio" +o# 3i$ tat a$tio" is to *#i"t a" e##o#!essa,e a"% #aise te ERROR $o"%itio".

•  As a #eslt o+ a" e##o# (+o# 3i$ te#e is "o ote# $o"%itio") %#i", *#o,#a!ee$tio".

•  As a #eslt o+ a" AEND

•  As a #eslt o+ a SIGNA9 ERROR state!e"t.

• Use ONCODE bilt-i" to %isti",is bet3ee" Ja#ios $i#$!sta"$es tat $a" #aiseERROR $o"%itio"Te s"ta +o# ERROR is:

ON ERROR XX

Im*icit (ction% I+ te $o"%itio" is #aise% i" te !ao# tas8K te 2INIS $o"%itio" is #aise%a"% te tas8 te#!i"ates. I+ te $o"%itio" is #aise% i" a" ote# tas8K te *#o,#a! iste#!i"ate%.

Status: ERROR is al3as e"able%

orma* Return : Te i!*li$it a$tio" is ta8e".

FINIS= C&7--& 

Page 62: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 62/161

Udhaya’s PL/I Material 6/06/2003 Page:- 62 / 161

Te 2INIS $o"%itio" is #aise% %#i", ee$tio" o+ a state!e"t tat 3ol% te#!i"ate te!ao# tas8 o+ te P9&I *#o,#a!K tat isK b a STOP state!e"t i" a" tas8K o# a" EITstate!e"t i" te !ao# tas8K o# a RETURN o# END state!e"t i" te MAIN *#o$e%#e o+te *#o,#a!.

ote: Te STOP state!e"t i!!e%iatel te#!i"ates te *#o,#a! i"$l%i", all $o"$##e"ttas8s. e+o#e te#!i"atio" te 2INIS $o"%itio" is #aise% i" te tas8 i" 3i$ te STOPee$tes. O" "o#!al #et#" +#o! te o"-"it all tas8s i" te *#o,#a! te#!i"ate.

Te EIT state!e"t i!!e%iatel te#!i"ates te *#o,#a! o# te tas8 tat $o"tai"s testate!e"t a"% all tas8s atta$e% b tis tas8. I+ ee$te% i" a !ao# tas8K EIT #aises te2INIS $o"%itio" i" tat tas8. O" "o#!al #et#" +#o! te o"-"itK te tas8 ee$ti", testate!e"t a"% all o+ its %es$e"%a"t tas8s a#e te#!i"ate%. Ts EIT i" a !ao# tas8 ise7iJale"t to a STOP state!e"t.

Te $o"%itio" is also #aise% b SIGNA9 2INISK a"% as *a#t o+ te i!*li$it a$tio" +o# teERROR $o"%itio". Te $o"%itio" is #aise% i" te tas8 i" 3i$ te state!e"t is ee$te%Ka"% a" ON-"it s*e$i+ie% +o# te $o"%itio" is ee$te% as *a#t o+ tat tas8. A" ab"o#!al#et#" +#o! te ON-"it aJoi%s *#o,#a! te#!i"atio" a"% allo3s te *#o,#a! to $o"ti"e.

Te s"ta +o# 2INIS is:

ON 2INIS XX

Im*icit (ction: No a$tio" is ta8e" a"% *#o$essi", $o"ti"es +#o! te *oi"t 3e#e te$o"%itio" 3as #aise%.

Statu s% 2INIS is al3as e"able%.

orma* Return: Ee$tio" o+ te state!e"t is #es!e%.

FI>EDOVERFLO% C&7--&

Te 2IEDOER29O $o!*tatio"al $o"%itio" is #aise% 3e" te le",t o+ te #eslt o+a +ie%-*oi"t a#it!eti$ o*e#atio" e$ee%s te !ai!! le",t allo3e% b tei!*le!e"tatio".

Te 2IEDOER29O $o"%itio" %i++e#s +#o! te SIFE $o"%itio" i" tat SIFE is #aise%3e" a #eslt e$ee%s te %e$la#e% sie o+ a Ja#iableK 3ile 2IEDOER29O is #aise%3e" a #eslt e$ee%s te !ai!! allo3e% b te $o!*te#. Te s"ta +o#2IEDOER29O IS

ON 2IEDOER29O X..

Resu*t : Te #eslt o+ te i"Jali% +ie%-*oi"t o*e#atio" is "%e+i"e%.

Im*icit (ction: A !essa,e is *#i"te% a"% te ERROR $o"%itio" is #aise%.

Status@ 2IEDOER29O is e"able% t#o,ot te *#o,#a!K e$e*t 3iti" te s$o*eo+ a $o"%itio" *#e+i tat s*e$i+ies NO2IEDOER29O.

E(+'DC9 A 2IED DEC(1);DC9 2IED DEC(1);DC9 C 2IED DEC(1);

 AH/6666666;

Page 63: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 63/161

Udhaya’s PL/I Material 6/06/2003 Page:- 63 / 161

H56666666;CHA';  /' fi5ed oint oerf*o7 is raised '/ 

OVERFLO%O$$#s 3e" te !a,"it%e o+ te #eslt o+ a +loati", *oi"t o*e#atio" e$ee%s 16''0

 AHE01;HE11;CHA';  /' V+RL condition is raised '/ 

Resu*t: Te Jale o+ s$ a" i"Jali% +loati", *oi"t "!be# is "%e+i"e%

Im*icit (ction: A !essa,e is *#i"te% a"% ERROR is #aise%.

Status: E"able% t#o,ot te *#o,#a! e$e*t 3iti" te s$o*e o+ NOOER29O

orma* Return: Co"t#ol #et#"s to te *oi"t a+te# te i"st#$tio" 3i$ $ase% tis$o"%itio". SIE C&7--&

Te SIFE $o!*tatio"al $o"%itio" is #aise% o"l 3e" i,-o#%e# (tat isK le+t!ost)si,"i+i$a"t bi"a# o# %e$i!al %i,its a#e lost i" a" atte!*te% assi,"!e"t to a Ja#iable o# a"i"te#!e%iate #eslt o# i" a" i"*t&ot*t o*e#atio". Tis loss $a" #eslt +#o! a $o"Je#sio"i"JolJi", %i++e#e"t %ata t*esK %i++e#e"t basesK %i++e#e"t s$alesK o# %i++e#e"t *#e$isio". Tesie $o"%itio" is "ot e"able% "less it a**ea#s i" a $o"%itio" *#e+i. Te s"ta +o# SIFEis:

ON SIFE X..

Te SIFE $o"%itio" %i++e#s +#o! te 2IEDOER29O $o"%itio" i" tatK 3e#eas2IEDOER29O is #aise% 3e" te sie o+ a $al$late% +ie%-*oi"t Jale e$ee%s te!ai!! allo3e% b te i!*le!e"tatio"K SIFE is #aise% 3e" te sie o+ te Jale bei",

assi,"e% to a %ata ite! e$ee%s te %e$la#e% (o# %e+alt) sie o+ te %ata ite! i" o#*#o,#a!. SIFE $a" be #aise% o" assi,"!e"t o+ a Jale #e,a#%less o+ 3ete# o# "ot2IEDOER29O 3as #aise% i" te $al$latio" o+ te Jale.

Te %e$la#e% sie is "ot "e$essa#il te a$tal *#e$isio" 3it 3i$ te ite! is el% i"sto#a,eK o3eJe#K te li!it +o# SIFE is te %e$la#e% o# %e+alt sieK "ot te a$tal sie i"sto#a,e. 2o# ea!*leK a +ie% bi"a# ite! o+ *#e$isio" (6) o$$*ies a 2U99ORD i"sto#a,eK bt SIFE is #aise% i+ a Jale 3ose sie e$ee%s 2IED INARY (6) isassi,"e% to it.

e$ase tis $e$8i", i"JolJes a sbsta"tial oJe#ea% i" bot sto#a,e s*a$e a"% #"ti!eK it sall is se% o"l i" *#o,#a! testi",. Yo sol% #e!oJe it +o# *#o%$tio"*#o,#a!s.

I+ te SIFE $o"%itio" is #aise% a"% it is %isable%K te *#o,#a! is i" e##o#.

Resu*t @ Te #eslt o+ te assi,"!e"t is "%e+i"e%.Im*icit (ction% A !essa,e is *#i"te% a"% te ERROR $o"%itio" is #aise%.Status% SIFE is %isable% 3iti" te s$o*e o+ a NOSIFE $o"%itio" *#e+i a"% else3e#et#o,ot te *#o,#a!K e$e*t 3iti" te s$o*e o+ a $o"%itio" *#e+i s*e$i+i", SIFE.

E(+'DC9 2IED DEC(/);

Page 64: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 64/161

Udhaya’s PL/I Material 6/06/2003 Page:- 64 / 161

DC9 Y 2IED DEC() INIT(1/); H Y;  /' siJe condition is raised '/ 

STRINGRANGE C&7--&Te STRINGRANGE *#o,#a!-$e$8ot $o"%itio" is #aise% 3e"eJe# te Jales o+ tea#,!e"ts to a SUSTR #e+e#e"$e +ail to $o!*l 3it te #les %es$#ibe% +o# teSUSTR bilt-i" +"$tio". It is #aise% +o# ea$ s$ #e+e#e"$e. Te s"ta +o#STRINGRANGE is:

ON STRINGRANGEX.

Im*icit (ction: A !essa,e is *#i"te% a"% *#o$essi", $o"ti"es as %es$#ibe% +o# "o#!al#et#".

Status@  STRINGRANGE is %isable% b %e+alt a"% 3iti" te s$o*e o+ aNOSTRINGRANGE $o"%itio" *#e+i. It is e"able% o"l 3iti" te s$o*e o+ aSTRINGRANGE $o"%itio" *#e+i.

orma* Return: De*e"%s o" Ja#ios +a$to#s. (See P9&I la",a,e #e+e#e"$e)

E(+'DC9 NAME CAR(6);DC9 2IRST CAR(14);2IRSTHSUSTR(NAMEKK6);  /' raises t&e string range condition '/ 

 /' S0RIGR(G+ is disa*ed ! defau*t# 0o ena*e it code as e*o7'/ (STRINGRANGE):MAIN9INE PROCEDURE OPTIONS(MAIN);

.

.

.END MAIN9INE;

STRINGSIE C&7--&Te STRINGSIFE *#o,#a!-$e$8ot $o"%itio" is #aise% 3e" o atte!*t to assi," ast#i", to a ta#,et 3it a so#te# !ai!! le",t. Te s"ta +o# STRINGSIFE is:

ON STRINGSIFE X.

Resu*t % A+te# te $o"%itio" a$tio"K te t#"$ate% st#i", is assi,"e% to its ta#,et st#i",. Te#i,t-a"% $a#a$te#sK bits o# ,#a*i$s o+ te so#$e st#i", a#e t#"$ate% so tat te ta#,etst#i", $a" a$$o!!o%ate te so#$e st#i",.

Im*icit (ction; A !essa,e is *#i"te% a"% *#o$essi", $o"ti"es.

Status: STRINGSIFE is %isable% b %e+alt a"% 3iti" te s$o*e o+ a NOSTRINGSIFE$o"%itio" *#e+i. It is e"able% o"l 3iti" te #a",e o+ a STRINGSIFE $o"%itio" *#e+i.

E(+'DC9 NAME CAR(6);DC9 2IRST CAR(14);2IRSTHNAME;  /' raises t&e stringsiJe condition '/ 

 /' 0o ena*e stringsiJe =7&ic& is off ! defau*t) for an assignment statement code '/ /' e*o7 '/ 

Page 65: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 65/161

Udhaya’s PL/I Material 6/06/2003 Page:- 65 / 161

(STRINGSIFE):RECEIE H SUSTR(2IE9DQ1KK6);

SUBCRIPTRANGE C&7--&Te SUSCRIPTRANGE *#o,#a!-$e$8ot $o"%itio" is #aise% 3e"eJe# a sbs$#i*t iseJalate% a"% +o"% to lie otsi%e its s*e$i+ie% bo"%s.

ON SUCRIPTRANGE X.

Resu*t % e" SUCRIPTRANGE as bee" #aise%K te Jale o+ te i"Jali% sbs$#i*t is"%e+i"e%K a"%K e"$eK te #e+e#e"$e is also "%e+i"e%.

Im*icit (ction: A !essa,e is *#i"te% a"% te ERROR $o"%itio" is #aise%.

Status@  SUSCRIPTRANGE is %isable% b %e+alt a"% 3iti" te s$o*e o+ aNOSUSCRIPTRANGE $o"%itio" *#e+i. It is e"able% o"l 3iti" te s$o*e o+ aSUCRIPTRANGE $o"%itio" *#e+i.

orma* Return: No#!al #et#" +#o! a SUSCRIPTRANGE ON-"it #aises te ERROR

$o"%itio" .

UNDEFINEDFILE C&7--&Te UNDE2INED2I9E i"*t&ot*t $o"%itio" is #aise% 3e"eJe# a "o"e#o #et#" $o%e is#e$eiJe% +#o! te OPEN SC. I+ te atte!*t is !a%e b !ea"s o+ a" OPEN state!e"ttat s*e$i+ies !o#e ta" o"e +ileK te $o"%itio" is #aise% a+te# atte!*ts to o*e" all +iless*e$i+ie%. Te s"ta +o# UNDE2INED2I9E is:

ON UNDE2INED2I9E (+ile-#e+e#e"$e) X..

Im*icit (ction: A !essa,e is *#i"te% a"% te ERROR $o"%itio" is #aise%.

Status@ UNDE2IND2I9E is al3as e"able%.

orma* Return: U*o" te "o#!al $o!*letio" o+ te +i"al ON-"itK $o"t#ol is ,iJe" to testate!e"t i!!e%iatel +ollo3i", te state!e"t tat #aise% te $o"%itio".

UNDERFLO%O$$#s 3e" te !a,"it%e o+ te #eslt o+ a +loati", *oi"t o*e#atio" is lessta" 16''-05

 AHE-01;HE-;CHA';  /' underf*o7 condition '/ 

Resu*t: Te Jale o+ te i"Jali% +loati", *oi"t Jale is set to 6.

Im*icit (ction: A !essa,e is *#i"te% a"% ee$tio" $o"ti"es +#o! te *oi"t at 3i$te $o"%itio" 3as #aise%

Status: E"able% t#o,ot te *#o,#a! e$e*t 3iti" te s$o*e o+ NOUNDER29O.No#!al Ret#": Co"t#ol #et#"s to te *oi"t i!!e%iatel +ollo3i", te *oi"t at 3i$ te$o"%itio" 3as #aise%.

Page 66: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 66/161

Udhaya’s PL/I Material 6/06/2003 Page:- 66 / 161

ERODIVIDE C&7--&Te FERODIIDE $o!*tatio"al $o"%itio" is #aise% 3e" a" atte!*t is !a%e to %iJi%eb e#o. Tis $o"%itio" is #aise% +o# +ie%-*oi"t a"% +loati",-*oi"t %iJisio". Te $o!*ile#$a" also #aise tis $o"%itio"K i"stea% o+ +ie% oJe#+lo3K 3e":

• Te #eslts o+ a $o"Je#sio" +#o! %e$i!al to bi"a# e$ee%s te !ai!! le",t

allo3e% b te i!*le!e"tatio".•  A +ie%K +loati",-*oi"tK o# %e$i!al %iJi%e e$e*tio" is %ete$te% b te a#%3a#eK asK +o#

ea!*leK 3e" si", te DIIDE bilt-i" +"$tio" a"% te 7otie"t e$ee%s te sies*e$i+ie% +o# te #eslt.

Te s"ta +o# FERODIIDE is:

ON FERODIIDE

I+ te FERODIIDE $o"%itio" is #aise% a"% it is %isable%K te *#o,#a! is i" e##o#.

Resu*t: Te #eslt o+ a %iJisio" b e#o is "%e+i"e%.I!*li$it A$tio": A !essa,e is *#i"te% a"% te ERROR $o"%itio" is #aise%.

Status@ FERODIIDE is e"able% t#o,ot te *#o,#a!K e$e*t 3iti" te s$o*e o+ a$o"%itio" *#e+i s*e$i+i", NOFERODIIDE.

orma* Return: Co"t#ol #et#"s to te *oi"t i!!e%iatel +ollo3i", te *oi"t at 3i$ te$o"%itio" 3as #aise%.

E(+' AH1;H6;CHA&;  /' K+R.IVI.+ condition '/ 

E(+' 7'&*+' SIE &7--&&&USERAA1 O MSGC9ASSHAKNOTI2YHUSERAA

&&MYSTEP EEC PROCHIE91C9GKREGION.P9IH1M&&P9I.SYSIN DD '(SIFE):MYPROG: PROCEDURE OPTIONS(MAIN);DC9 2IE9D1 2IED DECIMA9(0K);DC9 2IE9D 2IED DECIMA9(0K);DC9 2IE9D 2IED DECIMA9(16K);DC9 SUM 2IED DECIMA9(0K);ON SIFE EGIN;PUT S=IP 9IST(<SIFE ERROR<);END;2IE9DH1.;2IE9D1H2IE9D;

GET DATA (2IE9D1K2IE9D);SUMH2IE9D12IE9D;PUT S=IP 9IST(SUM);GET DATA (2IE9D1K2IE9D);SUMH2IE9D12IE9D;PUT S=IP 9IST(SUM);END MYPROG;

&'&&GO.SYSIN DD '2IE9DH1.K2IE9D1H./;

Page 67: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 67/161

Udhaya’s PL/I Material 6/06/2003 Page:- 67 / 161

2IE9D1H.K2IE9DH55555.55;&'&&

Page 68: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 68/161

Udhaya’s PL/I Material 6/06/2003 Page:- 68 / 161

E(+' 7'&*+' 8+*-) CONDITIONS&&USERAA1 O MSGC9ASSHAKNOTI2YHUSERAA&&MYSTEP EEC PROCHIE91C9GKREGION.P9IH1M&&P9I.SYSIN DD '

MYPROG: PROCEDURE OPTIONS(MAIN);DC9 2IE9D 2IED DEC(K);DC9 U22 CAR(16);DC9 U221 CAR(6) INIT(<ACDE2GI=9MNOP<);DC9 (K=) 2IED INARY(1);DC9 A 2IED DECIMA9(K);DC9 MYCONDITION CONDITION;

ON CONERSION EGIN;PUT S=IP 9IST(<CONERSION CONDITION RAISED<);PUT S=IP EDIT(<CAR IN ERROR ISH<KONCAR( ))(A);PUT S=IP EDIT(<2IE9D IN ERROR ISH<KONSOURCE( ))(A);PUT S=IP 9IST(<ATTEMPTING REPAIR...<);ONCARH<1<;END;

ON STRINGSIFE PUT S=IP 9IST(<STRINGSIFE CONDITION...<);

ON STRINGRANGE PUT S=IP 9IST(<STRINGRANGE CONDITION...<);

ON ERROR PUT S=IP 9IST(<ERROR CONDITION RAISEDK PROGRAM AENDING..<);

  ON 2INIS PUT S=IP 9IST(<2INIS CONDITION RAISED.DO C9EANUP<);

ON 2IEDOER29O PUT S=IP 9IST(<2IED OER29O CONDITIONRAISED<);

ON SIFE PUT S=IP 9IST(<SIFE CONDITION RAISED<);

ON NAME(SYSIN) PUT S=IP 9IST(<NAME CONDITION RAISED ON SYSIN<);

ON CONDITION(MYCONDITION) PUT S=IP 9IST(<MYCONDITION RAISED<);

H1;=H1;GET EDIT (2IE9D)(2(K)); /' raises conersion condition '/PUT EDIT(2IE9D)(2(4K));(STRINGSIFE):U22HSUSTR(U221KK=);  /' raises stringsiJe cond '/

H16;=H6;(STRINGRANGE):U22HSUSTR(U221KK=); /'raises stringrange cond '/  

H066;=H066;H'='; /' raises fi5ed oerf*o7 condition '/

K=H066;(SIFE):H=;  /' raises siJe condition '/

GET S=IP DATA(A); /' name condition raised '/

GET S=IP DATA(A); /' t&is time data is fine'/

(STRINGSIFE):SIGNA9 STRINGSIFE; /' Qust for 6ic6s '/

Page 69: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 69/161

Udhaya’s PL/I Material 6/06/2003 Page:- 69 / 161

SIGNA9 STRINGSIFE; /'sorr! 7ont 7or6 &ere '/

SIGNA9 CONDITION(MYCONDITION);END MYPROG;

&'&&GO.SYSIN DD '

 A166H1./;

 AH1./;&'&&

Page 70: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 70/161

Udhaya’s PL/I Material 6/06/2003 Page:- 70 / 161

SECTION ! ARRAYS (rra!s

DC9 STUDQAG (4) 2IED DEC(/K);DC9 TA9E(6:11) 2IED DEC();DC9 GRAP(-:) 2IED DEC(K);DC9 9IST(-:4) 2IED IN(1K6) INIT(1KK/K1KKK/K56K6);

DC9 TA9E(K) 2IED DEC();

CO9UMN 1 CO9UMN RO 1 (1K1) (1K)RO (K1) (K)RO (K1) (K)

DC9 AIS(-:K-/:/) 29OAT DEC(4) INIT((4)6);DC9 (16) 2IED DEC() INIT((0)6K1KK);DC9 TA9E(16) CAR() INIT((16)()<A<);DC9 TA9E(16) CAR() INIT((16)?1<EMPTY<);

 /' note t&e =1) @# It is reAuired @ '/ 

 A$$ess a" ele!e"t as belo3 AIS(-K-/)  /' first e*ement)Sbs$#i*ts $a" be "este% as belo3

DC9 () 2IED IN(1K6) INIT(16K6K6K/6K6);DC9 Y() 2IED IN(1K6) INIT(KK1);IH;FH(Y(I));  /' K is 18 '/ 

Varia*e arra! oundsPROC1: PROCEDURE;DC9 A(66) 2IED IN(1) INIT((66)0);DC9 2IED IN(1);CA99 MYSUM(AK);

.

.

.END PROC1;

MYSUM:PROCEDURE(ARRAYKSUM);DC9 ARRAY(') 2IED IN(1);DC9 SUM 2IED IN(1);DC9 9O 2IED IN(1);DC9 IG 2IED IN(1);DC9 INDE 2IED IN(1);DC9 (OUNDK9OUND) UI9TIN;9O H 9OUND(ARRAYK1);

 /' second arm is t&e dimension 7e are *oo6ing at'/ IG H OUND(ARRAYK1);

 /' L and %IG% are no7 t&e ounds of (RR(4'/ 

SUMH6;DO INDEH9O TO IG Y 1;

SUMHSUM ARRAY(INDE);END;END MYSUM;

Page 71: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 71/161

Udhaya’s PL/I Material 6/06/2003 Page:- 71 / 161

I/ oerations and (rra!sDC9 AMOUNT(6) 2IED DECIMA9();GET 9IST AMOUNT;  /' (M0=1) to (M0=28) are inut '/ 

GET 9IST((TEMP(I) DO I H 1 TO 9IMIT));GET 9IST(((A(IK)DO IH1 to )DO H TO 0));

 /' note t&at I is inner . =aries fast)# " is outer .=aries s*o7*!)'/ 

 (rra! (ssignment DC9 MONTS(1) 2IED DEC(/K1);MONTS H 6;  /' inits a** e*ements of M0%S to 8 '/ 

DC9 A(16) 2IED DEC(4);DC9 (16) 2IED DEC(4);

 AH;

DC9 A 2IED DEC(4) INIT(1KKK/KK4);

 AH-A;  /' ( is no7 -1?-2?-3?-E?-?-> '/ 

 AHA';  /' ( is no7 -2?-E?->?-?-18?-12 '/ 

DC9 2IED DEC(4) INIT(1KKK/KK4);

 AHA;  /' ( is no7 -1?-2?-3?-E?-?-> '/ 

,ross Sections of (rra!sDC9 TA9E(K/) 2IED INARY(1);TA9E('K1) #e+e#s to +i#st $ol!" o+ TA9ETA9E(1K') #e+e#s to +i#st #o3 o+ TA9ETA9E('K) #e+e#s to ti#% $ol!" o+ TA9E

SBS,RIP0R(G+ condition

De+alt state is %isable%. To e"able %o o"e o+ te +ollo3i",(SUSCRIPTRANGE):MATRI: PROC OPTIONS(MAIN);.END MATRI;

ON SUSCRIPTRANGEEGIN;..END;

E(+' ARRAY )+' 

&&USERAA1 O MSGC9ASSHAKNOTI2YHUSERAA&&MYSTEP EEC PROCHIE91C9GKREGION.P9IH1M&&P9I.SYSIN DD '

MYPROG: PROCEDURE OPTIONS(MAIN);DC9 ARRAY(K16) 2IED DECIMA9() INIT((16)1K(16));PUT DATA (ARRAY);PUT S=IP 9IST(<ARRAY A2TER ARRAY16..<);

 ARRAYHARRAY16;PUT S=IP;PUT DATA (ARRAY);

Page 72: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 72/161

Udhaya’s PL/I Material 6/06/2003 Page:- 72 / 161

PUT S=IP 9IST(<NO RESTORING ARRAY...<); ARRAY(1K')H1; ARRAY(K')H;PUT S=IP;PUT DATA(ARRAY);END MYPROG;

&'&&

E(+' 7'&*+' ARRAYS&&USERAA1 O MSGC9ASSHAKNOTI2YHUSERAA&&MYSTEP EEC PROCHIE91C9GKREGION.P9IH1M&&P9I.SYSIN DD 'MYPROG: PROCEDURE OPTIONS(MAIN);DC9 2IE9DQARRAY(16) 2IED DECIMA9(0K) INIT(1KKK(0));DC9 SUM 2IED DECIMA9(0K);CA99 ADD(2IE9DQARRAY);PUT S=IP 9IST(SUM);

 ADD:PROCEDURE (A);

DC9 A(') 2IED DECIMA9(0K);DC9 (OUNDK9OUND) UI9TIN;DC9 INDE 2IED INARY(1);DC9 UPPER 2IED INARY(1);DC9 9OER 2IED INARY(1);SUMH6;9OERH9OUND(AK1);UPPERHOUND(AK1);DO INDEH9OER TO UPPER Y 1;SUMHSUMA(INDE);END;

END ADD;END MYPROG;

&'&&

Page 73: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 73/161

Udhaya’s PL/I Material 6/06/2003 Page:- 73 / 161

SECTION 9 PICTURES AND STRUCTURES

PicturesTo t#eat $a#a$te# st#i",s as A#it!eti$ %ata

To t#eat a#it!eti$ 7a"tities as $a#a$te# st#i",s

To e%it %ata ( Fe#o s**#essio"K Dolla# +loatK K-KDKCR a"% $o!!a %e$i!ali"se#tio" i" "!e#i$ %ata) +o# ot*t to *#i"te# 

PICTURE 9icture secification c&aracters9 Pi$t#e s*e$i+i$atio" $a#a$te#s a#e KK>KFK.KKKDKCR

DC9 A PIC <<  /' F reresents a numeric digit'/ 

DC9 PIC <()()<  /' V is t&e im*ied decima* oint '/ 

PIC B<' E)-8+'& V+)' +-&'7 I&. 8+)' N' DECIMA9 2IED() 1/ 1/ DECIMA9 2IED() 1/ 1/ DECIMA9 2IED(K) 1./ 1/ DECIMA9 2IED(K) 1/ /66 1 DECIMA9 2IED(K) 1/ 66666 DECIMA9 2IED() 1 661 DECIMA9 2IED(K) 1 166 DECIMA9 2IED(K1) 1./ / DECIMA9 2IED(K) -1./ 1/ /S DECIMA9 2IED(K) -1./ -1/- 4 DECIMA9 2IED(K) -1./ -1/- 4 DECIMA9 2IED(K) 1./ 1/S 4 DECIMA9 2IED(K) 1./ 1/S 4 DECIMA9 2IED(K) -1./ 1/-

4 DECIMA9 2IED(K) 1./ 1/ 4 DECIMA9 2IED(K) -1./ 1/

Note:1:T#"$atio" o+ !ost si,"i+i$a"t %i,its o$$##e%:T#"$atio" o+ si,"i+i$a"t %i,its o$$##e%:T#"$atio" o" bot si%es o+ %e$i!al *oi"ts o$$##e%/:Si," is lost as *i$t#e $lase %i% "ot aJe *#oJisio" +o# si," S

 A#it!eti$ O*e#atio"s o" De$i!al Pi$t#e DataDC9 SUM PIC<<;DC9 A PIC<<;

DC9 PIC<<;

SUM H A ;

Te $o!*ile# ,e"e#ates $o%e toa)Co"Je#t A to 2ie% De$i!alb)Co"Je#t to 2ie% De$i!al +o#!at$) A%% A a"% %)Co"Je#t te #eslt to $a#a$te# +o#! (PIC o+ SUM)e)Pla$e te $o"Je#te% #eslt i" SUM.

Page 74: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 74/161

Udhaya’s PL/I Material 6/06/2003 Page:- 74 / 161

Note tat a#it!eti$ o*e#atio"s $a" be *e#+o#!e% o" PIC +iel%s 3it e%iti",$a#a$te#s. o3eJe# it #eslts i" i"e++i$ie"t $o%e.

-)*' +*+'*   Is se% +o# s**#essio" o+ lea%i", Fe#oes.

PIC V+)' +-&'7 I&'*&+ R'*''&+-&FFFF 166 bb166FFFF 6 bbbb6FFFFF 6 bbbbbFFF 1 166FFFFF 1/ /66FFFFF .61 bbbb1FFF 6 bbb66F 6 b6666FFFF  /' ina*id# If one K aears to rig&t of decima*? t&en a** edit

c&ars must K '/ FFFF  /' Ina*id# (** K9S must e to t&e *eft of t&e F '/ 

D'-+ P-& Tis is a" i"se#tio" $a#a$te# 

DC9 A PIC<.< INIT(1./);PUT 9IST(A);  /' oututs 812#3E '/ 

DC9 A PIC<< INIT(1./);PUT 9IST(A);  /' oututs 8123E '/ 

Te ali,"!e"t is $ase% b te e%it $a#a$te#. De$i!al *oi"t is o"l ot*t asa" i"se#tio" $a#a$te#. See ea!*le belo3 to illst#ate tis:

DC9 A PIC<.< INIT(1./);PUT 9IST(A);  /' oututs 888#12 '/ 

C+Tis is a" i"se#tio" $a#a$te# 

DC9 A PIC<K.< INIT(1./);PUT 9IST(A);  /' oututs 3?12#3E '/ 

DC9 A PIC<FKFFF.< INIT(1./);PUT 9IST(A);  /' oututs 3?12#3E '/ 

DC9 A PIC<FKFFF.< INIT(1./);PUT 9IST(A);  /' oututs 12#3E '/ 

B+&Is a"ote# i"se#tio" $a#a$te#. Use tis to ,e"e#ate bla"8s o" te #i,t a"% si%eo+ te *i$t#e st#i",. I+ o "ee% bla"8s o" te le+tK se te F e%it $a#a$te# 

DC9 A PIC<<;  /' t&ree *an6s on t&e rig&t'/ DC9 PIC<FKFFF.(0)<;  /' seen *an6s on t&e rig&t'/ DC9 EDITEDQDATE PIC<<; /'insert *an6s et7een

44?MM? and ..'/ 

S+  Is a"ote# i"se#tio" $a#a$te# 

DC9 RUNQDATE CAR(4);DC9 EDITEDQRUNQDATE PIC<&&<;EDITEDQRUNQDATEHRUNQDATE;

Page 75: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 75/161

Udhaya’s PL/I Material 6/06/2003 Page:- 75 / 161

D+* S-&I" te 2loati", +o#! (3e#e te#e is !o#e ta" o"e > si,") lea%i", e#oesa#e s**#esse% a"% last lea%i", Fe#o is #e*la$e% 3it te > si,". I" stati$+o#! (o"l o"e > si,") it a**ea#s 3e#eJe# %e+i"e% i" te *i$t#e st#i",.

DC9 PIC<>.< INIT(1./);PUT 9IST();  /' oututs 812#3E '/

DC9 PIC<>>>>.< INIT(1./);PUT 9IST();  /' oututs 12#3E '/

S-& +*+'* ?S,",Te aboJe $a#a$te#s !a be also %#i+ti",.DC9 A PIC<S< INIT(1);PUT 9IST(A);  /' oututs ;812 '/ DC9 A PIC<SSS< INIT(1);PUT 9IST(A);  /' oututs ;12 '/ DC9 A PIC<S< INIT(1/);PUT 9IST(A);  /' oututs 123E; '/ 

DC9 A PIC<< INIT(1//);  /'error@'/ PUT 9IST(A);  /' oututs ;EE '/ DC9 A PIC<.S< INIT(-1./);PUT 9IST(A);  /' oututs 123#E- '/ 

A'*-Usall se% as a +loati", $a#a$te# +o# *#ote$tio" a,ai"st +o#,e#DC9 A PIC<'''''.< INIT(16/.0);PUT 9IST(A);  /' oututs '''18E#< '/ DC9 A PIC<'''''.''< INIT(16/.0);PUT 9IST(A);  /' oututs ''18E#< '/ DC9 A PIC<'''''.''< INIT(.0);PUT 9IST(A);  /' oututs '''''#< '/ 

CR +&7 DRD o# CR $a" be se% to i"%i$ate "e,atiJe Jales. CR o# D $a" o"l a**ea#to te #i,t o+ all %i,it *ositio"s i" te PIC $lase.

DC9 A PIC<.CR< INIT(-1.0);PUT 9IST(A);  /' oututs 12#<,R '/ DC9 A PIC<.D< INIT(-1.0);PUT 9IST(A);  /' oututs 12#<.B '/ DC9 A PIC<.CR< INIT(1.0);PUT 9IST(A); &' ot*ts 1.0bb '&

C+*+'* S*-& P-)*'Tese $a""ot be se% +o# %ata ite!s 3i$ a#e to *a#ti$i*ate i" $o!*tatio"s .

Te a#e !a%e * o+ AK K a"% ilt-i" +"$tio"s o+ SUSTRK 9ENGTK INDE a"% ERI2Y $a" be se% o"tese %ata ite!s.

 A s*e$i+ies $a#a$te#s A to F o# bla"8 s*e$i+ies a "!e#i$ $a#a$te#   $a" $o"tai" a" $a#a$te#  

Te a"% ote# i"se#tio" $a#a$te#s !a "ot be s*e$i+ie% i" tese PIC $lasesTis t*e o+ PIC att#ibte is se% *#i!a#il +o# %ata Jali%atio"E(+'@

 Ass!e 3e "ee% to e"s#e tat a" %ata ite! is o+ te +o#! 10A

Page 76: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 76/161

Udhaya’s PL/I Material 6/06/2003 Page:- 76 / 161

Te +i#st / *ositio"s a#e "!e#i$ a"% te last t3o a#e al*abeti$.

Co%e te %ata ite! 3i$ is to #e$eiJe te aboJe %ata as PIC<AA<DC9 A PIC<AA<;DC9 CAR(4);

 A H ;  /' if t&e format of t&e assigned data does not conform to t&ePI, of t&e receiing fie*d? t&e ,V+RSI conditionis raised '/  

T' P '--+-& - +;'7 -& -&) +&7 )) GET +&7 PUT +''& GET 2I9E(SYSIN) EDIT(AKKCKD) (CO9(1)KP<FFF<KP<<KP<AA<KP<()<);

Inut a*ue ormat Resu*ting interna* a*uebb1 P<FFF< 6611/ P<< 1/

 A1 P<AA< A1 A1 P<()< conersion error @@ 

DC9 ASSETS 2IED DECIMA9(11K); ASSETS H /45.04;

PUT EDIT(ASSETS) (P<>>>>K>>>K>>>.<); /' oututs E?32>?F#<> '/ 

DC9 ASSETS 2IED DECIMA9(11K); ASSETS H 66.66;PUT EDIT(ASSETS) (P<>FFFKFFFKFFF.<);

 /' oututs 2?88#88 '/ 

StructuresDC9 1 EMPQADDRESSK

  NAME CAR(6)K  STREET CAR(6)K  CITY CAR(6)K

  STATE CAR(6);READ 2I9E(IN2I9E) INTO (EMPQADDRESS);Notes:• 9eJel 1 is te Mao# st#$t#e leJel 3i$ %oes "ot aJe att#ibtes. o3eJe#

ote# sto#a,e 7ali+ie#s li8e ASED(P) a#e to be s*e$i+ie% e#e.•  A" "!be# 1 $a" #e*#ese"t lo3e# leJels

•  Att#ibtes a"% INIT a#e %e+i"e% o"l at ele!e"ta# leJels

• Te#e is "o e7iJale"t to te COO9 2I99ER

• STRING(EMPQADDRESS) $o"$ate"ates all te ele!e"ts i"to o"e $a#a$te#st#i",.

• STRING(structure aria*e) $a" also be se% as a *se%o Ja#iable (o" te9S o+ a" assi,"!e"t state!e"t.

DC9 1 SA9ARYQRECORDK  NAMEK  9AST CAR(16)K  2IRST CAR(16)K  MIDD9E CAR(16)K  EMPQNO 2IED DEC()K  OURSK  REGU9AR 2IED DEC(/)K  OERTIME2IED DEC(/)K

Page 77: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 77/161

Udhaya’s PL/I Material 6/06/2003 Page:- 77 / 161

AGESK  REGQPAY 2IED DEC(/)K  OTQPAY 2IED DEC(/);

F+*-&E(+'@DC9 1 SA9ARYQRECORDK

  NAMEK  (9ASTK2IRSTKMIDD9E) CAR(16)K  EMPQNO 2IED DEC()K  OURSK  (REGU9ARKOERTIME) 2IED DEC(/)K  AGESK  (REGQPAYKOTQPAY) 2IED DEC(/);

I&--+ A*-)'Ele!e"ta# %ata ite!s i" te st#$t#e $a" aJe te INIT att#ibteE(+'@DC9 1 SA9ARYQRECORDK

  NAMEK

  9AST CAR(16) INIT(<ONSON<)K  EMPQNO 2IED DEC() INIT(1/)K  OURSK  REGU9AR 2IED DEC(/) INIT(166)K  AGESK  REGQPAY 2IED DEC(/) INIT(666);

N+' ;--& + *))*'DC9 1 EMPQRECK

  REGU9ARQPAY PIC<<K OURSK

  REGU9AR PIC<<K  OERTIME PIC<<K

  AGESK  REGU9AR PIC<<K  OERTIME PIC<<;

EMPQREC.REGU9ARQPAY H EMPQREC.OURS.REGU9AR 'EMPQREC.AGES.REGU9AR;

REGU9ARQPAY H OURS.REGU9AR ' AGES.REGU9AR; /' a*so $ if t&e second and t&ird Aua*ifier uniAue*! identif! t&e data item '/ 

A**+< -& *))*'DC9 1 INENTORYQITEMK

  PARTQNO CAR(5)K

  BTYQINQAND PIC<<K  SA9ESQISTORY(1) PIC<<;

INENTORYQITEM.SA9ESQISTORY(1) H 1/;

A**+< *))*'DC9 1 EATER(6)K

  TEMPK IG 2IED DEC(/K1)K 9O 2IED DEC(/K1)K

Page 78: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 78/161

Udhaya’s PL/I Material 6/06/2003 Page:- 78 / 161

E9OCITYK IG 2IED DEC(/K1)K 9O 2IED DEC(/K1)K

  RAIN2A99K IG 2IED DEC(/K1)K 9O 2IED DEC(/K1);

Re+e# to st#$t#e as EATER(")Re+e# to E9OCITY as E9OCITY(")Re+e# to TEMP.IG as TEMP.IG(") /' ca**ed suscrited Aua*ified name'/ 

L-' A*-)'DC9 1 METROQEATER(4)K

  TEMPK IG 2IED DEC(/K1)K 9O 2IED DEC(/K1)K

  E9OCITYK IG 2IED DEC(/K1)K 9O 2IED DEC(/K1)K

  RAIN2A99K

IG 2IED DEC(/K1)K 9O 2IED DEC(/K1);

DC9 1 COUNTRYQEATER 9I=E METROQEATER;

 /' effectie*! t&e same as t&e definition e*o7'/ 

DC9 1 COUNTRYQEATERK  TEMPK

IG 2IED DEC(/K1)K 9O 2IED DEC(/K1)K

  E9OCITYK IG 2IED DEC(/K1)K

9O 2IED DEC(/K1)K  RAIN2A99K

IG 2IED DEC(/K1)K 9O 2IED DEC(/K1);

Note tat te Di!e"sio" Att#ibte is "ot $o*ie%. To e++e$t te %i!e"sio" also$o%e asDC9 1 COUNTRYQEATER(4) 9I=E METROQEATER;

e $a" se 9I=E att#ibte +o# a !i"o# st#$t#e "a!e also.

A-&'&e $a" assi," o"e st#$t#e to a"ote# so lo", as te aJe te sa!e !i"o#

st#$t#i", a"% sa!e numer  o+ ele!e"ta# ite!s. I+ a##as a#e $o"tai"e% 3iti"Kte bo"%s !st be te sa!e. e $a" assi," Mao# to !i"o# st#$t#es o# Ji$eJe#sa *#oJi%e% te #elatiJe st#$t#i",K as %e+i"e% aboJeK is te sa!e. 

Note tat eJe" i+ te att#ibtes o+ te %ata ite!s a#e %i++e#e"tK $o"Je#sio" ta8es*la$e as *e# #les.

DC9 1 A 2IED DEC()K C 2IED IN(1)K

Page 79: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 79/161

Udhaya’s PL/I Material 6/06/2003 Page:- 79 / 161

D CAR(6)K E 2IED IN(1)K 2 29OAT DEC();

DC9 1 AA 2IED IN(1)K CC 2IED DEC()K DD CAR(16)K EE 2IED DEC(/)K 22 2IED DEC(4);

 A H AA;  /' a*id assignment# ,onersions occur '/  /' eAuia*ent to '/  /' B C BB '/  /' , C ,, '/  /' . C .. '/  /' + C ++ '/  /' C '/ 

A-&'& < &+'

DC9 1 INPUTK EMPQNAME CAR(6)K EMPQNUMER  CAR(4)K OURSK  REGU9AR PIC<<K  OERTIME PIC<<K GROSSQPAY PIC<<;

DC9 1 OUTPUTK CARRIAGEQCNT9 CAR(1)K EMPQNUMER  CAR(4)K EMPQNAME CAR(6)K GROSSQPAY PIC<<;

OUTPUT H INPUTK Y NAME;

Ele!e"ts o+ INPUT 3ose "a!es a#e i%e"ti$al to tose o+ OUTPUT a#e !oJe%.I+ Mao# st#$t#e $o"tai"s a !i"o# st#$t#eK te !i"o# st#$t#e "a!es !st !at$ to!oJe ele!e"ta# ite!s 3iti" te !i"o# st#$t#e.

DC9 1 2IRSTK MINORQ1K  AK  K CK D;

DC9 1 SECONDK MINORQK  AK  K CK D;

2IRST H SECONDK Y NAME; /' ,?. 7i** e moed# %o7eer ( and B 7i** not as t&eir Minor

Page 80: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 80/161

Udhaya’s PL/I Material 6/06/2003 Page:- 80 / 161

structure names are different '/  S++* S*))*' +-&'&

DC9 1 EMPQRECK EMPQNAME CAR(6)K EMPQADDRESSK  STREET CAR(6)K  CITY CAR(6);

EMPQREC H < <;  /' a*id '/  /' +MP(M+ C 9 9D '/  /' S0R++0 C 9 9D '/  /' ,I04 C 9 9D '/ 

.efining er*a! of a Sca*ar Varia*e on a StructureE(+'

DC9 1 EMPQRECK EMPQNAME CAR(6)K EMPQADDRESSK  STREET CAR(6)K

  CITY CAR(6);DC9 EMPQDETAI9S CAR(46) DE2INED EMPQREC;EMPQDETAI9SH<<;

.efining er*a! of a structure on a structureE(+'

DC9 1 ISSUESK CODE CAR(1)K BTY PIC <<K OQNO CAR(/)K PARTQNO CAR(0)K DEPT CAR()K 2I99ER1 CAR();

DC9 1 RECEIPTS DE2INED ISSUESK CODE CAR(1)K BTY PIC <<K PARTQNO CAR(0)K SUPP9IER CAR(4);

READ 2I9E(INPUT) INTO ISSUES;SE9ECT (ISSUES.CODE);

EN (<1<) CA99 PROCESSQISSUES;EN (<<) CA99 PROCESSQRECEIPTS;OTERISE CA99 CODEQINQERROR;

END;

Structures in Stream I/ St#$t#es !a also be s*e$i+ie% i" EDIT o# 9IST %i#e$te% st#ea! I&O. Te "a!es!a be !ao# o# !i"o# st#$t#e "a!es.

E(+'DC9 1 INENTORYK

PARTQNUMER CAR(4)K BTYQONQAND 2IED DEC()K PRICE 2IED DEC(K);

Page 81: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 81/161

Udhaya’s PL/I Material 6/06/2003 Page:- 81 / 161

GET EDIT(INENTORY) (A(4)K 2()K 2(K)); E(+'

DC9 1 INENTORYK PARTQNUMERK

TYPE CAR()K CODE CAR()K

REORDERQBTY PIC <(/)<;PUT EDIT(PARTQNUMERKREORDERQBTY) (A()KA()K2(/));

E(+'DC9 1 AK

(16)K C(16);

PUT EDIT(A) (2(1));

Ot*ts

 A.(1) A.()XX A.(16) A.C(1)X.A.C(16)

 

Page 82: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 82/161

Udhaya’s PL/I Material 6/06/2003 Page:- 82 / 161

SECTION 10 STORAGE CONTROL S*+' C+'

U"less %e$la#e% ote#3ise Ja#iables 3ill aJe te sto#a,e $lass AUTOMATIC

MAIN: PROCEDURE OPTIONS(MAIN);DC9 1 STRUCTUREK A 2IED DEC (4K)K CAR(6);

.

.P1: PROC;

DC9 TA9E(166) CAR(16);.

END P1;P: PROC;

DC9 9IST(66) 2IED;.

END P;END MAIN;

 

AUTOMATIC Sto!"#

Te aboJe is te laot 3e" P1 is $alle%

 

AUTOMATIC Sto!"#

Te aboJe is te laot 3e" P is $alle%

Note te oJe#lai", o+ TA9E a"% 9IST 3i$ is $a#a$te#isti$ o+ AUTOMATIC Ja#iables Ato!ati$ Ja#iables li+eti!e is te li+eti!e o+ te e"$losi", blo$8 (Eite# a PROC o#EGIN) Ato!ati$ Ja#iables !a8e e++i$ie"t se o+ sto#a,e. Te sto#a,e +o# a" ato!ati$Ja#iable is allo$ate% o" e"t# i"to te blo$8 b a  ro*ogue a"% %e-allo$ate% o" eit +#o!te blo$8 b ei*ogue. P#olo,e a"% E*ilo,e $o%e is ,e"e#ate% b te $o!*ile#.

STATIC Sto#a,e

MAIN: PROCEDURE OPTIONS(MAIN);DC9 1 STRUCTUREK

A 2IED DEC (4K)K CAR(6);

.

.P1: PROC;

DC9 TA9E(166) CAR(16) STATIC;END P1;P: PROC;

MAIN

MAIN

$1

$1

$2

$2

ST%UCTU%E

ST%UCTU%E

TAB&E

&IST

Page 83: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 83/161

Udhaya’s PL/I Material 6/06/2003 Page:- 83 / 161

DC9 9IST(66) 2IED STATIC;.

END P;END MAIN;

 

stati$ sto#a,e  stati$ sto#a,e

ato!ati$ sto#a,e

Te aboJe is te laot 3e" P1 o# P a#e $alle%

• Note tat Stati$ sto#a,e is allo$ate% be+o#e sta#t o+ *#o,#a! ee$tio" a"% #e!ai"sallo$ate% t#o,ot *#o,#a! ee$tio".

• e#e o 3a"t Ja#iables to #etai" tei# Jale +#o! o"e i"Jo$atio" o+ te *#o$e%#e toa"ote# %e$la#e te! 3it te stati$ att#ibte.

• Stati$ Ja#iables $a" be i"itialise% st li8e ato!ati$ Ja#iablesDC9 29AG IT(1) INIT(<1<) STATIC;

B+'7 S*+' DC9 P POINTER;DC9 A(166) 2IED DEC() ASED(P);

 /' first dec*aration of P is not mandator! as second dec*aration im*ies t&e nature of P 7&ic& is a aria*e of t!e PI0+Rote t&at storage for ( is 0 a**ocated ! t&e aoe dec*aration '/ 

 To #e+e# Ja#iable A o"e o+ te +ollo3i", "ee%s to be %o"e

 Assi," to P te Jale #et#"e% b a" ADDR( ) +"$tio"DC9 A9UE1 IT() ASED(P);DC9 A9UE IT();P H ADDR(A9UE);

 Assi," to P a"ote# *oi"te# 3i$ as a Jali% JaleDC9 (PKB) POINTER;B H ADDR(AREA);P H B;

I"itialise P b si", it 3it SET o*tio" o+ a READ o# 9OCATE I&O state!e"tREAD 2I9E(INPUT) SET(P);  /' I/ read direct to ased aria*e '/ 

9OCATE 2I9E(OUTPUT) SET(B); /'Based aria*e maed to outut uffer '/ 

 Allo$ate te Ja#iable 3i$ P is tie% to.DC9 (PKB) POINTER;DC9 AREA CAR(166) ASED(P);

 A99OCATE(AREA);  /' irst generation of (R+( '/  A99OCATE(AREA) SET(B);  /' Second generation of (R+( '/  AREA H ̂ ACDZD /' irst generation used '/ 

MAIN

$1

$2

ST%UCTU%E

TAB&E

&IST

Page 84: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 84/161

Udhaya’s PL/I Material 6/06/2003 Page:- 84 / 161

B-AREA H ̂PBRSZ;  /' Second generation used '/  

S-)+-& O8'*+<DC9 A(166) 2IED IN(1);DC9 (6) 2IED IN(1) DE2INED A;

 /' traditiona* definition of oer*a! '/ 

DC9 A(166) 2IED IN(1);DC9 (6) 2IED IN(1) ASED(P);P H ADDR(A);  /' a*ternate met&od '/ 

 /' note t&at storage siJe of B must note5ceed t&at of ( '/  

It is *ossible to aJe t3o Ja#iables base% o" o"e POINTER.

DC9 PTR POINTER;DC9 1 AK

PIC<<K C 2IED DEC (1K)K D CAR(1);

DC9 1 ASED(PTR)K 2IED IN(1)K Y 29OAT DEC(4)K F IT(0);

DC9 1 ASED(PTR)K = 2IED IN(1)K 9 2IED IN(1);

PTR H ADDR(A);

e" oJe#la %e+i"i", a CAR Ja#i", +iel% s*e$ial $o"si%e#atio"s eist

DC9 2IE9D CAR(166) ARYING;DC9 1 STRUCTURE ASED(P)K

9ENGT 2IED IN(1K6)K DATA CAR(166);

P H ADDR(2IE9D);Note tat 9ENGT oJe#las te al+ 3o#% le",t +iel% *#e$e%i", te Ja#i",$a#a$te# +iel%.

U-& POINTERS -& I/O ?L+' 7' I/ODC9 P POINTER;DC9 TAPE 2I9E INPUT RECORD ENIRONMENT(2 9=SIFE (/6)

RECSIFE(/));DC9 1 ISSUES ASED(P)K

CODE CAR(1)K BTY PIC<(/)<K OQ@ PIC<(/)<K PARTQ@ PIC<(0)<K DEPT PIC<<K UNUSED CAR(4); 

DC9 1 RECEIPTS ASED(P)K CODE CAR(1)K BTY PIC<(/)<K UNUSED CAR(4)K

Page 85: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 85/161

Udhaya’s PL/I Material 6/06/2003 Page:- 85 / 161

PARTQ@ PIC<(0)<K SUPP9IER CAR<(4)<;

READ 2I9E (TAPE) SET(P);SE9ECT (ISSUES.CODE);

EN (<1<) CA99 PROCESSQISSUES;EN (<<) CA99 PROCESSQRECEIPTS;

END;

To ot*t i" 9OCATE !o%e:9OCATE OUT 2I9E (TAPEOUT) SET(B);  /' 0 is outut data area

for 7&ic& ointer is '/ 

Note tat te SET *a#a!ete# is o*tio"al. E $ol% aJe $o%e% as belo3DC9 OUT CAR(56) ASED(B);9OCATE OUT 2I9E (TAPEOUT);

 /' ear*ier dec*aration s&ou*d &ae een .,L 0 ,%(R=8) B(S+.=)D'/

C&*'7 S*+'

DC9 A(166) 2IED DEC() CONTRO99ED /' ( does not e5ist &ere '/  A99OCATE A;  /' Storage for ( is a**ocated &ere '/ GET 9IST(A);TOTA9 H SUM(A);2REE A;  /' Storage for ( is de-a**ocated &ere '/ 

Note tat $o"t#olle% Ja#iables a+te# allo$atio" eist "til te a#e e*li$itl +#ee%. Tea#e "ot a++e$te% b blo$8 bo"%a#ies. 2o# a##as te sie s*e$i+i$atio" !a be %e+e##e%"til A99OCATE

DC9 A(') 2IED DEC() CONTRO99ED; A99OCATE A(166);

DC9 TA9E('K') IN(1) CONTRO99ED; A99OCATE TA9E(166K166);

Note tat a #e*eat allo$atio" be+o#e a +#ee #eslts i" a "e3 ,e"e#atio" o+ te Ja#iable. Te*#eJios ,e"e#atio" is *se% i"to a sta$8 !ea"t +o# sto#i", !lti*le ,e"e#atio"s o+$o"t#olle% Ja#iables. A +#ee 3ill te" $ase te *#eJios ,e"e#atio" to be *o**e% ot o+te sta$8. Ea!*le +ollo3s:

DC9 U22 CAR(166) CONTRO99ED; A99OCATE U22;U22 H <TIS IS 2IRST GENERATION O2 U22<;PUT 9IST(U22);  /' t&is is first generation of uff '/ 

 A99OCATE U22;

U22 H <TIS IS SECOND GENERATION O2 U22<;PUT 9IST(U22);  /' t&is is second generation of uff'/ 2REE U22;PUT 9IST(U22);  /' t&is is first generation of uff '/ 2REE U22;  /' o B in e5istence '/ 

Te A99OCATION() bilt i" +"$tio" #et#"s a <1< i+ te Ja#iable as bee" allo$ate%.Else it #et#"s a <6<. $a" be a" ele!e"t Ja#iable "a!eK a !ao# st#$t#e "a!e o# a""sbs$#i*te% a##a "a!e.

 

Page 86: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 86/161

Udhaya’s PL/I Material 6/06/2003 Page:- 86 / 161

DC9 1 PRODUCT ASED(B)K  DESCRIPTION CAR(6)K  CODE 2IED DEC(/);

DC9 P POINTER;

 A99OCATE PRODUCT SET(P); /' note t&at is not c&anged ! t&is '/  P-PRODUCT.DESCRIPTION H <SCRE<;

 /' PR.,0 is referenced ! a *ocator Aua*ifier '/  

2REE P-PRODUCT;  /' R++ t&e storage for t&e aria*e t&is 7a!'/ 

DC9 NU99 UI9TIN;  /' LL is a ui*tin function 7&ic& returns a LL ointer '/ 

Storage ,ontro*  Allo$atio" +o# a ,iJe" Ja#iable $a" ta8e *la$e stati$allK (be+o#e te ee$tio" o+ te*#o,#a!) o# %"a!i$all (%#i", ee$tio"). A Ja#iable tat is allo$ate% stati$all #e!ai"sallo$ate% +o# te %#atio" o+ te *#o,#a!. A Ja#iable tat is allo$ate% %"a!i$all#eli"7ises its sto#a,e eite# *o" te te#!i"atio" o+ te blo$8 $o"tai"i", tat Ja#iable o#

at o# #e7estK %e*e"%i", *o" its sto#a,e $lass.

•  AUTOMATIC s*e$i+ies tat sto#a,e is allo$ate% *o" ea$ e"t# to te blo$8 tat$o"tai"s te sto#a,e %e$la#atio". Te sto#a,e is #elease% 3e" te blo$8 is eite%.

• STATIC s*e$i+ies tat sto#a,e is allo$ate% 3e" te *#o,#a! is loa%e%. Te sto#a,e is"ot +#ee% "til *#o,#a! ee$tio" is $o!*lete%.

• CONTRO99ED s*e$i+ies tat o !ai"tai" +ll $o"t#ol oJe# te allo$atio" a"% +#eei",o+ sto#a,e 3it te A99OCATE a"% 2REE state!e"ts. Mlti*le allo$atio"s o+ tesa!e $o"t#olle% Ja#iable i" te sa!e tas8K 3itot i"te#Je"i", +#eei",K sta$8,e"e#atio"s o+ te Ja#iable.

• ASEDK li8e CONTRO99EDK s*e$i+ies tat o !ai"tai" +ll $o"t#ol oJe# sto#a,eallo$atio" a"% +#eei",. Mlti*le allo$atio"s a#e "ot sta$8e% bt a#e aJailable at a"ti!e. Ea$ allo$atio" $a" be i%e"ti+ie% b te Jale o+ a lo$ato# Ja#iable.

Te %e+alt sto#a,e $lass is AUTOMATIC

 (utomatic and ased aria*es can &ae interna* scoe on*! .

Static and contro**ed aria*es can &ae interna* or e5terna* scoe#

S+- S*+' +&7 A*-)'Yo se stati$ sto#a,e 3e" te Ja#iable is lo$al to te *#o$e%#e a"% te Jale it$o"tai"s !st be saJe% bet3ee" s$$essiJe i"Jo$atio"s. a#iables %e$la#e% 3it te

STATIC att#ibte a#e allo$ate% *#io# to #""i", a *#o,#a!. Te #e!ai" allo$ate% "til te*#o,#a! te#!i"ates

E(+' A: PROC OPTIONS(MAIN);

  .  .  .  : PROC;  DEC9ARE STATIC INTERNA9;

Page 87: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 87/161

Udhaya’s PL/I Material 6/06/2003 Page:- 87 / 161

.  .  .  END ;

END A;

 Alto, te Ja#iable is allo$ate% t#o,ot te *#o,#a!K it $a" be #e+e#e"$e% o"l3iti" *#o$e%#e o# a" blo$8 $o"tai"e% i" .

A)+- S*+' +&7 A*-)' Ato!ati$ Ja#iables a#e allo$ate% o" e"t# to te blo$8 i" 3i$ te a#e %e$la#e%. Te$a" be #eallo$ate% !a" ti!es %#i", te ee$tio" o+ a *#o,#a!. Yo $o"t#ol tei#allo$atio" b o# %esi," o+ te blo$8 st#$t#e. Te s"ta +o# te AUTOMATIC att#ibteis:

DC9 2IED IN(1) AUTOMATIC;

E(+' A: PROC;

  .

  .  .  CA99 ;  :PROC;  DEC9ARE (KY) AUTO;  .  .  .  END ;  .  .  .  CA99 ;

Ea$ ti!e *#o$e%#e is i"Jo8e%K te Ja#iables a"% Y a#e allo$ate% sto#a,e. 3e" te#!i"ates te sto#a,e is #elease%K a"% te Jales te $o"tai" a#e lost.

 A##a bo"%sK st#i", le",tsK a"% a#ea sies +o# ato!ati$ Ja#iables $a" be s*e$i+ie% ase*#essio"s.

 A:PROC;  DEC9ARE N 2IED IN;  .  .  .  :PROC;

  DEC9ARE STR CAR(N);

C&*'7 S*+' +&7 A*-)'a#iables %e$la#e% as CONTRO99ED a#e allo$ate% o"l 3e" te a#e s*e$i+ie% i" a"

 A99OCATE state!e"t. Yo aJe i"%iJi%al $o"t#ol oJe# ea$ $o"t#olle% Ja#iable. a$o"t#olle% Ja#iable #e!ai"s allo$ate% "til a 2REE state!e"t tat "a!es te Ja#iable ise"$o"te#e% o# "til te e"% o+ te *#o,#a! i" 3i$ it is allo$ate%.

Co"t#olle% Ja#iables a#e i"%e*e"%e"t o+ te *#o,#a! blo$8 st#$t#e.E(+'

Page 88: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 88/161

Udhaya’s PL/I Material 6/06/2003 Page:- 88 / 161

 A: PROC;  DC9 CONTRO99ED;  CA99 ;  .  .  .  :PROC;  A99OCATE ;  .  .  .  END ;

END A;Te Ja#iable $a" be #e+e##e% to 3iti" te *#o$e%#e a"% tat *a#t o+ te *#o$e%#e Atat +ollo3s ee$tio" o+ te CA99 state!e"t.

ALLOCATE S+''& * C&*'7 V+*-+'Te A99OCATE state!e"t allo$ates sto#a,e +o# $o"t#olle% Ja#iablesK i"%e*e"%e"t o+*#o$e%#e blo$8 bo"%a#ies. Te bo"%s o+ $o"t#olle% a##asK te le",ts o+ $o"t#olle%st#i",sK a"% te sie o+ $o"t#olle% a#easK as 3ell as tei# i"itial JalesK $a" also be

s*e$i+ie% at te ti!e te A99OCATE state!e"t is ee$te%.

• I+ a bo"%K le",tK o# sie is e*li$itl s*e$i+ie% i" a" A99OCATE state!e"tK itoJe##i%es tat ,iJe" i" te DEC9ARE state!e"t.

• I+ a bo"%K le",tK o# sie is s*e$i+ie% b a" aste#is8 i" a" A99OCATE state!e"tK tebo"%K le",tK o# sie is ta8e" +#o! te $##e"t ,e"e#atio".

DC9 (6) 2IED IN CT9; A99OCATE ;  /' t&e uer ound is ta6en as 28 from t&e .,L statement '/ 

DC9 (6) CAR() CONTRO99ED; A99OCATE () CAR(4);

 /' .,L uer ound and *engt& are oerridden '/ 

• I"itial Jales a#e assi,"e% to a Ja#iable *o" allo$atio"K i+ it as a" INITIA9 att#ibte i"eite# te A99OCATE state!e"t o# DEC9ARE state!e"t. I+ a" INITIA9 att#ibtea**ea#s i" bot DEC9ARE a"% A99OCATE state!e"tsK te INITIA9 att#ibte i" te

 A99OCATE state!e"t is se%.

FREE S+''& * C&*'7 V+*-+'Te 2REE state!e"t +#ees te sto#a,e allo$ate% +o# $o"t#olle% Ja#iables. Te sto#a,e $a"te" be se% +o# ote# allo$atio"s. 2o# $o"t#olle% Ja#iablesK te "et !ost #e$e"tallo$atio" i" te tas8 is !a%e aJailableK a"% sbse7e"t #e+e#e"$es i" te tas8 #e+e# totat allo$atio".

M)-' G'&'*+-& C&*'7 V+*-+' A" A99OCATE state!e"t +o# a Ja#iable +o# 3i$ sto#a,e 3as *#eJiosl allo$ate% a"%"ot +#ee% *ses %o3" o# sta$8s sto#a,e +o# te Ja#iable. Tis sta$8i", $#eates a "e3,e"e#atio" o+ %ata +o# te Ja#iable. Te "e3 ,e"e#atio" be$o!es te $##e"t ,e"e#atio";te *#eJios ,e"e#atio" $a""ot be %i#e$tl a$$esse% "til te $##e"t ,e"e#atio" asbee" +#ee%. e" sto#a,e +o# tis Ja#iable is +#ee%K si", te 2REE state!e"tK sto#a,e is*o**e% * +#o! te sta$8.

E(+'

Page 89: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 89/161

Udhaya’s PL/I Material 6/06/2003 Page:- 89 / 161

DC9 (16K6) CAR() CT9; A99OCATE ; A99OCATE (16K16); A99OCATE ('K');

Te +i#st ,e"e#atio" o+ as bo"%s (16K6); te se$o"% a"% ti#% ,e"e#atio"s aJebo"%s (16K16). Te ele!e"ts o+ ea$ ,e"e#atio" o+ a#e all $a#a$te# st#i",s o+ le",t.

Te aste#is8 "otatio" $a" also be se% i" a DEC9ARE state!e"tK bt as a %i++e#e"t!ea"i",.

E(+'DC9 Y CAR(') CT9K

  N 2IED IN;  NH6;

  A99OCATE Y CAR(N);  A99OCATE Y;

Te le",t o+ te $a#a$te# st#i", Y is ta8e" +#o! te *#eJios ,e"e#atio" "less it is

s*e$i+ie% i" a" A99OCATE state!e"tK i" 3i$ $ase Y is ,iJe" te s*e$i+ie% le",t. Tisallo3s o to %e+e# te s*e$i+i$atio" o+ te st#i", le",t "til te a$tal allo$atio" o+sto#a,e.

C&*'7 S*))*'e" a st#$t#e is $o"t#olle%K a" a##asK st#i",sK o# a#eas it $o"tai"s $a" be a%stable.2o# tis #easo"K o a#e allo3e% to %es$#ibe te #elatiJe st#$t#i", i" a" A99OCATEstate!e"t.

E(+'@DC9 1 A CT9K

  (-16:16)K  C CAR(') ARYING;

 A99OCATE 1 AK  (1:16)K  C CAR ();

2REE A;

E(+'DC9 1 A CT9K

  (NKM)K  C CAR(9) ARYING;

N H -16;M H 16;

9 H ; A99OC A;2REE A;

B)-"-& F)&-& * C&*'7 V+*-+'Te (LL,(0I ui*t-in function #et#"s a bi"a# Jale o+ *#e$isio" (1K6) i"%i$ati",te "!be# o+ ,e"e#atio"s tat o $a" a$$ess i" te $##e"t tas8 +o# a ,iJe" $o"t#olle%Ja#iable. A##a-a"%li", +"$tio"s .IM K 3i$ %ete#!i"es te ete"t o+ a s*e$i+ie%%i!e"sio" o+ a" a##aK a"% LB. and %B.K 3i$ %ete#!i"e te lo3e# a"%**e# bo"%K #es*e$tiJelK o+ a s*e$i+ie% %i!e"sio" o+ a ,iJe" a##a. Te

Page 90: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 90/161

Udhaya’s PL/I Material 6/06/2003 Page:- 90 / 161

,RR+0S0R(G+   bilt-i" +"$tio" #et#" te a!o"t o+ sto#a,e #e7i#e% b a*a#ti$la# Ja#iable. S0R(G+  #et#"s allo$ate% sto#a,e +o# a Ja#iable. 2o# st#i",sK tebilt-i" +"$tio" L+G0%  #et#"s te $##e"t le",t o+ te st#i",.

B+'7 S*+' +&7 A*-)' A %e$la#atio" o+ a base% Ja#iable is te a!o"t o+ sto#a,e #e7i#e% a"% its att#ibtes. Alo$ato# Jale i%e"ti+ies te lo$atio" o+ te ,e"e#atio". A base% Ja#iable $a" be se% to%es$#ibe eisti", %ataK to obtai" sto#a,e b !ea"s o+ te A99OCATE state!e"tK o# toa$$ess %ata i" a b++e# b !ea"s o+ te 9OCATE state!e"t o# READ (3it SET o*tio")state!e"t.

DC9 2IED IN ASED(P);

Tis %e$la#es tat #e+e#e"$es to K e$e*t 3e" te #e+e#e"$e is e*li$itl 7ali+ie%K sete Ja#iable P to lo$ate te sto#a,e +o# .

I" te +ollo3i", ea!*leK te a##as A a"% C #e+e# to te sa!e sto#a,e. Te ele!e"ts a"% C (K1) also #e+e# to te sa!e sto#a,e.

DC9 A (K) CAR() ASED(P)K  CAR() ASED(B)K  C (K) CAR();

P H ADDR(C);B H ADDR (A(K1));

Note% )hen a based *ariab$e is o*er$aid in this wa!" no new storage is a$$ocated Thebased *ariab$e 'ses the sa#e storage as the *ariab$e on which it is o*er$aid +A+,"-. inthe e/a#p$e.

L+* D++

• Te#e a#e t3o t*es o+ lo$ato# %ata: *oi"te# a"% o++set.

• Te Jale o+ a *oi"te# Ja#iable is e++e$tiJel a" a%%#ess o+ a lo$atio" i" sto#a,e

#elatiJe to te sta#t o+ te Ji#tal a%%#ess s*a$e ( Z66666666Z).• Te Jale o+ a" o++set Ja#iable s*e$i+ies a lo$atio" #elatiJe to te sta#t o+ a" AREA

Ja#iable a"% #e!ai"s Jali% 3e" te a#ea is assi,"e% to a %i++e#e"t *a#t o+ sto#a,e.• e" a" o++set Ja#iable is se% i" a #e+e#e"$eK its Jale is i!*li$itl $o"Je#te% to a

*oi"te# Jale.• E*li$it $o"Je#sio" o+ a" o++set to a *oi"te# Jale is a$$o!*lise% si", te POINTER

bilt-i" +"$tio".

DC9 P POINTERK O O22SET()K AREA;P H POINTER(OK);

• Te O22SET bilt-i" +"$tio" $o!*le!e"ts te POINTER bilt-i" +"$tio" a"% #et#"sa" o++set Jale %e#iJe% +#o! a ,iJe" *oi"te# a"% a#ea.

L+* )+--+-&9o$ato# 7ali+i$atio" is te asso$iatio" o+ o"e o# !o#e lo$ato# #e+e#e"$es 3it a base%#e+e#e"$e to i%e"ti+ a *a#ti$la# ,e"e#atio" o+ a base% Ja#iable. Tis is $alle% a lo$ato#-7ali+ie% #e+e#e"$e. Te $o!*osite s!bol - #e*#ese"ts 7ali+ie% b o# *oi"ts to.

E(+'@P - is a base% Ja#iable a"% P is a lo$ato# Ja#iable.

Page 91: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 91/161

Udhaya’s PL/I Material 6/06/2003 Page:- 91 / 161

Re+e#e"$e to a base% Ja#iable $a" also be i!*li$itl 7ali+ie%. Te lo$ato# #e+e#e"$e se%to %ete#!i"e te ,e"e#atio" o+ a base% Ja#iable tat is i!*li$itl 7ali+ie% is te o"e%e$la#e% 3it te base% Ja#iable.

E(+'DC9 2IED IN ASED(P);

 A99OCATE ;H 1;

Re+e#e"$es to $a" also be e*li$itl lo$ato#-7ali+ie% as +ollo3s:

P- H P- 1;B H P;B- H B- 1;

e$ase te lo$ato# %e$la#e% 3it a base% Ja#iable $a" also be base%K a $ai" o+ lo$ato#7ali+ie#s $a" be i!*lie%.

E(+'DEC9ARE (P(16)KB) POINTERK

  R POINTER ASED (B)K  ASED (P())K  ASED (R); 

 A99OCATE RKK;

 /' a** references e*o7 are a*id '/ 

 /' P=3) - V '/  /' V '/ 

 /' - R - '/  /' R - '/ 

 /' '/ 

L'8' L+* )+--+-&DEC9ARE ASED (P)K

  P POINTER ASED (B)K  B O22SET (A);

 A99OCATE P;  /' &ae to do t&is first to ma6e instance of P '/  A99OCATE ;   /' o7 7e can ma6e an instance of '/ 

Te #e+e#e"$es: ? P-? and -P-   all #e*#ese"t t#ee leJels o+ lo$ato#7ali+i$atio" a"% a#e e7iJale"t 3as o+ #e+e#e"$i", .

POINTER V+*-+' +&7 A*-)'

 A *oi"te# Ja#iable is %e$la#e% $o"tetall i+ it a**ea#s i" te %e$la#atio" o+ a base%Ja#iableK as a lo$ato# 7ali+ie#K i" a ASED att#ibteK o# i" te SET o*tio" o+ a" A99OCATEK 9OCATEK o# READ state!e"t.

S'-& P-&'* V+*-+'

• NU99 ( ) #et#"s "ll *oi"te# Jale

•  SYSNU99 ( ) #et#"s "ll *oi"te# Jale. Use +o# stati$ *oi"te# a"% o++set Ja#iables

• POINTERADD(KY) . is a *oi"te#K Y is a 2IED IN(1)

• POINTERA9UE(). is 2IED IN(1)

Page 92: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 92/161

Udhaya’s PL/I Material 6/06/2003 Page:- 92 / 161

• POINTER(KY). is a" O22SET K Y is a" AREAK #et#"s a POINTER.

•  A READ state!e"t 3it te SET o*tio".

•  A" A99OCATE state!e"t.

• assi,"!e"t o+ te Jale o+ a"ote# lo$ato# Ja#iableK o# a lo$ato# Jale #et#"e% ba se#-%e+i"e% +"$tio".

B)-"I& F)&-& * B+'7 V+*-+'Te  (..R  bilt-i" +"$tio" #et#"s a *oi"te# Jale tat i%e"ti+ies te +i#st bte o+ aJa#iable. Te +0R4(..R bilt-i" +"$tio" #et#"s a *oi"te# Jale tat is te a%%#ess o+te +i#st ee$te% i"st#$tio" i+ te e"t# 3e#e to be i"Jo8e%.

I" ,e"e#alK te Jale o+ te NU99 bilt-i" +"$tio" is se% 3e"eJe# a *oi"te# (o# o++set)Ja#iable %oes "ot i%e"ti+ a lo$atio" i" sto#a,e. Te#e a#e !a" 3as a *oi"te# $a"a$7i#e te "ll Jale:1. assi,"!e"t o+ te NU99 bilt-i" +"$tio". Assi,"!e"t o+ te ENTRYADDR bilt-i" +"$tio" o+ a *#o$e%#e tat as "ot bee"

+et$e%. Assi,"!e"t o+ te Jale #et#"e% b te ADDR bilt-i" +"$tio" +o# a" "allo$ate%

$o"t#olle% Ja#iable.

/. It $a" also a$7i#e te sste! "ll Jale b te assi,"!e"t o+ te SYSNU99 bilt-i"+"$tio".

ALLOCATE S+''& * B+'7 V+*-+'Te A99OCATE state!e"t allo$ates sto#a,e +o# base% Ja#iables a"% sets a lo$ato#Ja#iable tat $a" be se% to i%e"ti+ te lo$atio"K i"%e*e"%e"t o+ *#o$e%#e blo$8bo"%a#ies.

 A99OCATE (based&*ariab$e VK based&*ariab$eKXW)  VIN ( area&reference)W

VSET ($ocator&reference)W

• IN :-S*e$i+ies te a#ea Ja#iable i" 3i$ te sto#a,e is allo$ate%.

SET :- S*e$i+ies a lo$ato# Ja#iable tat is set to te lo$atio" o+ te sto#a,eallo$ate%. I+ te SET o*tio" is "ot s*e$i+ie%K te %e$la#atio" o+ te base%Ja#iable !st s*e$i+ a lo$ato# Ja#iable.

Sto#a,e is allo$ate% i" a" a#ea 3e" te IN o*tio" is s*e$i+ie% o# te SET o*tio" s*e$i+iesa" o++set Ja#iable.

FREE S+''& * +'7 8+*-+'Te 2REE state!e"t +#ees te sto#a,e allo$ate% +o# base% a"% $o"t#olle% Ja#iables.

2REE $ocator&0'a$ifier&1based&*ariab$e  VIN (area&reference)W

REFER O-& ?S'"D'-&-& D++ A sel+-%e+i"i", st#$t#e $o"tai"s i"+o#!atio" abot its o3" +iel%sK s$ as te le",t o+ ast#i",. A base% st#$t#e $a" be %e$la#e% to !a"i*late tis %ata. St#i", le",tsK a##abo"%sK a"% a#ea sies $a" all be %e+i"e% b Ja#iables %e$la#e% 3iti" te st#$t#e.

Te Ja#iableK 8"o3" as te obe$t o+ te RE2ER o*tio"K !st be a !e!be# o+ te%e$la#e% st#$t#e.

It !st be REA9 2IED INARY(*K6).

Page 93: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 93/161

Udhaya’s PL/I Material 6/06/2003 Page:- 93 / 161

E(+'DEC9ARE 1 STR ASED (P)

  2IED INARYK  Y (9 RE2ER ())K  9 2IED INARY INIT(1666);

Tis %e$la#atio" s*e$i+ies tat te base% st#$t#e STR $o"sists o+ a" a##a Ya"% a" ele!e"t . e" STR is allo$ate%K te **e# bo"% is set to te $##e"tJale o+ 9 3i$ is assi,"e% to . 2o# a" ote# #e+e#e"$e to YK s$ as a READstate!e"t tat sets PK te bo"% Jale is ta8e" +#o! .

E(+'DEC9ARE 1 STR ASED(P)K

  (MKN)K  ARR( I RE2ER (M) K  RE2ER(N) )K  ;

e" tis st#$t#e is allo$ate%K te Jales assi,"e% to I a"% set te bo"%s o+te t3o %i!e"sio"al a##a ARR

E(+'DC9 1 REC ASED (P)K

  NK  A(M RE2ER(N))K  M INITIA9 (166);

 A99OCATE REC;N H 54;RITE 2I9E () 2ROM (REC);

54 ele!e"ts o+ REC a#e 3#itte". It 3ol% be a" e##o# to atte!*t to +#ee REC attis *oi"tK si"$e N !st be #esto#e% to te Jale it a% 3e" allo$ate% (tat isK166). I+ N is assi,"e% a Jale ,#eate# ta" 166K a" e##o# o$$#s 3e" te RITEstate!e"t is e"$o"te#e%.

A*'+ D++ +&7 A*-)' A#ea a#iables %es$#ibe a#eas o+ sto#a,e tat a#e #ese#Je% +o# te allo$atio" o+ base%Ja#iables. Tis #ese#Je% sto#a,e $a" be allo$ate% toK a"% +#ee% +#o!K base% Ja#iables bte A99OCATE a"% 2REE state!e"ts. A#ea Ja#iables $a" aJe a" sto#a,e $lass a"%!st be ali,"e%.

e" a base% Ja#iable is allo$ate% a"% a" a#ea is "ot s*e$i+ie%K te sto#a,e is obtai"e%+#o! 3e#eJe# it is aJailable.

Yo !i,t 3a"t to i%e"ti+ te lo$atio"s o+ base% Ja#iables 3iti" a" a#ea Ja#iable #elatiJeto te sta#t o+ te a#ea Ja#iable. O++set Ja#iables a#e *#oJi%e% +o# tis *#*ose.

 A Ja#iable is ,iJe" te AREA att#ibte $o"tetall b its a**ea#a"$e i" te O22SETatt#ibte o# a" IN o*tio"K o# b e*li$it %e$la#atio". Te s"ta +o# te AREA att#ibte is:

 AREA V ( ' e*#essio" V RE2ER (Ja#iable)W ) W

I+ e*#essio"K o# 'K is "ot s*e$i+ie%K te %e+alt is 1666Use ' +o# AREA 3it $o"t#olle% att#ibteK o# 3e" a" AREA is *asse% as a"a#,!e"t to a $alle% *#o$e%#e 3e#e te AREA *a#a!ete# $a" be %e$la#e% 3ita ' so tat te sie $a" be *i$8e% * +#o! te a#,!e"t

Page 94: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 94/161

Udhaya’s PL/I Material 6/06/2003 Page:- 94 / 161

E(+' AREA 7'+*+-& +*':DEC9ARE AREA1 AREA (666)K

  AREA AREA;

O' D++ +&7 A*-)'O++set %ata is se% e$lsiJel 3it a#ea Ja#iables. Te Jale o+ a" o++set Ja#iablei"%i$ates te lo$atio" o+ a base% Ja#iable 3iti" a" a#ea Ja#iable #elatiJe to te sta#t o+te a#ea

DC9 Ja#iable-"a!e O22SET (a#ea-Ja#iable)

S'-& O' V+*-+'Te Jale o+ a" o++set Ja#iable $a" be set i" a" o"e o+ te +ollo3i", 3as:

• a" A99OCATE state!e"t

• assi,"!e"t o+ te Jale o+ a"ote# lo$ato# Ja#iableK o# a lo$ato# Jale #et#"e% ba se#-%e+i"e% +"$tio".

• assi,"!e"t o+ te NU99 bilt-i" +"$tio" Jale

• si", te #et#" Jale +#o! te O22SET bilt-i" +"$tio".

E(+'@

DC9 ASED(O)K  Y ASED(P)K  A AREAK  O O22SET(A);

  A99OCATE ;  A99OCATE Y IN(A);

Te sto#a,e $lass o+ a#ea A a"% o++set O is AUTOMATIC b %e+alt. Te +i#st A99OCATEstate!e"t is e7iJale"t to:

 A99OCATE IN(A) SET(O);

Te se$o"% A99OCATE state!e"t is e7iJale"t to;

 A99OCATE Y IN(A) SET(P);

Te +ollo3i", ea!*le so3s o3 a list $a" be bilt i" a" a#ea Ja#iable si", o++setJa#iables:

DC9 A AREAK  (TK) O22SET(A)K  1 STR ASED()K  P O22SET(A)K

  DATA;

 A99OCATE STR ;TH;

NET: A99OCATE STR SET (T-P);  THT-P;  .  .  GO TO NET;

Page 95: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 95/161

Udhaya’s PL/I Material 6/06/2003 Page:- 95 / 161

T-P H NU99;READ: TH;

DO I9E ( T _H NU99);  PUT 9IST (DATA);

THT-P;  END;

A*'+ A-&'&Te Jale o+ a" a#ea #e+e#e"$e $a" be assi,"e% to o"e o# !o#e a#ea Ja#iables b a"assi,"!e"t state!e"t. A#ea-to-a#ea assi,"!e"t as te e++e$t o+ +#eei", all allo$atio"s i"te ta#,et a#ea a"% te" assi,"i", te ete"t o+ te so#$e a#ea to te ta#,et a#eaK sotat all o++sets +o# te so#$e a#ea a#e Jali% +o# te ta#,et a#ea.

E(+'DC9 ASED (O(1))K  O() O22SET (A)K  (AK) AREA;

 A99OC IN (A); H 1;

 A99OC IN (A) SET (O());

O()- H ; H A;

Usi", te POINTER bilt-i" +"$tio"K te #e+e#e"$es POINTER (O()K)- a"%O()- #e*#ese"t te sa!e Jale allo$ate% i" a#eas a"% A #es*e$tiJel.

I&) / O)) A*'+Te a#ea +a$ilit allo3s i"*t a"% ot*t o+ $o!*lete lists o+ base% Ja#iables as o"e "itKto a"% +#o! RECORD +iles. O" ot*tK te a#ea ete"tK to,ete# 3it te 14 btes o+$o"t#ol i"+o#!atio"K is t#a"s!itte%.

e$ase te ete"ts o+ a#eas $a" Ja#K +o#!at o# U +o#!at #e$o#%s sol% be se%. te!ai!! #e$o#%s le",t #e7i#e% is ,oJe#"e% b te a#ea le",t (a#ea sie 14).

L- P*'-&I" list *#o$essi",K a "!be# o+ base% Ja#iables 3it !a" ,e"e#atio"s $a" be i"$l%e% i"a list. Me!be#s o+ te list a#e li"8e% to,ete# b o"e o# !o#e *oi"te#s i" o"e !e!be#i%e"ti+i", te lo$atio" o+ ote# !e!be#s o# lists.

DC9 1 STR ASED()K  P POINTERK  DATAK  T POINTER;

 A99OCATE STR;TH;

NET: A99OCATE STR SET (T-P);  T H T-P;  . .  .  .  GO TO NET;

T-P H NU99;2o# te aboJe ea!*leK te +ollo3i", state!e"ts $a" be se% to a$$ess ea$,e"e#atio" i" t#":

Page 96: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 96/161

Udhaya’s PL/I Material 6/06/2003 Page:- 96 / 161

DO T H   I9E (T HNU99);  . . . .  . . . T - DATA . . . ;  . . . T H T-P;

END;

DEFINED A*-)'Te DE2INED att#ibte s*e$i+ies tat te %e$la#e% Ja#iable is asso$iate% 3it so!e o# allo+ te sto#a,e asso$iate% 3it te %esi,"ate% base Ja#iable.

DEC9ARE Ja#iable-"a!e DE2INED #e+e#e"$e

• ase Ja#iable $a" be ETERNA9 o# INTERNA9

• Te %e+i"e% Ja#iable !st be INTERNA9 a"% a leJel-1 i%e"ti+ie#. It $a""ot be INITIA9K AUTOMATICKASEDK CONTRO99EDK STATIC.

• Te#e a#e t#ee t*es o+ %e+i"i",: si!*leK iSUK a"% st#i", oJe#la.

S-' D'-&-&

Si!*le %e+i"i", allo3s o to #e+e# to a" ele!e"tK a##aK o# st#$t#e Ja#iable b a"ote#"a!e. Te %e+i"e% a"% base Ja#iables $a" $o!*#ise a" %ata t*eK bt te !st !at$K

E(+'@DC9 A(16K16K16)K

  1(KK) DE2 AK  (16K16) DE2 A ('K'K)K  DE2 A (9KMKN);

1 is a t#ee-%i!e"sio"al a##a tat $o"sists o+ te +i#st t3o ele!e"ts o+ ea$#o3K $ol!" a"% *la"e o+ A. is a t3o-%i!e"sio"al a##a tat $o"sists o+ te+i+t *la"e o+ A. is a" ele!e"t tat $o"sists o+ te ele!e"t i%e"ti+ie% b tesbs$#i*t e*#essio"s 9KMK a"% N.

E(+'DC9 CAR(16)K

  Y CAR() DE2 ;

Y is a $a#a$te# st#i", tat $o"sists o+ te +i#st $a#a$te#s o+ .

E(+'DC9 C AREA (66)K

  F AREA (66) DE2 C;

F is a" a#ea %e+i"e% o" C.

E(+'

DC9 1 D UNA9IGNEDK  EK  2K  G CAR(16) ARK  K  1 S UNA9IGNED DE2 DK  TK  UK  CAR(16) ARK

Page 97: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 97/161

Udhaya’s PL/I Material 6/06/2003 Page:- 97 / 161

;

S is a st#$t#e %e+i"e% o" D. 2o# si!*le %e+i"i",K te o#,a"isatio" o+ te t3ost#$t#es !st be i%e"ti$al. A #e+e#e"$e to T is a #e+e#e"$e to EK to GK a"% soo".

-SUB D'-&-& %e+i"i", a" iSUK o $a" $#eate a %e+i"e% a##a tat $o"sists o+ %esi,"ate%ele!e"ts +#o! a base a##a.

 A" iSU Ja#iable is a #e+e#e"$eK i" te sbs$#i*t list +o# te base a##aK to te it%i!e"sio" o+ te %e+i"e% a##a. Te Jale o+ I #a",es +#o! 1 to "K 3e#e " is te"!be# o+ %i!e"sio"s i" te %e+i"e% a##a.

E(+'@DC9 A (16K16)K

  (16) DE2INED (A(1SUK1SU));

is a o"e-%i!e"sio"al a##a tat $o"sists o+ a %ia,o"al o+ A.

S*-& O8'*+< D'-&-&

E(+'@DC9 A CAR (166)K

  (16K16) CAR(1) DE2 A;

is a t3o-%i!e"sio"al a##a tat $o"sists o+ all te ele!e"ts i" te $a#a$te# st#i", A.

E(+'DC9 (16) CAR(1)K

  CAR (16) DE2 ; is a $a#a$te# st#i", tat $o"sists o+ all te ele!e"ts i" te a##a .

POSITION A*-)'Te POSITION att#ibte $a" be se% o"l 3it st#i",-oJe#la %e+i"i", a"% s*e$i+ies tebit o# $a#a$te# 3iti" te base Ja#iable at 3i$ te %e+i"e% Ja#iable is to be,i".

E(+'@

DC9 C (16K16) IT (1)K  IT(/6) DE2 C POS(6);

is a bit st#i", tat $o"sists o+ /6 ele!e"ts o+ CK sta#ti", at te 6t ele!e"t.

INITIAL A*-)'Te INITIA9 att#ibte s*e$i+ies a" i"itial Jale o# Jales assi,"e% to a Ja#iable at te ti!e

sto#a,e is allo$ate% +o# it. O"l o"e i"itial Jale $a" be s*e$i+ie% +o# a" ele!e"t Ja#iable;!o#e ta" o"e $a" be s*e$i+ie% +o# a" a##a Ja#iable. A st#$t#e Ja#iable $a" bei"itialise% o"l b se*a#ate i"itialisatio" o+ its ele!e"ta# "a!esK 3ete# te a#eele!e"t o# a##a Ja#iables.

Te INITIA9 att#ibte as t3o +o#!s. te +i#st s*e$i+ies a" i"itial $o"sta"tK e*#essio"K o#+"$tio" #e+e#e"$eK 3ose Jale is assi,"e% to a Ja#iable 3e" sto#a,e is allo$ate% to it.Te se$o"% +o#! s*e$i+ies tatK t#o, te CA99 o*tio"K a *#o$e%#e is i"Jo8e% to*e#+o#! i"itialisatio" at allo$atio". Te Ja#iable is i"itialise% b assi,"!e"t %#i", te

Page 98: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 98/161

Udhaya’s PL/I Material 6/06/2003 Page:- 98 / 161

ee$tio" o+ te $alle% #oti"e (#ate# ta" b tis #oti"e bei", i"Jo8e% as a +"$tio" tat#et#"s a Jale to te *oi"t o+ i"Jo$atio"). Te s"ta +o# te INITIA9 att#ibteis:

DC9 *ariab$e&na#e attrib'te  INITIA9 ( ite#" ite#KX)

e#e ite! isinitia$&constant 2 reference 2 e/pression 2 +iteration factor. iteration&ite#)here Initia$ constant is one of the fo$$owing 3 or & Arith#etic constant bit constant Character constant entr! constant fi$e constant $abe$ constant 

 2o# a Ja#iable tat is allo$ate% 3e" te *#o,#a! is loa%e%K tat isK a stati$ Ja#iableK3i$ #e!ai"s allo$ate% t#o,ot ee$tio" o+ te *#o,#a!K a" Jale s*e$i+ie% i" a"INITIA9 att#ibte is assi,"e% o"l o"$e. (Stati$ sto#a,e +o# +et$e% *#o$e%#es isallo$ate% a"% i"itialise% ea$ ti!e te *#o$e%#e is loa%e%).

2o# ato!ati$ Ja#iablesK 3i$ a#e allo$ate% at ea$ a$tiJatio" o+ te %e$la#i", blo$8K a"s*e$i+ie% i"itial Jale is assi,"e% 3it ea$ allo$atio".

2o# base% a"% $o"t#olle% Ja#iablesK 3i$ a#e allo$ate% at te ee$tio" o+ A99OCATEstate!e"ts (also 9OCATE state!e"ts +o# base% Ja#iables)K a" s*e$i+ie% i"itial Jale isassi,"e% 3it ea$ allo$atio". o3eJe#K tis i"itialisatio" o+ $o"t#olle% Ja#iables $a" beoJe##i%%e" i" te A99OCATE state!e"t.

I"itial Jales s*e$i+ie% +o# a" a##a a#e assi,"e% to s$$essiJe ele!e"ts o+ te a##a i"#o3-!ao# o#%e# (+i"al sbs$#i*t Ja#i", !ost #a*i%l). I+ too !a" i"itial Jales a#es*e$i+ie%K te e$ess Jales a#e i,"o#e%; i+ "ot e"o, a#e s*e$i+ie%K te #e!ai"%e# o+ tea##a is "ot i"itialise%.

O"l $o"sta"t Jales 3it "o o*e#atio"sK +o# ea!*leK o# ^ACZK $a" be s*e$i+ie% i" teINITIA9 att#ibte +o# stati$ Ja#iablesK e$e*t tat te NU99 bilt-i" +"$tio" $a" be se%to i"itialise a stati$ *oi"te# Ja#iable.

E(+'DC9 C CAR() STATIC INIT ((<A< <C<))

E(+'(() <A<) is e7iJale"t to (<AA<)(() (<A<)) is e7iJale"t to (<A<K<A<)(() (1)<A<) is e7iJale"t to (<A<K<A<)

Note tat +i#st i"%e is st#i", #e*etitio" +a$to# ( ()<< is <<). Te ote# i"%e iste ite#atio" +a$to# ( ()()<< is <<K<<).

E(+'I" te +ollo3i", ea!*leK 3e" sto#a,e is allo$ate% +o# NAMEK te $a#a$te#$o"sta"t ^ON DOEZ (*a%%e% o" te #i,t to 16 $a#a$te#s) is assi,"e% to it:

DC9 NAME CAR(16) INIT(^ON DOEZ);

I" te +ollo3i", ea!*leK 3e" PI is allo$ate%K it is i"itialise% to te Jale .1/14:

Page 99: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 99/161

Udhaya’s PL/I Material 6/06/2003 Page:- 99 / 161

DC9 PI 2IED DEC (K/) INIT (.1/14);

Te +ollo3i", ea!*le s*e$i+ies tat A is to be i"itialise% 3it te Jale o+ tee*#essio" 'C:

DEC9ARE A INIT (('C));

Te +ollo3i", ea!*les illst#ate te se o+ a +"$tio" #e+e#e"$e to i"itialise aJa#iable:

DEC9ARE INIT(SBRT(F));

DEC9ARE TA9E(166K16) INITIA9 (( 6(6)K (6) (()K));2i#st 6 ele!e"ts a#e set to e#o. Te#ea+te# te *atte#" KKK is #e*eate%6 ti!es.

E(+'DC9 TA9E (6K6) INITIA9 CA99 SETQUP(KY);

DC9 A(1) CAR(1) INITIA9( <ON DOE<K 'K  <RICARD RO<K  <MARY SMIT<); /'on*! 1st? 3rd and Et& e*ements inited'/ 

DC9 (16K16) DECIMA9 2IED() INIT (()6K(1)K6(6));

DC9 1 C(5)K  D INIT(6)K  /' on*! first e*ement Jeroed '/   E INIT((5)6);  /' a** e*ements Jeroed '/  

E(+' 7'&*+-& POINTERS 

&&USERAA1 O MSGC9ASSHAKNOTI2YHUSERAA&&MYSTEP EEC PROCHIE91C9GKREGION.P9IH1M&&P9I.SYSIN DD 'LPROCESS ATTRIUTES(2U99)KNOT(<_<);

MYPROG: PROCEDURE OPTIONS(MAIN);DC9 1 9IN= ASED(P)K

DATA CAR(56)K NET POINTER;

DC9 (EADKTIS) POINTER;DC9 COUNT 2IED DEC();DC9 U22ER CAR(56);DC9 NU99 UI9TIN;

 A99OCATE 9IN= SET(EAD);

COUNTH1;PUT STRING(U22ER) EDIT(COUNTK<ACDE2GI=9MNOPBRS<)(2()KA);EAD-DATAHU22ER;TISHEAD;DO IH1 TO 166 Y 1; A99OCATE 9IN= SET(TIS-NET);COUNTHCOUNT1;PUT STRING(U22ER) EDIT(COUNTK<ACDE2GI=9MNOPBRS<)(2()KA);TISHTIS-NET;TIS-DATAHU22ER;

Page 100: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 100/161

Udhaya’s PL/I Material 6/06/2003 Page:- 100 / 161

END;TIS-NETHNU99;TISHEAD;DO I9E(TIS _H NU99);PUT S=IP EDIT(TIS-DATA)(A);TISHTIS-NET;

END;END MYPROG;

&'&&

E(+' 7'&*+-& CONTROLLED +*-)'&&USERAA1 O MSGC9ASSHAKNOTI2YHUSERAA&&MYSTEP EEC PROCHIE91C9GKREGION.P9IH1M&&P9I.SYSIN DD 'LPROCESS ATTRIUTES(2U99)KNOT(<_<);MYPROG: PROCEDURE OPTIONS(MAIN);DC9 1 9IN= CONTRO99EDK

DATA CAR(56);DC9 COUNT 2IED INARY(1);

DC9 U22ER CAR(56);DC9 NU99 UI9TIN;DO IH1 TO 166 Y 1; A99OCATE 9IN=;PUT STRING(U22ER) EDIT(IK<ACDE2GI=9MNOPBRS<)(2()KA);9IN=.DATAHU22ER;COUNTHCOUNT1;END;COUNTHA99OCATION(9IN=);DO IH1 TO COUNT Y 1;PUT S=IP EDIT(9IN=.DATA)(A);2REE 9IN=;

END;

END MYPROG;&'&&

E(+' 7'&*+-& AREA <' 8+*-+'&&USERAA1 O MSGC9ASSHAKNOTI2YHUSERAA&&MYSTEP EEC PROCHIE91C9GKREGION.P9IH1M&&P9I.SYSIN DD 'LPROCESS ATTRIUTES(2U99)KNOT(<_<);

MYPROG: PROCEDURE OPTIONS(MAIN);  DC9 MYAREA AREA(666);

DC9 NEMYAREA AREA(6666);DC9 (EADKTIS) O22SET(MYAREA);

DC9 1 9IN= ASED(P)K DATA CAR(56)K NET O22SET(MYAREA);

DC9 COUNT 2IED DEC();DC9 U22ER CAR(56);DC9 NU99 UI9TIN;

ON AREA EGIN;PUT S=IP 9IST(<INSU22ICIENT STORAGE IN AREA...<);STOP;

Page 101: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 101/161

Udhaya’s PL/I Material 6/06/2003 Page:- 101 / 161

END;  A99OCATE 9IN= SET(EAD);COUNTH1;PUT STRING(U22ER) EDIT(COUNTK<ACDE2GI=9MNOPBRS<)(2()KA);EAD-DATAHU22ER;TISHEAD;

DO IH1 TO 166 Y 1; A99OCATE 9IN= SET(TIS-NET);COUNTHCOUNT1;PUT STRING(U22ER) EDIT(COUNTK<ACDE2GI=9MNOPBRS<)(2()KA);TISHTIS-NET;TIS-DATAHU22ER;END;

TIS-NETHNU99;TISHEAD;

DO I9E(TIS _H NU99);

PUT S=IP EDIT(TIS-DATA)(A);TISHTIS-NET;

END;

PUT S=IP 9IST(<NO READING 2ROM NE AREA..<);NEMYAREAHMYAREA;TISHEAD;

DO I9E(TIS _H NU99);PUT S=IP EDIT(POINTER(TISKNEMYAREA)-DATA)(A);TISHPOINTER(TISKNEMYAREA)-NET;

END;END MYPROG;

&'&&

Page 102: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 102/161

Udhaya’s PL/I Material 6/06/2003 Page:- 102 / 161

SECTION 11 FILE PROCESSING

TYPES OF TRANSMISSIONStream Data +o#!atti", +a$ilitiesK less e++i$ie"tK $o"Je#sio" to $a#a$te# +o#! be+o#e

ot*t o# i"*t. St#ea! i!*lies tat te %ata o+ te +ile is a $o"ti"os st#ea! o+%ata ite!s i" $a#a$te# +o#! assi,"e% to Ja#iables o# +#o! e*#essio"s to te

st#ea!

Record No %ata +o#!atti", +a$ilitiesK !o#e e++i$ie"tK i!a,e o+ %ata i" *#o,#a! b++e#3#itte" to !e%ia. Re$o#% !o%e i!*lies tat te +ile $o"sists o+ *si$all se*a#ate#e$o#%s ea$ o+ 3i$ $o"sist o+ o"e o# !o#e %ata ite!s i" a" +o#!

R'*7 VS S*'+ I/O

  ST%EAM I/O

  (&IST / EDIT / DATA) %ECO%D

,omarison et7een t&e t7o forms of I/ • I" St#ea! I&O $o"Je#sio"s ta8e *la$e i" te *#o$ess o+ #ea%i", te %ata +#o!

Ca#a$te# to $o%e% +o#! o# Ji$e Je#sa. No s$ $o"Je#sio"s ta8e *la$e 3it #e$o#% I&O

• I" st#ea! I&O less ta" o# !o#e ta" o"e *si$al #e$o#% !a be "ee%e% to satis+ a

GET o# a PUT. I" #e$o#% I&O o"l o"e #e$o#% is ot*t o# i"*t at a ti!e +o# a READ o#RITE state!e"t.

• I" St#ea! I&O te *#o,#a!!e# 8"o3s i" a%Ja"$e te +o#!at o+ te %ata (else it is "ot*ossible to s*e$i+ te %ata ite!s o# +o#!at list). I" #e$o#% I&O *#o,#a!!e# "ee%s to8"o3 o"l RECSIFE & 9=SIFE. Data +o#!at "ee% "ot be 8"o3".

• I" #e$o#% I&O %ata i" a" +o#! ($o%e% o# $a#a$te#) !a be sto#e%. I" st#ea! +o#! te%ata as to be i" $a#a$te# +o#! o"l.

ET !!t#*

Co+#t to

Co-#- !.t#t.

o

$o#** o-#-

!.t#t. o

Co+#t o-#-

!.t#t. o

to !!t# o

$t !!t#*

%EAD

$o#** D!t! .+

%#o- o

A+o+#*.o+*

!# to 3#

-o+# 3 t#

 4o"!# 

W.t#

Page 103: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 103/161

Page 104: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 104/161

Udhaya’s PL/I Material 6/06/2003 Page:- 104 / 161

DEC9ARE 2 2I9E ARIA9EK A 2I9EK 2I9EKC 2I9EK...DO 2HAK K C;READ 2I9E (2). . . ;...END

FILE ATTRIBUTE OF A DATA ITEMMain attriutes areGROUP ALTERNATIVES DEFAULTUsa,e STREAM RECORD STREAM

2"$tio" INPUT OUTPUT UPDATE INPUT A$$ess SEBUENTIA9 DIRECT DIRECT++e#i", U22ERED UNU22ERED U22EREDS$o*e ETERNA9 INTERNA9 ETERNA9

otes on  (ttriutes• RECORD Asso$iate% Je#bs OPENK C9OSEK READK RITEK

RERITE. DE9ETE  STREAM Asso$iate% Je#bs OPENK C9OSEK GETK PUT

• INPUT I"*t o"l  OUTPUT Ot*t o"l

UPDATE ali% o"l +o# RECORD !o%e. T#a"s!issio" i" eite#

%i#e$tio"

• SEBUENTIA9 ali% i" RECORD MODE o"l. Re$o#%s a$$esse% i"*si$al se7e"$e

DIRECT ali% i" RECORD MODE o"l. Re$o#%s a$$esse% i" a"o#%e# b =EY. I!*lies =EYED att#ibte.

• VUNWU22ERED Re$o#% +iles o"l. U22ERED is %e+alt +o#SEBUENTIA9

• ENIRONMENT SAM REGIONA9(1) INDEED CONSECUTIE 2 2 K 9=SIFE(N)K RECSIFE(N)K=EY9ENGT(N)

• =EYED O"l RECORD +iles. It !ea"s #e$o#%s $a" bea$$esse% si", o"e o+ =EYK =EYTOK =EY2ROM o+%ata t#a"s!issio" state!e"ts

Inut / utut VersOPEN 2I9E (fi$e&reference) VSTREAM RECORDW VINPUT OUTPUT UPDATEW VDIRECT SEBUENTIA9W V U22ERED UNU22EREDW V=EYEDW

Page 105: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 105/161

Udhaya’s PL/I Material 6/06/2003 Page:- 105 / 161

VPRINTW VTIT9E (e/pression)W V9INESIFE(e/pression)WVPAGESIFE(e/pression)WXXX  /'Bot& forms of I/'/ 

GET FILE?-'"*''*'&'. /:S*'+ I/O:/PUT FILE?-'"*''*'&'. /:S*'+ I/O:/

READ FILE?-'"*''*'&'.. /:R'*7 I/O:/%RITE FILE?-'"*''*'&' /:R'*7 I/O:/RE%RITE FILE?-'"*''*'&'. /:R'*7 I/O:/DELETE FILE?-'"*''*'&' /:R'*7 I/O:/

CLOSEFILE ?fi*e-reference /:B * I/O:/

Page 106: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 106/161

Page 107: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 107/161

Udhaya’s PL/I Material 6/06/2003 Page:- 107 / 161

• I" PUT 9IST +o# *#i"te# ot*t te %ata is ot*t i" *#e%ete#!i"e% tab *ositio"ss*a$e% at 1 *ositio"s bet3ee" tabs.

• 9ist Di#e$te% %ata T#a"s!issio"

• Data Di#e$te% Data T#a"s!issio"

• E%it Di#e$te% Data T#a"s!issio"

VersOPEN X.  /' see reious section '/ C9OSEX  /' see reious section '/ GET 2I9E(+ile-#e+e#e"$e) %ata-s*e$i+i$atio" VCOPY (SYSPRINT +ile-#e+)W

VS=IP (e*#essio")W

PUT 2I9E(+ile-#e+e#e"$e) %ata-s*e$i+i$atio" VPAGEW V9INE(e*#essio")WVS=IP(e*#essio")W

PUT STRING($a#-#e+e#e"$e) %ata-s*e$i+i$atio"  /' SPRI0 of , '/ 

.ata Secifications9IST (%ata-ite!K %ata-ite!KX.)DATA (%ata-ite!K %ata-ite!KX.)EDIT (%ata-ite!K %ata-ite!KX) (+o#!at-ite!K +o#!at-ite!KX)

otesCOPY S*e$i+ies tat so#$e %ata st#ea! is 3#itte" 3itot alte#atio" o" te

s*e$i+ie% %ata setGET 2I9E(SYSIN) DATA(AKKC) COPY(DP9);

S=IP S*e$i+ies a "e3 $##e"t li"e (o# #e$o#% ) i" te %ata set;PUT 9IST (KYKF) S=IP();ot*ts o" SYSPRINT a+te# s8i**i", t#ee li"es

PAGE O"l +o# PRINT +iles. Sta#ts a "e3 *a,e.

9INE O"l +o# PRINT +iles. Ca",es li"e $o"te# Jale.

E(+'DC9 INEN 2I9E INPUT STREAM EN(otions);

• EN o*tio"s a#e 9=SIFEK RECSIFE et$. Note tat tis $a" be o!itte% i+ it iss*e$i+ie% i" te C9

• Note tat 2ile"a!e is te DD "a!e i" te #" C9 +o# tis *#o,#a!.

• INPUT o# OUTPUT att#ibte $a" be s*e$i+ie% 3it OPEN state!e"t also. Tis $a" bese+l 3e" te sa!e +ile is o*e"e% & $lose% & o*e"e% & $lose% i" o"e #" +i#st 3it o"e!o%e a"% te" 3it a"ote#.

• De+alt is INPUT "less te +ile as te PRINT att#ibte i" 3i$ $ase it %e+alts toOUTPUT.

E(+'DC9 INEN 2I9E STREAM INPUT EN(2 9=SIFE(56));

Page 108: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 108/161

Udhaya’s PL/I Material 6/06/2003 Page:- 108 / 161

Print (ttriute• Use tis +o# *#i"te# ot*t.

• Tis 3ill e"able o*tio"s o" PUT li8e PAGEK S=IP( )K 9INE( ) et$.

• Tis att#ibte $a" be se% o"l 3e" STREAM a"% OUTPUT a#e ote# att#ibtes.

• Tis att#ibte $ases +i#st bte o+ ea$ #e$o#% o+ te %ata set to be #ese#Je% +o#$a##ia,e $o"t#ol $a#a$te#

DC9 PRINTR 2I9E OUTPUT STREAM EN(2 9=SIFE(41));

Note #e$o#% sie is sie o+ *#i"t li"e *ls o"e *ositio"

DC9 PRINTR 2I9E OUTPUT STREAM PRINT EN(2 9=SIFE(1));DC9 PRINTU2 CAR(1);PUT 2I9E(PRINTR) 9IST(PRINTU2);

  itot *#i"t att#ibte te +ollo3i", state!e"ts a#e se%

DC9 PRINTR 2I9E OUTPUT STREAM EN(2 9=SIFE(1));DC9 AREA CAR(16);

PUT 2I9E(PRINTR) 9IST(AREA);

itot PRINT att#ibte PUT e"$ases $a#a$te# st#i",s i" 7otes. 2o# te 7otes t3o*ositio"s a#e "ee%e% (e"$e AREA is o"l 16 $a#s 3i%e). Also "ote tat te 9=SIFEis o"l 1 as 3e %o "ot "ee% a $a##ia,e $o"t#ol $a#a$te#.

DC9 I 2IED INARY(1);IH9INENO(PRINTR)  /'returns a*ue of t&e LI+ counter maintained ! PL/I '/ 

St#ea! 2iles a#e ato!ati$all o*e"e% 3it +i#st GET o# PUT.

PAGESIFE a"% 9INESIFE +o# PRINT +iles sol% be s*e$i+ie% o"l i" OPEN state!e"t.OPEN 2I9E(PRINTR) PAGESIFE(6) 9INESIFE(16);

De+alt ot*t is to SYSPRINT 3it %e+alt li"e sie o+ 16.OJe##i%e tis bOPEN 2I9E(SYSPRINT) 9INESIFE(1);

Te TIT9E att#ibte i" te OPEN state!e"t is se% to s*e$i+ te DD "a!eOPEN 2I9E(DATAIN) TIT9E(2I9EA);  /' IL+( is t&e .. name'/ 

Note tat 2I9E att#ibtes $a" be s*e$i+ie% i" te C9K DC9 a"% OPEN state!e"ts. Tea#e !e#,e% at OPEN ti!e.

Te C9OSE 2I9E(DATAIN); state!e"t is se% to $lose te +ile. P#o,#a! e"% alsoato!ati$all $loses all +iles

+dit .irected I/ • E%it Di#e$te% I&O oJe#$o!es so!e o+ te li!itatio"s o+ 9IST %i#e$te% I&O li8e "ee% +o#

s*a$es o# $o!!as to se*a#ate %ata (3asta,e o+ s*a$e) o# *#i"ti", at *#e%ete#!i"e%tab *ositio"s +o# *#i"te# ot*t.

• E%it I&O li8e St#ea! I&O %eals o"l i" $a#a$te# %ata.

Co"si%e# te +ollo3i", Data 3i$ is i"te"%e% to be #ea% 3it 9IST %i#e$te% I&OGET 9IST(EMPNUMKEMPNAME);

E!*loee E!*loee

Page 109: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 109/161

Udhaya’s PL/I Material 6/06/2003 Page:- 109 / 161

N!be# Na!e1/405KSRINIAS=AMAT

Note te $o!!a se*a#ati", te t3o %ata ite!s

2o# EDIT %i#e$te% I&OGET 2I9E(fi*ename) EDIT(data*ist ) (format*ist );GET EDIT(EMPNUMKEMPNAME) (CO9UMN(1)K2(5)KA(1));

E!*loee E!*loeeN!be# Na!e1/405SRINIAS =AMAT

Note te abse"$e o+ bla"8 o# $o!!a to se*a#ate te t3o %ata ite!s2o#!at i%e"ti+ie#s a#e

 A(") " Al*a!e#i$ $a#a$te#s2(!K") 2ie% *oi"t 3it te *#e$isio" o+ !K"(") S8i* " *ositio"sCO9UMN(") Data sta#ts +#o! $ol!" "

Note tat i" te eJe"t o+ i"s++i$ie"t +o#!at i%e"ti+ie#s te set o+ i%e"ti+ie#s *#oJi%e% a#ese% a,ai" sta#ti", 3it te +i#st +o#!at i%e"ti+ie# 

GET EDIT(AKKC) (2(/)K2()); A - 2(/) - 2()C - 2(/)

E$ess +o#!at i%e"ti+ie#s a#e i,"o#e%.

Te I&O $o"ti"es a$#oss #e$o#% bo"%a#ies "til all te i%e"ti+ie#s aJe bee"#ea% o# 3#itte"

A B

DC9 A CAR(06);DC9 CAR(/6); Re$o#% bo"%a#GET EDIT (AK) (A(06)KA(/6));

A B

DC9 A CAR(06);

DC9 CAR(/6); Re$o#% bo"%a#GET EDIT (AK) (CO9UMN(1)KA(06)KCO9UMN(1)KA(/6));

 Alte#"atelKDC9 A CAR(06);DC9 CAR(/6);GET EDIT (AK) (A(06)K(16)KA(/6));

E(+'@To #ea% +i#st +o#t *ositio"s o+ ea$ #e$o#%

1 70 71 80 1 50

1 70 1 60

Page 110: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 110/161

Udhaya’s PL/I Material 6/06/2003 Page:- 110 / 161

DC9 2IE9DQ1 CAR(/6);DO IH1 to 16;

GET EDIT(2IE9DQ1) (CO9UMN(1)KA(/6));END;

Data ite!s !a be Data a,,#e,ates

E(+'@DC9 TA9E(166) 29OAT DEC(4);GET EDIT(TA9E) (CO9UMN(1)K2(4K));

 /' note t&at 188 records 7i** e read to satisf! t&is read '/ 

DC9 TA9E(166) 29OAT DEC(4);GET EDIT((TA9E(=) DO =H1 TO 6)) (CO9UMN(1)K2(4K));

 /' note t&at 8 records 7i** e read to satisf! t&is read '/ 

DC9 TA9E(166) 29OAT DEC(4);GET EDIT(TA9E) (6 2()K6 2(/));

 /' different data formats for eac& of t&e 8 e*ements '/ 

DC9 A CAR(06);GET EDIT (SUSTR(AK6K6)) (A(6));

 /' read into *ast 28 ositions of ( '/ 

PUT EDIT (<MY NAME<) (A(0));PUT EDIT(A'KC&D) (2(16)K 2(5K));

Mo#e ta" o"e EDIT list a"% 2ORMAT list !a be s*e$i+ie%

GET EDIT(data *ist ) (format *ist ) (data *ist ) (format *ist ) (data *ist ) (format *ist )E(+'@

PUT EDIT (AKKC) (2(1)K2(1K)KA())

  (DKEK2) ((16)K2(K)KCO9UMN(46)KA(0));

I&O $a" be to a st#i", i" !e!o# #ate# ta" to a 2I9E

PUT STRING (2IE9DQ1) EDIT (AKKC) (A(6)KA(16)K2());GET STRING (2IE9DQ1) EDIT (AKKC) (A(6)KA(16)K2());

Tis o*tio" $a" be se% to e++e$t CAR to $o%e% a#it!eti$ o# Ji$e Je#sa $o"Je#sio".

%*--& ='+7-&PUT EDIT(<TIS IS A EADING STARTING IN CO9UMN <)

(PAGEKCO9UMN()KA);  /'t&e comi*er ca*cu*ates 7idt& of ('/ PUT EDIT(MMK<&<KDDK<&<KYY) (AKAKAKAKA);

PUT EDIT(MMK<&<KDDK<&<KYY) ( A);PUT EDIT(<EMP9OYEE NO. NAME<) (S=IP()KA)(<RATE OURS DEDUCTION NET PAY<) (CO9(/6)KA);

PUT EDIT (AKKCKDKEK2) (PAGEK(2()K2(K1))); /' format is eAuia*ent to ==)?=3?1)? =)?=3?1)? =)?=3?1))'/ 

ormat Identifiers A(3) Ca#a$te# +iel% o+ 3i%t 3

 A Ca#a$te# +iel% o+ 3i%t %ete#!i"e% b te %ata ite! it #e*#ese"ts

Page 111: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 111/161

Udhaya’s PL/I Material 6/06/2003 Page:- 111 / 161

(3) it +iel% o+ 3i%t 3

it +iel% o+ 3i%t %ete#!i"e% b te %ata ite! it #e*#ese"ts

E(3K%) 2loati", *oi"t "otatio" (e.,. 46E1). is te total 3i%t o+ te $a#a$te##e*#ese"tatio" i"$l%i", %e$i!al *oi"t (i+ a") si,"s a"% te %esi,"atio"E. 2o# ea!*le 14.E6 K E(16K)K 3 is 16. Te "!be# o+ si,"i+i$a"t%i,its is %1 3e#e % %i,its a#e te +#a$tio"al *o#tio". Te aboJe Jalete#e+o#e is ot*t as bb1.4E60

2(3) 2iel% $o"tai"s 3 $a#a$te#s $o"tai"i", a +ie% *oi"t %e$i!al Jale.1 2() 1-1 2() SIFE e##o#  -1 2(/) -11 2() bb1

2(3K%) i%t o+ $a#a$te# +iel% is 3 a"% % *ositio"s a#e to #i,t o+ %e$i!al*oi"t.1./ 2(/K6) b1

1./ 2(4K) 1./1./ 2(0K) 1./61./ 2(4K1) b1.1./ 2(K) SIFE e##o#  1.4 2(/K6) b1/

(3) S8i* 3 $a#a$te#s i" i"*t o# ot*t

P Pi$t#e +o#!at $a#a$te#s > - F J & K . .Use% to e%it "!e#i$ %ata i" +ie% %e$i!al *oi"t +o#!at.

CO9UMN(") Sta#t +#o! Col!" "

9INE(") S8i* to li"e "

PAGE S8i* to "e3 *a,e (ot*t o"l)

S=IP O" i"*t $o"ti"e 3it "et #e$o#%O" ot*t S=IP(") 3e#e "H6 s**#ess li"e +ee%K "H1 *#i"t o" "et li"eK" H e*#essio" 3e#e "-1 li"es a#e s8i**e%.

.ata .irected Inut Ea$ ite! i" te i"*t is i" te +o#! o+ a" assi,"!e"t state!e"t tat s*e$i+ies bot Jalea"% te i%e"tit o+ te Ja#iable to 3i$ it is to be assi,"e%.

E(+'@

Te i"*t st#ea! $ol% $o"tai"

 AH1.1KH06KCH<SED<KDH<1611<;

GET DATA(AKKCKD);

GET DATA(KDKAKC);  /' 7ou*d 7or6 Qust as 7e** '/ 

GET DATA(AKKCKDKE); /' not an error# + is suerf*uous and is ignored '/ 

Page 112: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 112/161

Udhaya’s PL/I Material 6/06/2003 Page:- 112 / 161

GET DATA(AKCKD );  /'+RRR@# Identifier in inut stream ut not in +0'/ 

 /' t&is raises t&e (M+ condition 7&ic& can e &and*ed '/  /' ! an (M+=S4SI) '/ 

GET DATA;  /' a** items in stream u to t&e semico*on are inut# %o7eert&e data names must &ae een defined rior to t&is oint '/ 

Te COUNT(+ile"a!e) #et#"s te %ata ite!s i"*t %#i", last GETDC9 IN2I9E 2I9E INPUT STREAM;GET 2I9E(IN2I9E) DATA;IHCOUNT(IN2I9E);

 .ata .irected utut  

DC9 A 2IED DEC() INIT(6);DC9 2IED DEC() INIT(6);DC9 C 2IED DEC() INIT(10);

PUT DATA (AKKC);

Ot*ts - AH6 H6 CH10;Note tat A is i" TA *ositio" 1

is i" TA *ositio" C is i" TA *ositio" /

Stream i*e ,onditionsEND2I9E E"% o+ 2ile as bee" #ea$e%ENDPAGE O" *#i"te% ot*t e"% o+ a *a,e o+ ot*t as bee" $o!*lete%TRANSMIT I"*t o# Ot*t %eJi$e %i% "ot t#a"s!it $o##e$tlRECORD Sie o+ #e$o#% i" te !e%ia %oes "ot !at$ tat %e$la#e% i" te

P9&I *#o,#a!.SIFE N!be# o+ si,"i+i$a"t %i,its i" te $o%e% a#it!eti$ ite! e$ee%s

te sie %e$la#e% +o# te i%e"ti+ie#.

I"*t - -1GET EDIT (A9UE) (2());

CONERSION Te %ata as e!be%%e% $a#a$te#s 3i$ a#e ille,al +o# t*e o+%ata ite! %e$la#e%I"*t

GET EDIT(A9UE) (CO9UMN(1)K2());

E(+' *'+ I/O//USERAA1 JOB MSGCLASS=A,NOTIFY=USERAA//MYSTEP EXEC PROC=IEL1CLG,REGION.PLI=1M//PLI.SYSIN DD *

MYPROG: PROCEDURE OPTIONS(MAIN);DCL FIELD CAR(!") INIT(#ELLO $ORLD#);PUT LIST (FIELD);GET LIST (FIELD);PUT S%IP LIST(FIELD);PUT S%IP EDIT(FIELD,FIELD) (A(&),X(1),A(1));END MYPROG;

/*//GO.SYSIN DD *#SRINI'AS %AMAT#

1 0 5

Page 113: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 113/161

Udhaya’s PL/I Material 6/06/2003 Page:- 113 / 161

/*//

E(+' *'+ I/O//USERAA1 JOB MSGCLASS=A,NOTIFY=USERAA//MYSTEP EXEC PROC=IEL1CLG,REGION.PLI=1M//PLI.SYSIN DD *MYPROG: PROCEDURE OPTIONS(MAIN);DCL FIELD1 FIXED DECIMAL(,!);DCL FIELD! FIXED DECIMAL(,!);DCL SUM FIXED DECIMAL(,!);GET LIST (FIELD1,FIELD!);SUM=FIELD1FIELD!;PUT S%IP LIST(SUM);END MYPROG;

/*//GO.SYSIN DD *1!.+ -.&/*//

E(+' *'+ I/O//USERAA1 JOB MSGCLASS=A,NOTIFY=USERAA//MYSTEP EXEC PROC=IEL1CLG,REGION.PLI=1M//PLI.SYSIN DD *MYPROG: PROCEDURE OPTIONS(MAIN);DCL FIELD1 FIXED DECIMAL(,!);DCL FIELD! FIXED DECIMAL(,!);DCL SUM FIXED DECIMAL(,!);GET DATA (FIELD1,FIELD!);SUM=FIELD1FIELD!;PUT S%IP LIST(SUM);END MYPROG;

/*//GO.SYSIN DD *FIELD1=1.! FIELD!=.+;/*//

More on PRI0 i*es and Stream I/ Te o*e#ati", sste! allo3s o to se te +i#st bte o+ ea$ #e$o#% +o# a *#i"t $o"t#ol$a#a$te#. Te $o"t#ol $a#a$te#sK 3i$ a#e "ot *#i"te%K $ase te *#i"te# to s8i* to a"e3 li"e o# *a,e. I" a P9&I *#o,#a!K 3it st#ea! I&OK te se o+ a PRINT att#ibte +o# a+ile *#oJi%es a $o"Je"ie"t !ea"s o+ $o"t#olli", te laot o+ *#i"te% ot*t +#o! st#ea!-o#ie"te% %ata t#a"s!issio". Te $o!*ile# ato!ati$all i"se#ts *#i"t $o"t#ol $a#a$te#s i"#es*o"se to te PAGEK S=IPK a"% 9INE o*tio"s a"% +o#!at ite!s.

Yo $a" a**l te PRINT att#ibte to a" STREAM OUTPUT +ileK eJe" i+ o %o "oti"te"% to *#i"t te asso$iate% %ata set %i#e$tl.

,&aracter (ction  la"8 S*a$e 1 li"e be+o#e *#i"ti",

6 S*a$e li"es be+o#e *#i"ti",- S*a$e li"es be+o#e *#i"ti", No s*a$e be+o#e *#i"ti",

Page 114: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 114/161

Page 115: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 115/161

Udhaya’s PL/I Material 6/06/2003 Page:- 115 / 161

FILL INIT ("),  NO_OF_TABS INIT (3),  TAB1 INIT (30),  TAB2 INIT(60),  TAB3 INIT(90)) FIXED BIN (1, ");

E(+' +&-& TAB '-&, &8'*-&//USERAA1 JOB MSGCLASS=A,NOTIFY=USERAA//MYSTEP EXEC PROC=IEL1CLG//PLI.SYSIN DD *

MYPROG: PROCEDURE OPTIONS(MAIN);DCL A CAR(-) INIT(#1!.+#);DCL B FIXED DECIMAL(,!);DCL C FIXED BINARY(1);DCL (D,E) DECIMAL FLOAT(-);DCL F CAR(-) INIT(#1"#);DCL 1 PLITABS STATIC EXTERNAL,

! (OFFSET INIT(1+),PAGESIE INIT(-"),LINESIE INIT(1!"),

PAGELENGT INIT("),FILL1 INIT("),FILL! INIT("),FILL INIT("),N"OFTABS INIT(),TAB1 INIT(1),TAB! INIT("),TAB- INIT(+)) FIXED BIN(1,"); 

B=A;C=A;PUT S%IP LIST(A,B,C);A=#0!+.-#;B=A;C=A;PUT S%IP LIST(A,B,C);D=1.!+-E;E=1.++E0;PUT S%IP LIST(D,E,(DE));B=A/F;PUT S%IP LIST(A,F,B);END MYPROG;

/*//

E(+' *'+-& + *-& -' V-+ S*'+ D++ T*+&--&PROCESS NOT(#2#); CARDPRNT: PROC OPTIONS (MAIN); DCL TABLE FILE STREAM OUTPUT PRINT ; DCL PGNO FIXED DEC(!) INIT(1); DCL ONCODE BUILTIN;

 DCL EOF BIT(1) INIT(#"#B); DCL CARD CAR(&");ON ENDFILE(SYSIN) EOF INIT(#1#B);ON ERROR BEGIN;  ON ERROR SYSTEM;  PUT LIST (#ONCODE = #33 ONCODE);END;ON ENDPAGE (TABLE)BEGIN;  PUT FILE (TABLE) PAGE

EDIT (4CARD TO PRINT PGNO= 5,PGNO) (A,F(!));

Page 116: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 116/161

Udhaya’s PL/I Material 6/06/2003 Page:- 116 / 161

PGNO = PGNO 1;END;OPEN FILE (TABLE) PAGESIZE(52) LINESIZE (80)SIGNAL ENDPAGE(TABLE);GET LIST(CARD);DO $ILE 2EOF;  PUT FILE (TABLE) EDIT(CARD)(A);  GET LIST(CARD);END;END CARDPRNT;

Page 117: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 117/161

Page 118: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 118/161

Udhaya’s PL/I Material 6/06/2003 Page:- 118 / 161

• 2o# SAM =SDS te #e$o#%e% 8e *a%%e% o# t#"$ate% o" #i,t (i+#e7i#e%) is !oJe%

• 2o# ESDS a / $a#a$te# RA *a%%e% o# t#"$ate% o" #i,t (i+ #e7i#e%is !oJe%)

• 2o# SAM RRDS a 5 $a#a$te# #elatiJe #e$o#% "!be# *a%%e% o#t#"$ate% o" te le+t is !oJe%

E(+'@DCL INFILE FILE INPUT RECORD EN'(F RECSIE(&"));DCL OUTFILE FILE OUTPUT RECORD EN'(F RECSIE(&"));DCL DATAAREA CAR(&");

!" #$%&' RECORD *+*-.$/ *. */ $' I!O "! OPEN FILE(INFILE),FILE(OUTFILE);.READ FILE(INFILE) INTO (DATAAREA);$RITE FILE(OUTFILE) FROM(DATAAREA);..CLOSE FILE(INFILE),FILE(OUTFILE); 

C+**-+' C&* -& RECORD I/O A**e"% a $a##ia,e $o"t#ol $a#a$te# at sta#t o+ te Re$o#%

CC C7' A-&bla"8 S*a$e o"e li"e be+o#e *#i"ti",6 S*a$e t3o li"es be+o#e *#i"ti",- S*a$e t#ee li"es be+o#e *#i"ti", S**#ess s*a$e be+o#e *#i"ti",1 S8i* to $a""el 1 be+o#e *#i"ti", S8i* to $a""el be+o#e *#i"ti",.. S8i* to $a""el be+o#e *#i"ti",

 A S8i* to $a""el 16 be+o#e *#i"ti",.C S8i* to $a""el 1 be+o#e *#i"ti",

To i"%i$ate to P9&I tat ASA (A!e#i$a" Sta"%a#%s Asso$iatio") $a#a$te#s a#e bei", se%o" *#i"te# ot*t a%% te 8e3o#%  CTLASA / CTL360 to te ENV o*tio"s o+ te +ile%e$la#atio". o3eJe# "ote tat 3it CT9ASA te $a##ia,e !oJe!e"t ta8es *la$e be+o#e*#i"ti",. it CT946 it o$$#s a+te# te *#i"ti",.

E(+'@DC9 DATAQAREA CAR(56);DC9 PRINTQAREA CAR(51);DC9 PRINTR 2I9E OUTPUT RECORD EN(2 RECSIFE(51) CT9ASA );

PRINTQAREA H <1< DATAQAREA; /' (S( c&aracter is no7 919 '/ RITE 2I9E(OUT2I9E) 2ROM(PRINTQAREA);

,onsecutie .ata Sets• Use% +o# bot STREAM as 3ell as RECORD o#ie"te% I&O

• Re$o#%s 3#itte" i" o#%e# o+ *#ese"tatio" (se7e"tiall)

• Re$o#%s $a" be +et$e% se7e"tiall o"l.

Page 119: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 119/161

Udhaya’s PL/I Material 6/06/2003 Page:- 119 / 161

Stream oriented oeration on consecutie data setsUse 9IST o# EDIT o# DATA %i#e$te% I&O +o# st#ea! o*e#atio"DC9 2I9E STREAM INPUTOUTPUT VPRINTW ENIRONMENT(otions);

 /' 0&is &as een coered e5tensie*! in an ear*ier section '/

E"Ji#o"!e"t o*tio"s a#e2 2 URECSIFE(#e$o#%-le",t)9=SIFE(blo$8-sie)

T<' *'*7 *+&-H+-& )*'72 2ie%-le",tK "blo$8e%2 2ie%-le",tK blo$8e% a#iable-le",tK "blo$8e% a#iable-le",tK blo$8e%S a#iable-le",tK "blo$8e%K s*a""e%S a#iable-le",tK blo$8e%K s*a""e%

I" a se7e"tial (o# CONSECUTIE) %ata setK #e$o#%s a#e *la$e% i" *si$al se7e"$e.

 A" i"%ee% se7e"tial (o# INDEED) %ata set !st #esi%e o" a %i#e$t-a$$ess Jol!e. A"i"%e o# set o+ i"%ees !ai"tai"e% b te o*e#ati", sste! ,iJes te lo$atio" o+ $e#tai"*#i"$i*al #e$o#%s. Tis allo3s %i#e$t #et#ieJalK #e*la$e!e"tK a%%itio"K a"% %eletio" o+#e$o#%sK as 3ell as se7e"tial *#o$essi",.

 A %i#e$t (o# REGIONA9) %ata set !st #esi%e o" a %i#e$t-a$$ess Jol!e. Te #e$o#%s3iti" te %ata set $a" be o#,a"ise% i" t#ee 3as: REGIONA9(1)K REGIONA9()K a"%REGIONA9(); i" ea$ $aseK te %ata set is %iJi%e% i"to #e,io"sK ea$ o+ 3i$ $o"tai"so"e o# !o#e #e$o#%s. A 8e tat s*e$i+ies te #e,io" "!be# a"%K +o# REGIONA9() a"%REGIONA9()K i%e"ti+ te #e$o#%K allo3s %i#e$t-a$$ess to a" #e$o#%; se7e"tial*#o$essi", is also *ossible.

 A" ea!*le o+ a t*i$al 2I9E %e$la#atio" +o# a SAM =SDS is

DC9 2I9ENAME 2I9E RECORD SEBUENTIA9 =EYED INPUTEN ( SAM);

+VIRM+0 otion .,B su-arameter 2 2 X. REC2MH2 2 X.RECSIFE 9REC99=SIFE 9=SIFECT9ASA CT946=EY9ENGT =EY9EN

Page 120: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 120/161

Udhaya’s PL/I Material 6/06/2003 Page:- 120 / 161

GEN#EY :Te GEN=EY (,e"e#i$ 8e) o*tio" a**lies o"l to INDEED a"% SAM 8e-se7e"$e%%ata sets. It e"ables o to $lassi+ 8es #e$o#%e% i" a %ata set a"% to se aSEBUENTIA9 =EYED INPUT o# SEBUENTIA9 =EYED UPDATE +ile to a$$ess #e$o#%sa$$o#%i", to tei# 8e $lasses.

 A ,e"e#i$ 8e is a $a#a$te# st#i", tat i%e"ti+ies a $lass o+ 8es; all 8es tat be,i" 3itte st#i", a#e !e!be#s o+ tat $lass. 2o# ea!*leK te #e$o#%e% 8es \ACD]K \ACE]Ka"% \AD2] a#e all !e!be#s o+ te $lasses i%e"ti+ie% b te ,e"e#i$ 8es \A] a"% \A]Ka"% te +i#st t3o a#e also !e!be#s o+ te $lass \AC]; a"% te t#ee #e$o#%e% 8es $a"be $o"si%e#e% to be "i7e !e!be#s o+ te $lasses \ACD]K \ACE]K a"% \AC2]K#es*e$tiJel.

DC9 IND 2I9E RECORD SEBUENTIA9 =EYED UPDATEEN (SAM GEN=EY);

.

.

.READ 2I9E(IND) INTO(IN2IE9D) =EY (^ACZ);

.

.

.NET: READ 2I9E (IND) INTO (IN2IE9D);

.

.

.GO TO NET;

#EYLENGT= O-&:Use te =EY9ENGT o*tio" to s*e$i+ te le",t o+ te #e$o#%e% 8e +o# =EYED +iles3e#e " is te le",t. Yo $a" s*e$i+ =EY9ENGT +o# INDEED o# REGIONA9() +iles.

I+ o i"$l%e te =EY9ENGT o*tio" i" a SAM +ile %e$la#atio" +o# $e$8i", *#*osesKa"% te 8e le",t o s*e$i+ i" te o*tio" $o"+li$ts 3it te Jale %e+i"e% +o# te %atasetK te UNDE2INED2I9E $o"%itio" is #aise%.

DEFINING AND USING CONSECUTIVE DATA SETSI" a %ata set 3it $o"se$tiJe o#,a"isatio"K #e$o#%s a#e o#,a"ise% solel o" te basis o+tei# s$$essiJe *si$al *ositio"s; 3e" te %ata set is $#eate%K #e$o#%s a#e 3#itte"$o"se$tiJel i" te o#%e# i" 3i$ te a#e *#ese"te%. Yo $a" #et#ieJe te #e$o#%s o"li" te o#%e# i" 3i$ te 3e#e 3#itte"K o#K +o# RECORD I`O o"lK also i" te #eJe#seo#%e# 3e" si", te AC=ARDS att#ibte.

.efining i*es sing Record I/ DC9 +ile"a!e 2I9E RECORD

INPUT OUTPUT UPDATESEBUENTIA9U22ERED UNU22EREDENIRONMENT (o*tio"s);

So!e i!*o#ta"t ENIRONMENT o*tio"s a**li$able to $o"se$tiJe %ata sets a#e:2 2 X..RECSIFE (#e$o#%-le",t)9=SIFE (blo$8-sie)CONSECUTIE SAM RE9ATIE(")

Page 121: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 121/161

Udhaya’s PL/I Material 6/06/2003 Page:- 121 / 161

CT9ASA CT946

E>AMPLE OF PRINTING RECORD ORIENTED DATA TRANSMISSIONPRT: PROC OPTIONS(MAIN);DCL TABLE FILE RECORD INPUT SE6UENTIAL;DCL PRINTER FILE RECORD OUTPUT SE6L EN'(' BL%SIE(&7) CTLASA);DCL LINE CAR(&1) 'AR;DCL CTLCAR CAR(1) DEFINED LINE;DCL DATA CAR(&") DEFINED LINE POS(!);

DCL TABLEEOF BIT(1)INIT(4"5B); !"$' - ' .-$ "! DCL TRUE BIT(1) INIT(415B); !" '+/.-+. .4$ "! DCL FALSE BIT(1) INIT(4"5B); !" '+/.-+. -/$ "! 

ON ENDFILE(TABLE) TABLEEOF = TRUE;

OPEN FILE(TABLE), FILE(PRINTER);

READ FILE(TABLE) INTO(DATA); /" **+ $- "! CTLCAR = 415; !" ASA C7AR "! 

DO $ILE (TABLEEOF = FALSE);  $RITE FILE(PRINTER) FROM(LINE);  READ FILE(TABLE) INTO(DATA);END;CLOSE FILE(TABLE), FILE(PRINTER);END PRT;

Page 122: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 122/161

Udhaya’s PL/I Material 6/06/2003 Page:- 122 / 161

SECTION 11"C DEFINING AND USING VSAM DATA SETSe+o#e o ee$te a *#o,#a! tat a$$esses a SAM %ata setK o "ee% to 8"o3:

• Te "a!e o+ te SAM %ata set

• Te "a!e o+ te P9&I +ile

• ete# o i"te"% to sa#e te %ata set 3it ote# se#s

Te" o $a" 3#ite te #e7i#e% DD state!e"t to a$$ess te %ata set:

 //-'&+' DD DSNAME7&+',DISPOLD S=R

2o# ea!*leK i+ o# +ile is "a!e% P912I9EK o# %ata set "a!e% SAMDSK a"% o 3a"te$lsiJe $o"t#ol o+ te %ata setK e"te#:

 // PL1FILE DD DSNAMEVSAMDS, DISPOLD

To sa#e o# %ata setK se DISPHSR.

P9&l *#oJi%es s**o#t +o# t#ee t*es o+ SAM %ata sets:

• =e-se7e"$e% %ata sets (=SDS)

• E"t#-se7e"$e% %ata sets (ESDS)

• RelatiJe #e$o#% %ata sets (RRDS).

Tese $o##es*o"% #o,l to P9&l i"%ee%K $o"se$tiJeK a"% #e,io"al %ata seto#,a"isatio"sK #es*e$tiJel. Te a#e all o#%e#e%K a"% te $a" all aJe 8es asso$iate%3it tei# #e$o#%s. ot se7e"tial a"% 8ee% a$$ess a#e *ossible 3it all t#ee t*es.

 Alto, o"l 8e-se7e"$e% %ata set aJe 8es as *a#t o+ tei# lo,i$al #e$o#%sK 8ee%a$$ess is also *ossible +o# e"t#-se7e"$e% %ata sets (si", #elatiJe-bte a%%#esses) a"%#elatiJe #e$o#% %ata sets (si", #elatiJe #e$o#% "!be#s).

 All SAM %ata sets a#e el% o" %i#e$t-a$$ess sto#a,e %eJi$esK a"% a Ji#tal sto#a,eo*e#ati", sste! is #e7i#e% to se te!. SAM %oes "ot se te $o"$e*t o+ blo$8i",K#e$o#%s "ee% "ot be o+ a +ie% le",t. Te %ata ite!s a#e a##a",e% i" $o"t#ol i"te#JalsK i"$o"t#ol a#eas. A $o"t#ol i"te#Jal $a" $o"tai" o"e o# !o#e lo,i$al #e$o#%sK SAM %ata sets$a" aJe t3o t*es o+ i"%ees-*#i!e a"% alte#"ate. Yo $a" aJe o"e o# !o#e alte#"atei"%ees o" a =SDS o# a" ESDS.

 A" $a",e i" a %ata set tat as alte#"ate i"%ees !st be #e+le$te% i" all te i"%ees i+te a#e to #e!ai" se+l. Tis a$tiJit is 8"o3" as i"%e *,#a%eK a"% is %o"e b SAM+o# a" i"%e i" i"%e *,#a%e set o+ te %ata set.

e+o#e si", a SAM %ata set +o# te +i#st ti!eK o "ee% to %e+i"e it to te sste! 3it

te DE2INE $o!!a"% o+ A$$ess Meto% Se#Ji$esK te o*e#atio" o+ 3#iti", te i"itial %atai"to a "e3l $#eate SAM %ata set is #e+e##e% to as loa%i",.

Use te t#ee %i++e#e"t t*es o+ %ata sets a$$o#%i", to te +ollo3i", *#*oses:

• Use e"t#-se7e"$e% %ata sets +o# %ata tat o *#i!a#il a$$ess i" te o#%e# i" 3i$it 3as $#eate% (o# te #eJe#se o#%e#).

Page 123: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 123/161

Udhaya’s PL/I Material 6/06/2003 Page:- 123 / 161

• Use 8e-se7e"$e% %ata sets 3e" o "o#!all a$$ess #e$o#%s t#o, 8es3iti" te #e$o#%s (+o# ea!*leK a sto$8-$o"t#ol +ile 3e#e te *a#t "!be# is se%to a$$ess a #e$o#%).

• Use #elatiJe #e$o#% %ata sets +o# %ata i" 3i$ ea$ ite! as a *a#ti$la# "!be#.

o $a" a$$ess #e$o#%s i" all t*es o+ SAM %ata sets eite# %i#e$tl b !ea"s o+ a 8eKo# se7e"tiall (ba$83a#% o# +o#3a#%). Yo $a" also se a $o!bi"atio" o+ te t3o 3as:Sele$t a sta#ti", *oi"t 3it a 8e a"% te" #ea% +o#3a#% o# ba$83a#% +#o! tat *oi"t.

$e!s for Inde5ed VS(M .ata Sets=es +o# 8e-se7e"$e% %ata sets a"% +o# e"t#-se7e"$e% %ata sets a$$esse% Jia a"alte#"ate i"%e a#e *a#t o+ te lo,i$al #e$o#%s #e$o#%e% o" te %ata set. Yo %e+i"e tele",t a"% lo$atio" o+ te 8es 3e" o $#eate te %ata set. Yo $a" #e+e#e"$e te 8esi" te =EYK =EY2ROMK a"% =EYTO o*tio"s

Re*atie B!te (ddresses =RB()RelatiJe bte a%%#esses allo3 o to se 8ee% a$$ess o" a" ESDS asso$iate% 3it a=EY SEBUENTIA9 +ile. Te RAK o# 8esK a#e $a#a$te# st#i",s o+ le",t /K a"% tei#Jales a#e %e+i"e% b SAM. Yo $a""ot $o"st#$t o# !a"i*late RA i" P9&l; obtai" teRA +o# a #e$o#% b si", te =EYTO o*tio"K o" a RITE o# o" a READ state!e"t.Sbse7e"tl se a" RA i" te =EY o*tio" o+ a READ o# RERITE state!e"t.

Re*atie Record umersRe$o#%s i" a" RRDS a#e i%e"ti+ie% b a #elatiJe #e$o#% "!be# tat sta#ts at 1 a"% isi"$#e!e"te% b 1 +o# ea$ s$$ee%i", #e$o#%. =es se% as #elatiJe #e$o#% "!be#s a#e$a#a$te# st#i",s o+ le",t 5. So#$e 8e o se i" te =EY o# =EY2ROM o*tio" !st#e*#ese"t a" "si,"e% i"te,e#. I+ "ot 5 $a#a$te#s t#"$ate% o# *a%%e% 3it bla"8s(i"te#*#ete% as Fe#os) o" te le+t.

Yo %e+i"e a %i#e$t SAM %ata set b si", a +ile %e$la#atio" 3it te +ollo3i", att#ibtes:

DC9 +ile"a!e 2I9E RECORD

  INPUT OUTPUT UPDATE  DIRECT  V=EYEDW  ENIRONMENT (o*tio"s);

So!e o+ te ENIRONMENT o*tio"s a**li$able to SAM %ata sets a#e:

U2ND (")U2NI (")GEN=EYPASSORD (*ass3o#% - s*e$i+i$atio")SAM

.efining VS(M data SetsUse te DE2INE C9USTER $o!!a"% o+ A$$ess Meto% Se#Ji$es to %e+i"e a"%$atalo,e SAM %ata sets. To se te DE2INE $o!!a"%K o "ee% to 8"o3:

• Te "a!e a"% *ass3o#% o+ te !aste# $atalo,e i+ te !aste# $atalo,e is *ass3o#%*#ote$te%

• Te "a!e a"% *ass3o#% o+ te SAM *#iJate $atalo,e o a#e si", i+ o a#e "otsi", te !aste# $atalo,e

• ete# SAM s*a$e +o# o# %ata set is aJailable

Page 124: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 124/161

Udhaya’s PL/I Material 6/06/2003 Page:- 124 / 161

• Te t*e o+ SAM %ata set o a#e ,oi", to $#eate

• Te Jol!e o" 3i$ o# %ata set s to be *la$e%

• Te aJe#a,e a"% !ai!! #e$o#% sie i" o# %ata set

• Te *ositio" a"% le",t o+ te 8e +o# a" i"%ee% %ata set

• Te s*a$e to be allo$ate% +o# o# %ata set

• o3 to $o%e te DE2INE $o!!a"%

• o3 to se te A$$ess Meto% Se#Ji$es *#o,#a!.

e" o aJe te i"+o#!atio"K o a#e i" a *ositio" to $o%e te DE2INE $o!!a"% a"%te" %e+i"e a"% $atalo,e te %ata set si", A$$ess Meto% Se#Ji$es.

E>AMPLE OF DEFINING AND LOADING A VSAM ESDS

E>AMPLE OF DEFINING A VSAM ESDS CLUSTER //USERAA1 JOB MSGCLASS=A,NOTIFY=USERAA//STEP1 EXEC PGM=IDCAMS,REGION=1!%//SYSPRINT DD SYSOUT=*//SYSIN DD *

DEFINE CLUSTER 0

(NAME(USERAA.'SAM.ESDS.PLI)0'OLUMES(TSO""1)0NONINDEXED 0RECORDSIE(&" &")0TRAC%S(1 1))

/*//

E>AMPLE OF LOADING A VSAM ESDS//USERAA1 JOB MSGCLASS=A,NOTIFY=USERAA//MYSTEP EXEC PROC=IEL1CLG,REGION.PLI=1M//PLI.SYSIN DD *

MYPROG: PROCEDURE OPTIONS(MAIN);

DCL FAMFILE FILE SE6UENTIAL OUTPUT EN'('SAM);DCL IN FILE RECORD INPUT;DCL STRING CAR(&");DCL NOTEOF BIT(1) INIT(#1#B);ON ENDFILE(IN) NOTEOF=#"#B;READ FILE(IN) INTO(STRING);DO I=1 BY 1 $ILE(NOTEOF);PUT FILE(SYSPRINT) S%IP EDIT(STRING)(A);$RITE FILE(FAMFILE) FROM(STRING);READ FILE(IN) INTO(STRING);

END;PUT S%IP EDIT(I01,#RECORDS PROCESSED#)(F(),A);END MYPROG;

/*

//GO.FAMFILE DD DSN=USERAA.'SAM.ESDS.PLI,DISP=OLD//GO.IN DD *AAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBB/*//STEP! EXEC PGM=IDCAMS,REGION=1!%//SYSPRINT DD SYSOUT=*//SYSIN DD *

PRINT INDATASET(USERAA.'SAM.ESDS.PLI) CAR

Page 125: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 125/161

Udhaya’s PL/I Material 6/06/2003 Page:- 125 / 161

/*//

E>AMPLE OF DUMPING A ESDS//USERAA1 JOB MSGCLASS=A,NOTIFY=USERAA//MYSTEP EXEC PROC=IEL1CLG,REGION.PLI=1M//PLI.SYSIN DD *

MYPROG: PROCEDURE OPTIONS(MAIN);DCL FAMFILE FILE SE6UENTIAL INPUT EN'('SAM);DCL BADFILE FILE SE6UENTIAL INPUT EN'('SAM);DCL STRING CAR(&");DCL NOTEOF BIT(1) INIT(#1#B);ON ENDFILE(FAMFILE) NOTEOF=#"#B;ON UNDEFINEDFILE(BADFILE) PUT S%IP LIST(# BADFILE NOT

OPENED#);OPEN FILE(BADFILE);READ FILE(FAMFILE) INTO(STRING);DO I=1 BY 1 $ILE(NOTEOF);PUT S%IP EDIT(#RECORD NO.#,I,STRING)(A,F(),X(!),A);READ FILE(FAMFILE) INTO(STRING);

END;CLOSE FILE(FAMFILE);END MYPROG;

/*//GO.FAMFILE DD DSN=USERAA.'SAM.ESDS.PLI,DISP=OLD//

L+7-& + #SDS * I&7'('7 ESDS

• O*e" te +ile +o# =EYED SEBUENTIA9 OUTPUT a"% *#ese"t te #e$o#%s i"as$e"%i", 8e o#%e#K se te =EY2ROM o*tio".

• I+ te =SDS al#ea% $o"tai"s so!e #e$o#%sK a"% o o*e" te asso$iate% +ile 3it teSEBUENTIA9 a"% OUTPUT att#ibtesK o $a" o"l a%% #e$o#%s at te e"% o+ te%ata set.

• =EYED SEBUENTIA9 OUTPUT +ile is se% 3it a RITE 2ROM =EY2ROMstate!e"t. Te %ata !st be *#ese"te% i" as$e"%i", 8e o#%e#.

E>AMPLE OF DEFINING A #SDS USING IDCAMS//USERAA1 JOB MSGCLASS=A,NOTIFY=USERAA//STEP1 EXEC PGM=IDCAMS,REGION=1!%//SYSPRINT DD SYSOUT=*//SYSIN DD *

DEFINE CLUSTER 0(NAME(USERAA.'SAM.%SDS.PLI)0'OLUMES(TSO""1)0INDEXED 0%EYS(!" ") 0

RECORDSIE(! &")0TRAC%S( 1))/*//

E(+' +7-& + VSAM #SDS ')'&-+<//USERAA1 JOB MSGCLASS=A,NOTIFY=USERAA//MYSTEP EXEC PROC=IEL1CLG,REGION.PLI=1M//PLI.SYSIN DD *MYPROG: PROCEDURE OPTIONS(MAIN);

Page 126: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 126/161

Udhaya’s PL/I Material 6/06/2003 Page:- 126 / 161

DCL DIREC FILE RECORD SE6UENTIAL OUTPUT %EYED EN'('SAM);DCL CARD CAR(&");DCL NAME CAR(!") DEF CARD POS(1); DCL NUMBER CAR() DEF CARD POS(!1);DCL OUTREC CAR(!) DEF CARD POS(1);DCL NOTEOF BIT(1) INIT(#1#B);ON ENDFILE(SYSIN) NOTEOF=#"#B;ON E(DIREC) BEGINPUT SIP EDIT(:DUPLICATE E IN T7IS INPUT;:,CARD)(A)

ENDOPEN FILE(DIREC) OUTPUTGET FILE(SYSIN) EDIT(CARD)(A(&"));DO $ILE(NOTEOF);<RITE FILE(DIREC) FROM(OUTREC) EFROM(NAME)GET FILE(SYSIN) EDIT(CARD)(A(&"));

END;CLOSE FILE(DIREC)END MYPROG;

/*//GO.DIREC DD DSN=USERAA.'SAM.%SDS.PLI,DISP=OLD

//GO.SYSIN DD *ACTION,G. 1-!BA%ER,R. 1!BRAMLEY,O.. !+&/*//STEP! EXEC PGM=IDCAMS,REGION=1!%//SYSPRINT DD SYSOUT=*//SYSIN DD *

PRINT INDATASET(USERAA.'SAM.%SDS.PLI) CAR/*//

E(+' *'+7-& + VSAM #SDS -& 7-*' 7'//USERAA1 JOB MSGCLASS=A,NOTIFY=USERAA//MYSTEP EXEC PROC=IEL1CLG,REGION.PLI=1M//PLI.SYSIN DD *PROCESS ATTRIBUTES(FULL);

MYPROG: PROCEDURE OPTIONS(MAIN);DCL DIREC FILE RECORD DIRECT INPUT EED EN=(=SAM)DCL CARD CAR(&");DCL NAME CAR(!") DEF CARD POS(1);DCL NUMBER CAR() DEF CARD POS(!1);DCL INREC CAR(!);DCL NOTEOF BIT(1) INIT(#1#B);DCL GOODEFLAG BIT(1) INIT(:1:B)ON ENDFILE(SYSIN) NOTEOF=#"#B;ON E(DIREC) BEGIN

PUT SIP EDIT(:IN=ALID E IN INPUT RECORD>:,CARD)(A)GOODEFLAG>:0:B

ENDOPEN FILE(DIREC)GET FILE(SYSIN) EDIT(CARD)(A(&"));DO $ILE(NOTEOF);READ FILE(DIREC) INTO(INREC) E(NAME);IF GOOD%EYFLAG TEN PUT S%IP

EDIT(#RECORD IS= #,INREC)(A);GOOD%EYFLAG=#1#B;

Page 127: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 127/161

Page 128: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 128/161

Udhaya’s PL/I Material 6/06/2003 Page:- 128 / 161

GET FILE(SYSIN) EDIT(NAME,NUMBER,CODE)(COLUMN(1),A(!"),A(),A(1));

END;CLOSE FILE(DIREC)PUT FILE(SYSPRINT) PAGE;OPEN FILE(DIREC) SE?UENTIAL INPUT ; !" DUMP T7E FILE "!  EOF=#"#B;ON ENDFILE(DIREC) EOF=#1#B;READ FILE(DIREC) INTO(OUTREC );DO $ILE(2EOF);PUT FILE(SYSPRINT) S%IP EDIT(OUTREC)(A);READ FILE(DIREC) INTO(OUTREC );

END;CLOSE FILE(DIREC)END MYPROG;

/*//GO.DIREC DD DSN=USERAA.'SAM.%SDS.PLI,DISP=OLD//GO.SYSIN DD *%AMAT,M.S "1AACTION,G. 1-!D

/*//

Co%es se% aboJe a#e A A%% a "e3 #e$o#%C Ca",e te "!be# o+ a" eisti", "a!eD Delete a #e$o#%

VS(M R+L(0IV+ R+,R. .(0( S+0S %'& +& RRDS - '-& +7'7K o !st o*e" te asso$iate% +ile +o# OUTPUT. Useeite# a DIRECT o# a SEBUENTIA9 +ile.

F* + DIRECT OUTPUT -'K ea$ #e$o#% is *la$e% i" te *ositio" s*e$i+ie% b te

#elatiJe #e$o#% "!be# (o# 8e) i" te =EY2ORM o*tio" o+ te RITE state!e"t.

F* + SEUENTIAL OUTPUT +ileK se RITE state!e"ts 3it o# 3itot te =EY2ROMo*tio". I+ o s*e$i+ te =EY2ROM o*tio"K te #e$o#% is *la$e% i" te s*e$i+ie% slot; i+o o!it itK te #e$o#% is *la$e% i" te slot +ollo3i", te $##e"t *ositio".

E>AMPLE OF DEFINING A VSAM RRDS USING IDCAMS//USERAA1 JOB MSGCLASS=A,NOTIFY=USERAA//STEP1 EXEC PGM=IDCAMS,REGION=1!%//SYSPRINT DD SYSOUT=*//SYSIN DD *

DEFINE CLUSTER 0(NAME(USERAA.'SAM.RRDS.PLI)0'OLUMES(TSO""1)0

NUMBERED 0RECORDSIE(!" !")0TRAC%S(! !))

/*//

E>AMPLE OF LOADING A VSAM RRDS SEUENTIALLY//USERAA1 JOB MSGCLASS=A,NOTIFY=USERAA//MYSTEP EXEC PROC=IEL1CLG,REGION.PLI=1M

Page 129: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 129/161

Udhaya’s PL/I Material 6/06/2003 Page:- 129 / 161

//PLI.SYSIN DD *MYPROG: PROCEDURE OPTIONS(MAIN);DCL NOS FILE RECORD OUTPUT DIRECT EED EN=(=SAM)DCL CARD CAR(&");DCL NAME CAR(!") DEF CARD POS(1);DCL NUMBER CAR(!) DEF CARD POS(!1);DCL IOFIELD CAR(!");DCL NOTEOF BIT(1) INIT(#1#B);ON ENDFILE(SYSIN) NOTEOF=#"#B;OPEN FILE(NOS) OUTPUTGET FILE(SYSIN) EDIT(CARD)(A(&"));DO $ILE(NOTEOF);PUT FILE(SYSPRINT) S%IP EDIT(CARD)(A);IOFIELD=NAME;<RITE FILE(NOS) FROM(IOFIELD) EFROM(NUMBER)GET FILE(SYSIN) EDIT(CARD)(A(&"));

END;PUT S%IP LIST(#END OF INPUT0000#);CLOSE FILE(NOS)END MYPROG;

/*//GO.NOS DD DSN=USERAA.'SAM.RRDS.PLI,DISP=OLD//GO.SYSIN DD *ACTION,G. 1!BA%ER,R. 1BRAMLEY,O.. !&/*//STEP! EXEC PGM=IDCAMS,REGION=1!%//SYSPRINT DD SYSOUT=*//SYSIN DD *

PRINT INDATASET(USERAA.'SAM.RRDS.PLI) CAR/*//

E>AMPLE OF ACCESSING A VSAM RRDS RANDOMLY//USERAA1 JOB MSGCLASS=A,NOTIFY=USERAA//MYSTEP EXEC PROC=IEL1CLG,REGION.PLI=1M//PLI.SYSIN DD *PROCESS NOT(#2#);

MYPROG: PROCEDURE OPTIONS(MAIN);DCL NOS FILE RECORD INPUT DIRECT EED EN=(=SAM);DCL ONCODE BUILTIN;DCL CARD CAR(&");DCL NAME CAR(!") DEF CARD POS(1);DCL NUMBER CAR(!) DEF CARD POS(!1);DCL IOFIELD CAR(!");DCL NOTEOF BIT(1) INIT(#1#B);

DCL BAD%EY BIT(1);ON ENDFILE(SYSIN) NOTEOF=#"#B;OPEN FILE(NOS)ON E(NOS) BEGINPUT SIP EDIT(:IN=ALID E; :,NUMBER)(A,A)PUT EDIT(: ONCODE IS; :,ONCODE)(A,F(@))BADE>:1:B

ENDGET FILE(SYSIN) EDIT(CARD)(A(&"));DO $ILE(NOTEOF);

Page 130: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 130/161

Udhaya’s PL/I Material 6/06/2003 Page:- 130 / 161

BAD%EY=#"#B;READ FILE(NOS) INTO(IOFIELD) E(NUMBER)IF 2BAD%EY TEN PUT FILE(SYSPRINT)

S%IP EDIT(IOFIELD)(A);GET FILE(SYSIN) EDIT(CARD)(A(&"));

END;PUT S%IP LIST(#END OF INPUT0000#);CLOSE FILE(NOS)END MYPROG;

/*//GO.NOS DD DSN=USERAA.'SAM.RRDS.PLI,DISP=OLD//GO.SYSIN DD *ACTION,G. 1!BA%ER,R. 1BRAMLEY,O.. !&%AMAT,M.S. 77/*//STEP! EXEC PGM=IDCAMS,REGION=1!%//SYSPRINT DD SYSOUT=*//SYSIN DD *

PRINT INDATASET(USERAA.'SAM.RRDS.PLI) CAR/*//

VS(M (L0+R(0+ I.++S Pairing an (*ternate Inde5 Pat& 7it& a i*ee" si", a" alte#"ate i"%eK o si!*l s*e$i+ te "a!e o+ te *at i" te DSNAME*a#a!ete# i+ te DD state!e"t asso$iati", te base %ata set&alte#"ate i"%e *ai# 3ito# P9&l +ile.

GiJe" a P9&l +ile $alle% P912I9E a"% te alte#"ate i"%e *at $alle% PERSA9PK te DDstate!e"t #e7i#e% 3ol% be:

 //PL1FILE DD DSNAMEPERSALP=, DISPOLD (*ternate Inde5es for $S.S or Inde5ed +S.Ss

T#ee A$$ess Meto% Se#Ji$es $o!!a"%s a#e se% as belo3:• DE2INE A9TERNATEINDE

%e+i"es te alte#"ate i"%e as a %ata set to SAM.• 9DINDE

*la$es te *oi"te#s to te #eleJa"t #e$o#%s i" te alte#"ate i"%e.• DE2INE PAT

%e+i"es a" e"tit tat $a" be asso$iate% 3it a P9&I +ile i" a DDstate!e"t.

E>AMPLE OF DEFINING A ALTERNATE INDE> FOR A VSAM #SDS FILE

//USERAA1 JOB MSGCLASS=A,NOTIFY=USERAA//STEP1 EXEC PGM=IDCAMS,REGION=1!%//SYSPRINT DD SYSOUT=*//SYSIN DD *

DEFINE ALTERNATEINDEX 0(NAME(USERAA.'SAM.%SDS.ALTINDX.PLI)0'OLUMES(TSO""1)0UNI6UE%EY 0%EYS( !") 0RECORDSIE(!+ +&)0

Page 131: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 131/161

Page 132: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 132/161

Udhaya’s PL/I Material 6/06/2003 Page:- 132 / 161

DCL NOTEOF BIT(1) INIT(#1#B);DCL GOOD%EYFLAG BIT(1) INIT(#1#B);ON ENDFILE(SYSIN) NOTEOF=#"#B;ON E(DIREC) BEGINPUT SIP EDIT(:IN=ALID E IN INPUT RECORD>:,CARD)(A)PUT SIP EDIT(:ONCODE IS>:,ONCODE)(A,F(8))GOODEFLAG>:0:B

ENDOPEN FILE(DIREC)GET FILE(SYSIN) EDIT(CARD)(A(&"));DO $ILE(NOTEOF);READ FILE(DIREC) INTO(INREC) E(NUMBER)IF GOOD%EYFLAG TEN PUT S%IP

EDIT(#RECORD IS= #,INREC)(A);GOOD%EYFLAG=#1#B;GET FILE(SYSIN) EDIT(CARD)(A(&"));

END;CLOSE FILE(DIREC)END MYPROG;

/*

!!GODIREC DD DSN>USERAA=SAMSDSPAT7PLI,DISP>OLD//GO.SYSIN DD *ACTION,G. 1-!BA%ER,R. 1!%AMAT,M.S 777BRAMLEY,O.. !+&/*//

Page 133: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 133/161

Udhaya’s PL/I Material 6/06/2003 Page:- 133 / 161

PL/I A&7 M)-+-& A P9&I *#o,#a! is a set o+ o"e o# !o#e *#o$e%#es.

e" te !ltitas8i", +a$ilities a#e "ot se%K te ee$tio" o+ a *#o,#a! $o!*#isi", o"e o# !o#e*#o$e%#es $o"stittes a si",le tas8K 3it a si",le +lo3 o+ $o"t#ol.

Tis ee$tio" 3it a si",le +lo3 o+ $o"t#ol is $alle% s"$#o"os.

e" !ltitas8i",K te i"Jo8i", *#o$e%#e %oes "ot #eli"7is $o"t#ol to te i"Jo8e% *#o$e%#e.I"stea%K a" a%%itio"al +lo3 o+ $o"t#ol is establise% so tat bot *#o$e%#es #" $o"$##e"tl.Tis *#o$ess is 8"o3" as atta$i", a tas8. Te atta$e% tas8 is a sbtas8 o+ te atta$i", tas8.

 A" tas8 $a" atta$ o"e o# !o#e sbtas8s. Te tas8 tat as $o"t#ol at te otset is $alle% te!ao# tas8. Te ee$tio" o+ s$ $o"$##e"t *#o$e%#es is $alle% as"$#o"os.

Te ee$tio" o+ tese *#o$e%#es $o"stittes o"e o# !o#e tas8sK ea$ asso$iate% 3it a%i++e#e"t tas8-Ja#iable.

Te tas8-#e+e#e"$e se% to asso$iate a tas8 Ja#iable 3it a tas8 is se% to i%e"ti+ te tas8. 2o#ea!*leK a+te#  CA&& IN$UT TAS(A2);

e" seJe#al *#o$e%#es a#e ee$te% as"$#o"oslK it !i,t be "e$essa# +o# te sste! tosele$t its "et a$tio" +#o! a "!be# o+ %i++e#e"t tas8s eli,ible +o# ee$tio"("ot 3aiti", +o# so!e#eso#$e o# eJe"t $o!*letio"). I+ !o#e ta" o"e s$ tas8 is +o"%K te tas8 te aJi", i,est*#io#it is %es*at$e%. Yo $a" allo3 te sste! to allo$ate *#io#ities o# o $a" assi," *#io#itiesto o# tas8s 3e" te a#e atta$e%.

P#oJisio" as bee" !a%e +o# o"e tas8 to a3ait te $o!*letio" o+ a"ote# tas8 be+o#e *#o$ee%i",.Tis *#o$ess is 8"o3" as tas8 s"$#o"iatio". I"+o#!atio" abot te state o+ a" o*e#atio" $a"be el% b a" eJe"t-Ja#iable. Ee$tio" o+ a AIT state!e"t $ases te tas8 to 3ait +o#$o!*letio" o+ te o*e#atio" asso$iate% 3it te eJe"t-Ja#iable. Yo $a" set te Jale o+ teeJe"t-Ja#iable e*li$itlK o# o $a" a**l te EENT o*tio" to tas8s a"% $e#tai" i"*t&ot*t

o*e#atio"sK i" 3i$ $ase te Jale o+ te eJe"t-Ja#iable is set as a #eslt o+ te o*e#atio".

I" ,e"e#alK te #les asso$iate% 3it te s"$#o"os i"Jo$atio" o+ *#o$e%#es a**l e7all tote as"$#o"os atta$!e"t o+ tas8s. 2o# ea!*leK ON-"its establise% *#io# to atta$!e"t o+a sbtas8 a#e i"e#ite% b te sbtas8. o3eJe#K as"$#o"os o*e#atio" i"t#o%$es so!e et#a$o"si%e#atio"sK s$ as te +a$t tat a "!be# o+ $o"$##e"t tas8s $a" i"%e*e"%e"tl #e+e# to o"eJa#iable.

T+ D++ +&7 A*-)'Yo $a" se tas8 Ja#iables to $o"t#ol te #elatiJe *#io#ities o+ tas8s. A Ja#iable is ,iJe" te TAS=att#ibte b its a**ea#a"$e i" a TAS= o*tio"K o# b e*li$it %e$la#atio".

 A tas8-Ja#iable $o"tai"s a *#io#it Jale. Tis Jale is a #eal +ie%-*oi"t bi"a# Jale o+ *#e$isio"

(1K6). Tis Jale $a" be teste% b te PRIORITY bilt-i" +"$tio" a"% !o%i+ie% b te*se%oJa#iable. Te *#io#it Jale o+ te tas8-Ja#iable is "%e+i"e% "less it is set b o"e o+ te+ollo3i",: •  Assi,"!e"t to te PRIORITY *se%oJa#iable

• PRIORITY o*tio" o+ te CA99 state!e"t tat $#eates te tas8

Page 134: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 134/161

Page 135: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 135/161

Udhaya’s PL/I Material 6/06/2003 Page:- 135 / 161

2 CA&& $%OCA TAS(T2) E:ENT(ET2);

5 CA&& $%OCA TAS(T5) E:ENT(ET5) $%IO%IT(<2);

6 CA&& $%OCA $%IO%IT(1);

P*-*-< T+Te PRIORITY *se%oJa#iable *#oJi%es a !eto% o+ setti", te *#io#it o+ a tas8 #elatiJe to te$##e"t tas8. Te e++e$t o+ te state!e"t: 

PRIORITY(T)HN;

Te *#io#it o+ tas8 T is set to te *#io#it o+ tis tas8 N. Si!ila#l PRIORITY(T) #et#"s te *#io#it#elatiJe to te Jale o+ te *a#e"t tas8.

P#io#ities $a" be $a",e% a+te# te sbtas8 is #""i",.

C*7-&+-& +&7 S<&*&-H+-& T+Te #les +o# s$o*e o+ "a!es a**l to blo$8s i" te sa!e 3a 3ete# o# "ot te a#e i"Jo8e% asK o#

bK sbtas8s. TsK %ata a"% +iles $a" be sa#e% bet3ee" as"$#o"osl ee$ti", tas8s. As a#esltK a i, %e,#ee o+ $oo*e#atio" is *ossible bet3ee" tas8sK bt tis "e$essitates so!e$oo#%i"atio". A%%itio"al #les a#e i"t#o%$e% to %eal 3it sa#i", o+ %ata a"% +iles bet3ee" tas8sK a"%te AIT state!e"t is *#oJi%e% to allo3 tas8 s"$#o"iatio". 

 A" ea!*le o+ tas8 s"$#o"iatio" is: 

P1: PROCEDURE;  CALL P! E'ENT(EP!);  CALL P E'ENT(EP);  $AIT (EP!);  $AIT (EP);  END P1;

S+*-& D++ B';''& T+No#!al #les o+ s$o*i", a**lK bt it is o# #es*o"sibilit to e"s#e tat t3o #e+e#e"$es to te sa!eJa#iable $a""ot be i" e++e$t at o"e ti!e i+ eite# #e+e#e"$e $a",es te Jale o+ te Ja#iable. Yo $a"%o so b i"$l%i", a" a**#o*#iate AIT state!e"t at a sitable *oi"t i" o# so#$e *#o,#a! to +o#$es"$#o"iatio" o+ te tas8s i"JolJe%.

S+*-& F-' B';''& T+ A +ile is sa#e% bet3ee" a tas8 a"% its sbtas8 i+ te +ile is o*e" at te ti!e te sbtas8 is atta$e%. I+a sbtas8 sa#es a +ile 3it its atta$i", tas8K te sbtas8 !st "ot atte!*t to $lose te +ile. Asbtas8 !st "ot a$$ess a sa#e% +ile 3ile its atta$i", tas8 is $losi", te +ile. I+ a +ile is 8"o3" to a tas8 a"% its sbtas8K a"% te +ile 3as "ot o*e" 3e" te sbtas8 3as atta$e%K

te +ile is "ot sa#e%.

T'-& +&7 S'-& E8'& V+*-+'Te COMP9ETION bilt-i" +"$tio" #et#"s te $##e"t $o!*letio" Jale o+ te eJe"t-#e+e#e"$e. TisJale is <6< i+ te eJe"t is i"$o!*leteK o# <1< i+ te eJe"t is $o!*lete. Te STATUS bilt-i" +"$tio" #et#"s te $##e"t stats o+ te eJe"t-#e+e#e"$e. Tis Jale is "o"e#oi+ te eJe"t-Ja#iable is ab"o#!alK o# e#o i+ it is "o#!al. 

Page 136: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 136/161

Udhaya’s PL/I Material 6/06/2003 Page:- 136 / 161

Te COMP9ETION a"% STATUS *se%oJa#iables $a" be se% to set te t3o Jales o+ a" eJe"t-Ja#iable. Alte#"atiJelK it is *ossible to assi," te Jales o+ o"e eJe"t-Ja#iable to a"ote# i" a"assi,"!e"t state!e"t. tese !ea"sK o $a" !a#8 te sta,es o+ a tas8; a"%K b si", a AITstate!e"t i" o"e tas8 a"% si", te COMP9ETION *se%oJa#iable o# a" eJe"t assi,"!e"t i"a"ote# tas8K o $a" s"$#o"ie a" sta,e o+ o"e tas8 3it a" sta,e o+ a"ote#. Yo sol% "ot atte!*t to assi," a $o!*letio" Jale to a" eJe"t-Ja#iable $##e"tl asso$iate% 3it a"a$tiJe tas8 o# 3it a" i"*t&ot*t eJe"t.

T'*-&+-& T+ A tas8 te#!i"ates 3e" o"e o+ te +ollo3i", o$$#s: • Co"t#ol +o# te tas8 #ea$es a RETURN o# END state!e"t +o# te i"itial *#o$e%#e o+ te tas8.

• Co"t#ol +o# te tas8 #ea$es a" EIT state!e"t.

• Co"t#ol +o# te tas8K o# +o# a" ote# tas8K #ea$es a STOP state!e"t. • Te blo$8 i" 3i$ te tas8 3as atta$e% te#!i"ates (eite# "o#!all o# ab"o#!all).

• Te atta$i", tas8 itsel+ te#!i"ates.

• I!*li$it a$tio" +o# te ERROR $o"%itio" o# te a$tio" o" "o#!al #et#" +#o! a" ERROR ON-"it is$a##ie% ot.

 Te#!i"atio" is "o#!al o"l i+ te +i#st ite! o+ te aboJe list a**lies. I" all ote# $asesK te#!i"atio" isab"o#!al. To aJoi% "i"te"tio"al ab"o#!al te#!i"atio" o+ a sbtas8K a" atta$i", tas8 sol% al3as 3ait +o#$o!*letio" o+ te sbtas8 i" te sa!e blo$8 tat atta$e% te sbtas8K be+o#e te tas8 itsel+ isallo3e% to te#!i"ate. 

e" a tas8 is te#!i"ate%K te +ollo3i", a$tio"s a#e *e#+o#!e%: 1. All i"*t&ot*t eJe"ts tat 3e#e i"itiate% i" te tas8 a"% a#e "ot et $o!*lete a#e set $o!*leteK

a"% tei# stats Jales (i+ still e#o) a#e set to 1. Te #eslts o+ te i"*t&ot*t o*e#atio"s a#e "ot%e+i"e%.

. All +iles tat 3e#e o*e"e% %#i", te tas8 a"% a#e still o*e" a#e $lose%. All i"*t&ot*t $o"%itio"sa#e %isable% 3ile tis a$tio" is ta8es *la$e.

. All allo$atio"s o+ $o"t#olle% Ja#iables !a%e b te tas8 a#e +#ee%.

/. All allo$atio"s o+ base% Ja#iables !a%e b te tas8 a#e +#ee%K e$e*t tose it as allo$ate% 3iti"a" a#ea allo$ate% b a"ote# tas8 (tese a#e +#ee% 3e" te a#ea is +#ee%).

. All a$tiJe blo$8s (i"$l%i", all a$tiJe sbtas8s) i" te tas8 a#e te#!i"ate%.

4. I+ te EENT o*tio" 3as s*e$i+ie% 3e" te tas8 3as atta$e%K te $o!*letio" Jale o+ teasso$iate% eJe"t-Ja#iable is set to <1<. I+ te stats Jale is still e#o a"% te#!i"atio" isab"o#!alK te stats Jale is set to 1.

0. All #e$o#%s lo$8e% b te tas8 a#e "lo$8e%.

Page 137: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 137/161

Udhaya’s PL/I Material 6/06/2003 Page:- 137 / 161

E>IT S+''&Te EIT state!e"t i!!e%iatel te#!i"ates te tas8 tat $o"tai"s te state!e"t a"% all tas8satta$e% b tis tas8. I+ ee$te% i" a !ao# tas8K EIT #aises te 2INIS $o"%itio" i" tat tas8. O" "o#!al #et#" +#o! te2INIS ON-"itK te tas8 ee$ti", te state!e"t a"% all o+ its %es$e"%a"t tas8s a#e te#!i"ate%.TsK EIT ee$te% i" a !ao# tas8 is e7iJale"t to a STOP state!e"t. Te s"ta +o# te EITstate!e"t is: EIT;

Te $o!*letio" Jales o+ te eJe"t Ja#iables asso$iate% 3it tese tas8s a#e set to <1<K a"% tei#stats Jales to 1 ("less te a#e al#ea% "o"e#o).

$CLIEL1C//IEL1CL PROC LNGPRFX=#IEL.'1R1M1#,LIBPRFX=#CEE#,..//L%ED EXEC PGM=IE$L,PARM=#XREF,LIST#,COND=(7,LT,PLI),REGION=1!%//SYSLIB DD DSN=&LIBPRFX..SIBMTASK,DISP=SHR

// DD DSN=LIBPRFX..SCEEL%ED,DISP=SR

.

.

$CL * OS/PL/I2o# a P9&I *#o,#a!K te DD state!e"t SYS9I 3ill "o#!all %e+i"e te P9&I 9ib#a#. Te sb#oti"eso+ te P9&I 9ib#a# tat a#e "ee%e% at li"8-e%it ti!e a#e sto#e% i" t#ee %ata setsK SYS1.P9IASE (tebase lib#a#)K SYS1.P9ITAS= (te !ltitas8i", lib#a#)K a"% SYS1.SIMASE (te Co!!o" lib#a#).Te base lib#a# $o"tai"s all te P9&I 9ib#a# sb#oti"es #e7i#e% b a "o"!ltitas8i", *#o,#a!. Te!ltitas8i", lib#a# $o"tai"s sb#oti"es tat a#e *e$lia# to !ltitas8i",K to,ete# 3it !ltitas8i",Ja#ia"ts o+ so!e o+ te base lib#a# sb#oti"esK a"% te Co!!o" 9ib#a# sb#oti"es tat a#e$o!!o" to P9&I e#sio" Release a"% C&06. 2o# li"8-e%iti", a "o"-!ltitas8i", *#o,#a!K s*e$i+ o"l te base lib#a# i" te SYS9I DD

state!e"t. Te +ollo3i", DD state!e"t 3ill sall s++i$e: //SYSLIB DD DSN=SYS1.PLIBASE,DISP=SR

  // DD DSN=SYS1.SIBMBASE,DISP=SR

 2o# li"8-e%iti", a !ltitas8i", *#o,#a!K s*e$i+ bot te !ltitas8i", lib#a# a"% te base lib#a#.e" atte!*ti", to #esolJe a" ete#"al #e+e#e"$eK te li"8a,e e%ito# 3ill +i#st sea#$ te !ltitas8i",lib#a#. I+ it $a""ot +i"% te #e7i#e% sb#oti"eK it 3ill te" sea#$ te base lib#a#. To e"s#e tat tesea#$ is $a##ie% ot i" te $o##e$t se7e"$eK te DD state!e"ts %e+i"i", te t3o se$tio"s o+ telib#a# !st be i" te $o##e$t se7e"$e: !ltitas8i", lib#a# +i#stK base lib#a# se$o"%. Te +ollo3i",DD state!e"ts 3ill sall s++i$e: 

//SYSLIB DD DSNAME=SYS1.PLITAS%,DISP=SR  // DD DSNAME=SYS1.PLIBASE,DISP=SR  // DD DSNAME=SYS1.SIBMBASE,DISP=SR

S+'1MAIN: PROC OPTIONS(MAIN REENTRANT);DCL (TA1,TX1) TAS%;DCL (E'1,EX1) E'ENT;DCL (E1,E!) E'ENT;

COMPLETION(E1)=#1#B;COMPLETION(E!)=#"#B;

Page 138: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 138/161

Page 139: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 139/161

Udhaya’s PL/I Material 6/06/2003 Page:- 139 / 161

S+' 2 MAIN: PROC OPTIONS(MAIN REENTRANT);DCL (TA1,TX1) TAS%;DCL (E'1,EX1) E'ENT;DCL (E1,E!) E'ENT STATIC EXTERNAL;DCL (TA,TX) ENTRY;

COMPLETION(E1)=#1#B; 

COMPLETION(E!)=#"#B;CALL TA TAS%(TA1) E'ENT(E'1);CALL TX TAS%(TX1) E'ENT(EX1);$AIT(E'1);$AIT(EX1);PUT S%IP LIST(#EXITING MAIN#);

END MAIN;*PROCESS;TX: PROC;DCL (E1,E!) E'ENT STATIC EXTERNAL;DO J=1 TO !"";$AIT(E!);PUT S%IP LIST(#IN TAS% TX#);COMPLETION(E!)=#"#B;

COMPLETION(E1)=#1#B;END;END TX;

*PROCESS;TA: PROC;DCL (E1,E!) E'ENT STATIC EXTERNAL; DO I=1 TO !"";

$AIT(E1);PUT S%IP LIST(#IN TAS% TA#);COMPLETION(E1)=#"#B;COMPLETION(E!)=#1#B;

END;END TA;

Page 140: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 140/161

Udhaya’s PL/I Material 6/06/2003 Page:- 140 / 161

P*'*'* F+---'Te $o!*ile# *#oJi%es a !a$#o*#o$esso# +o# so#$e *#o,#a! alte#atio". It is ee$te% *#io# to$o!*ilatio"K 3e" o s*e$i+ te MACRO $o!*ile-ti!e o*tio". Te *#e*#o$esso# s$a"s te*#e*#o$esso# i"*t a"% ,e"e#ates *#e*#o$esso# ot*t. Te *#e*#o$esso# ot*t $a" se#Je asi"*t to te $o!*ile#.

P#e*#o$esso# state!e"tsK e$e*t tose i" *#e*#o$esso# *#o$e%#esK be,i" 3it a *e#$e"t s!bol(L). Usi", a bla"8 to se*a#ate te *e#$e"t s!bol +#o! te #est o+ te state!e"t is o*tio"al. Te *#e*#o$esso# ee$tes *#e*#o$esso# state!e"ts a"% alte#s te i"*t tet a$$o#%i",l.P#e*#o$esso# state!e"ts $a" $ase alte#atio" o+ te i"*t tet i" a" o+ te +ollo3i", 3as: <  A" i%e"ti+ie# (a"% a" o*tio"al a#,!e"t list) a**ea#i", i" te i"*t tet $a" be $a",e% to

a" a#bit#a# st#i", o+ tet.

< Yo $a" i"%i$ate 3i$ *o#tio"s o+ te i"*t tet to $o* i"to te *#e*#o$esso# ot*t.

<  A st#i", o+ $a#a$te#s #esi%i", i" a lib#a# $a" be i"$l%e% i" te *#e*#o$esso# i"*t.

P#e*#o$esso# State!e"ts: P#e*#o$esso# state!e"ts a#e ee$te% 3e" e"$o"te#e%. Yo $a": De+i"e *#e*#o$esso# "a!es si", te LDEC9ARE state!e"t. I+ a *#e*#o$esso# Ja#iable is "ot e*li$itl %e$la#e%K it is a" e##o# a"% is %ia,"ose% a"% te Ja#iable,iJe" te %e+alt att#ibte o+ CARACTER. o3eJe#K te Ja#iable is "ot a$tiJate% +o##e*la$e!e"t "less it a**ea#s i" a sbse7e"tl ee$te% LACTIATE state!e"t. Te Ja#iable$a" be #e+e#e"$e% i" *#e*#o$esso# state!e"ts. 1. A$tiJate a" i%e"ti+ie# si", te LDEC9ARE o# LACTIATE state!e"t.

. Dea$tiJate a" i%e"ti+ie# si", te LDEACTIATE state!e"tK ts te#!i"ati", #e*la$e!e"ta$tiJit.

. Ge"e#ate a !essa,e i" te $o!*ile# listi", si", te LNOTE state!e"t.

/. I"$l%e st#i", o+ $a#a$te#s i"to te *#e*#o$esso# i"*t.

. Case te *#e*#o$esso# to $o"ti"e te s$a" at a %i++e#e"t *oi"t i" te *#e*#o$esso# i"*tsi", te LGOTOK LI2K L"llK LDOK o# LEND state!e"t.

4. Ca",e Jales o+ *#e*#o$esso# Ja#iables si", te Lassi,"!e"t o# LDO state!e"t. 0. De+i"e *#e*#o$esso# *#o$e%#es si", te LPROCEDUREK LRETURNK a"% LEND

state!e"ts. A *#e*#o$esso# *#o$e%#e $a" be i"Jo8e% b a +"$tio" #e+e#e"$e i" a*#e*#o$esso# e*#essio"K o#K i+ te +"$tio" *#o$e%#e "a!e is a$tiJeK b e"$o"te#i", a+"$tio" #e+e#e"$e i" te *#e*#o$esso# s$a" o+ i"*t tet.

 I"*t Tet: Te i"*t tetK a+te# #e*la$e!e"t o+ a" a$tiJe i%e"ti+ie#s b "e3 JalesK is $o*ie% i"tote *#e*#o$esso# ot*t.

A-8' I7'&--'*.  2o# a" i%e"ti+ie# to be #e*la$e% b a "e3 JaleK te i%e"ti+ie# !st be +i#sta$tiJate% +o# #e*la$e!e"t. I"itiallK a" i%e"ti+ie# $a" be a$tiJate% b its a**ea#a"$e i" aLDEC9ARE state!e"t. It $a" be %ea$tiJate% b ee$ti", a LDEACTIATE state!e"tK a"% it$a" be #ea$tiJate% b ee$ti", a LACTIATE o# LDEC9ARE state!e"t. 

Page 141: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 141/161

Udhaya’s PL/I Material 6/06/2003 Page:- 141 / 161

 A" i%e"ti+ie# tat !at$es te "a!e o+ a" a$tiJe *#e*#o$esso# Ja#iable is #e*la$e% i" te*#e*#o$esso# ot*t b te Jale o+ te Ja#iable. e" a" i%e"ti+ie# !at$es te "a!e o+ a" a$tiJe *#e*#o$esso# +"$tio" (eite# *#o,#a!!e#-3#itte" o# bilt-i") te *#o$e%#e is i"Jo8e% a"% te i"Jo$atio" is #e*la$e% b te #et#"e% Jale. I%e"ti+ie#s $a" be a$tiJate% 3it eite# te RESCAN o# te NORESCAN o*tio"s. I+ teNORESCAN o*tio" a**liesK te Jale is i!!e%iatel i"se#te% i"to te *#e*#o$esso# ot*t. I+ teRESCAN o*tio" a**liesK a #es$a" is !a%e %#i", 3i$ te Jale is teste% to %ete#!i"e 3ete#itK o# a" *a#t o+ itK sol% be #e*la$e% b a"ote# Jale. I+ it $a""ot be #e*la$e%K it is i"se#te% i"tote *#e*#o$esso# ot*t; i+ it $a" be #e*la$e%K #e*la$e!e"t a$tiJit $o"ti"es "til "o +#te##e*la$e!e"ts $a" be !a%e. TsK i"se#tio" o+ a Jale i"to te *#e*#o$esso# ot*t ta8es *la$eo"l a+te# all *ossible #e*la$e!e"ts aJe bee" !a%e. Te s$a" te#!i"ates 3e" a" atte!*t is !a%e to s$a" beo"% te last $a#a$te# i" te*#e*#o$esso# i"*t. Te *#e*#o$esso# ot*t is te" $o!*lete a"% $o!*ilatio" $a" be,i".

P#e*#o$esso# %ata t*es a#e $o%e% a#it!eti$ a"% st#i", %ataK a"% a#e eite#:2IED DECIMA9 (K6):- A *#e*#o$esso# Ja#iable %e$la#e% 3it te 2IED att#ibte is ,iJe" te

att#ibtes DECIMA9 a"% *#e$isio" (K6). 2ie% %e$i!al $o"sta"ts !st be i"te,e#s. CARACTER Ja#i",:- A *#e*#o$esso# Ja#iable %e$la#e% 3it te CARACTER att#ibte is ,iJe"te Ja#i", att#ibte. St#i", #e*etitio" +a$to#s a#e "ot allo3e% +o# $a#a$te# $o"sta"ts.

IT Te#e a#e "o *#e*#o$esso# bit Ja#iables. o3eJe#K bit $o"sta"ts a#e allo3e%

P*'*'* P*'7)*'P#e*#o$esso# *#o$e%#es a#e +"$tio" *#o$e%#es. A *#e*#o$esso# *#o$e%#e is %eli!ite% bLPROCEDURE a"% LEND state!e"tsK a"% $o"tai"s at least o"e RETURN state!e"t. Te state!e"ts a"% ,#o*s tat $a" be se% 3iti" a *#e*#o$esso# *#o$e%#e a#e: 

1. Te *#e*#o$esso# assi,"!e"t state!e"t.

. Te *#e*#o$esso# DEC9ARE state!e"t.

. Te *#e*#o$esso# %o-,#o*.

/. Te *#e*#o$esso# GO TO state!e"t. (A GO TO state!e"t a**ea#i", i" a *#e*#o$esso#*#o$e%#e $a""ot t#a"s+e# $o"t#ol to a *oi"t otsi%e o+ tat *#o$e%#e.)

. Te *#e*#o$esso# I2 state!e"t.

4. Te *#e*#o$esso# "ll state!e"t.

0. Te *#e*#o$esso# RETURN state!e"t.

5. Te *#e*#o$esso# NOTE state!e"t.

. Te LPAGEK LS=IPK LPRINTK a"% LNOPRINT listi", $o"t#ol state!e"ts. 16. P#e*#o$esso# state!e"ts i" a *#e*#o$esso# *#o$e%#e %o "ot be,i" 3it a *e#$e"t s!bol.

11. P#e*#o$esso# *#o$e%#es $a""ot be "este%. A *#e*#o$esso# ENTRY $a""ot be i" a*#e*#o$esso# *#o$e%#e.

Page 142: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 142/161

Udhaya’s PL/I Material 6/06/2003 Page:- 142 / 161

PROCEDURE S+''&Te LPROCEDURE state!e"t is se% i" $o""$tio" 3it a LEND state!e"t to %eli!it a*#e*#o$esso# *#o$e%#e. Te s"ta +o# te LPROCEDURE state!e"t is: 

?>0K?: PROCEDURE 9(>K??>, >K??>, . .)RETURNS(CARACTER 3 FIXED );

 Abb#eJiatio": LPROC

2o# ea!*leK a *#e*#o$esso# *#o$e%#e ea%e% b: FIND:PROC(A,B,C) STATEMENT...;

 !st be i"Jo8e% +#o! a *#e*#o$esso# e*#essio" b a #e+e#e"$e o+ te +o#!:FIND(>1,>!,>)

Te Jale #et#"e% b a *#e*#o$esso# +"$tio" *#o$e%#e to te *oi"t o+ i"Jo$atio" is s*e$i+ie% bte *#e*#o$esso#-e*#essio" i" a RETURN state!e"t i" te *#o$e%#e. Te s"ta o+ te

*#e*#o$esso# RETURN state!e"t is: 

Vlabel:W RETURN(*#e*#o$esso#-e*#essio");

*#e*#o$esso#-e*#essio" Te Jale is $o"Je#te% to te RETURNS att#ibte s*e$i+ie% i" teLPROCEDURE state!e"t be+o#e it is *asse% ba$8 to te *oi"t o+ i"Jo$atio".

P*'*'* B)-"I& F)&-& A +"$tio" #e+e#e"$e $a" i"Jo8e o"e o+ a set o+ *#e%e+i"e% +"$tio"s $alle% *#e*#o$esso# bilt-i"+"$tio"s. Tese bilt-i" +"$tio"s a#e i"Jo8e% i" te sa!e 3a tat *#o,#a!!e#-%e+i"e%+"$tio"s a#e i"Jo8e%K e$e*t tat te !st be i"Jo8e% 3it te $o##e$t "!be# o+ a#,!e"ts. 

Te *#e*#o$esso# bilt-i" +"$tio"s a#e: 

COMPILETIME LENGTCOUNTER PARMSET

  INDEX SUBSTR

 Te *#e*#o$esso# ee$tes a #e+e#e"$e to a *#e*#o$esso# bilt-i" +"$tio" i" i"*t tet o"l i+ tebilt-i" +"$tio" "a!e is a$tiJe. Te bilt-i" +"$tio"s $a" be a$tiJate% b a LDEC9ARE o#LACTIATE state!e"t.

COMPILETIME B)-"I& F)&-&COMPI9ETIME #et#"s a $a#a$te# st#i",K le",t 15K i" te +o#!at o+ DDbMMMbYY!.MM.SS.Te $a#a$te# st#i", $o"tai"s te %ate a"% te ti!e o+ $o!*ilatio". Te s"ta +o#

COMPI9ETIME is: COM$I&ETIME

Te #et#"e% $a#a$te# st#i", #e*#ese"ts:  BDD D H@ ? KHMMM MH ? @H>K JAN, FEB, MAR, ?.YY Y?>

Page 143: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 143/161

Udhaya’s PL/I Material 6/06/2003 Page:- 143 / 161

H>MM M?SS S?HQ

 

Te +ollo3i", ea!*le so3s o3 to *#i"t te st#i", #et#"e% b COMPI9ETIME 3e" o#*#o,#a! is ee$te%: 

DECLARE COMPTIME CAR;  COMPTIME=####33COMPILETIME33####;  PUT EDIT (COMPTIME) (A);

COUNTER B)-"I& F)&-&COUNTER #et#"s a $a#a$te# st#i",K le",t K $o"tai"i", a %e$i!al "!be#. Te #et#"e%"!be# is 66661 +o# te +i#st i"Jo$atio"K a"% is i"$#e!e"te% b o"e o" ea$ s$$essiJei"Jo$atio". Te s"ta +o# COUNTER is: COUNTER

I+ COUNTER is i"Jo8e% !o#e ta" ti!esK a %ia,"osti$ !essa,e is isse% a"% 66666 is#et#"e%. Te "et i"Jo$atio" is t#eate% as te +i#st.

 Te COUNTER bilt-i" +"$tio" $a" be se% to ,e"e#ate "i7e "a!esK o# +o# $o"ti", *#*oses.

INDE> B)-"I& F)&-&INDE #et#"s a 2IED Jale i"%i$ati", te sta#ti", *ositio" 3iti" te $a#a$te# e*#essio" o+a sbst#i", i%e"ti$al to $a#a$te# e*#essio" . Te s"ta +o# INDE is: 

INDEX(,) C>?> ?>?<<H H ? <?>?Q  C>?> ?>?<<H H ? <?>?Q @H>.

 

I+ %oes "ot o$$# i" K o# i+ eite# st#i", is "llK te Jale 6 is #et#"e%.

LENGT= B)-"I& F)&-&9ENGT #et#"s a 2IED Jale s*e$i+i", te $##e"t le",t o+ a ,iJe" $a#a$te# e*#essio" .Te s"ta +o# 9ENGT is: 

LENGT()

C>?> ?>?<<H. < H?>?Q H >?>, @ ??<<>.

PARMSET B)-"I& F)&-&Te PARMSET bilt-i" +"$tio" $a" be se% o"l 3iti" a *#e*#o$esso# *#o$e%#e. It is se% to%ete#!i"e 3ete# a s*e$i+ie% *a#a!ete# is set o" i"Jo$atio" o+ te *#o$e%#e. Te s"ta +o#PARMSET is: 

PARMSET() M< ? >K??> H@ ? >?>H?<<H> >H?Q>?.

 

Page 144: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 144/161

Udhaya’s PL/I Material 6/06/2003 Page:- 144 / 161

PARMSET #et#"s a bit Jale o+ <1< i+ te *a#a!ete# 3as e*li$itl set b te +"$tio" #e+e#e"$e3i$ i"Jo8e% te *#o$e%#eK a"% a bit Jale o+ <6< i+ it 3as "ot--tat isK i+ te $o##es*o"%i",a#,!e"t 3as o!itte% +#o! te +"$tio" #e+e#e"$e i" a *#e*#o$esso# e*#essio".

SUBSTR B)-"I& F)&-&SUSTR #et#"s a sbst#i", o+ te $a#a$te# e*#essio" . Te s"ta +o# SUSTR is: 

SUBSTR(,9,)  C>?> ?>?<<H @>HK ? <<> < ?>?Q.

H?>< H >?>, @ ??<<>.

  E>?<<H ? H?>?Q H FIXED, <?@ ?

<> H<H H@ ? <<> .

  E>?<<H ? H?>?Q H FIXED, <?@ ? ?

H@ ? <<> . I@ < ", <> < >?>?Q. I@ < HK?Q, ? <<> >?>?Q < H<H H ??Q H@ .

ACTIVATE S+''& A LACTIATE state!e"t !a8es a" i%e"ti+ie# a$tiJe a"% eli,ible +o# #e*la$e!e"t. A"sbse7e"t e"$o"te# o+ tat i%e"ti+ie# i" te i"*t tet 3ile te i%e"ti+ie# is a$tiJe i"itiates#e*la$e!e"t a$tiJit. Te s"ta +o# te LACTIATE state!e"t is: 9?: ACTI'ATE Q?@?>,RESCAN 3 NORESCAN, . . .

 Abb#eJiatio": LACT i%e"ti+ie# S*e$i+ies te "a!e o+ a *#e*#o$esso# Ja#iableK a *#e*#o$esso# *#o$e%#eK o# a*#e*#o$esso# bilt-i" +"$tio". 

RESCAN S*e$i+ies tat 3e" te i%e"ti+ie# is s$a""e% b te *#e*#o$esso#K #e*la$e!e"t (as%es$#ibe% belo3 +o# NORESCAN) a"% #es$a""i", ta8es *la$e. RESCAN is te %e+alt. NORESCAN S*e$i+ies tat 3e" te i%e"ti+ie# is e"$o"te#e% b te *#e*#o$esso# s$a"K it is#e*la$e% i" te *#e*#o$esso# ot*t b tat tet 3i$ is eite# te $##e"t Jale o+ te Ja#iable3ose "a!e !at$es te i%e"ti+ie#K o# te #eslt o+ i"Jo8i", te +"$tio" 3ose "a!e !at$este i%e"ti+ie#. Tis tet is "ot #es$a""e% +o# +#te# #e*la$e!e"t.

+-&'& S+''& A Lassi,"!e"t state!e"t eJalates a *#e*#o$esso# e*#essio" a"% assi,"s te #eslt to a*#e*#o$esso# Ja#iable. Te s"ta +o# te Lassi,"!e"t state!e"t is: 9?: >?>H?<<H>0>? = >?>H?<<H>0?>?<<H

 

DEACTIVATE S+''& A LDEACTIATE state!e"t !a8es a" i%e"ti+ie# i"a$tiJe. Te s"ta +o# te LDEACTIATEstate!e"t is: 

9?:DEACTI'ATE Q?@?>, . . .;

Page 145: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 145/161

Udhaya’s PL/I Material 6/06/2003 Page:- 145 / 161

 Abb#eJiatio": LDEACT i%e"ti+ie# S*e$i+ies te "a!e o+ eite# a *#e*#o$esso# Ja#iableK a *#e*#o$esso# *#o$e%#eK o# a*#e*#o$esso# bilt-i" +"$tio". Te %ea$tiJatio" o+ a" i%e"ti+ie# $ases loss o+ its #e*la$e!e"t $a*abilit bt "ot its Jale. e"$eK te#ea$tiJatio" o+ s$ a" i%e"ti+ie# "ee% "ot be a$$o!*a"ie% b te assi,"!e"t o+ a #e*la$e!e"t Jale. Te %ea$tiJatio" o+ a" i%e"ti+ie# %oes "ot *#eJe"t it +#o! #e$eiJi", "e3 Jales i" sbse7e"t*#e*#o$esso# state!e"ts.

DECLARE S+''&Te LDEC9ARE state!e"t establises a" i%e"ti+ie# as a *#e*#o$esso# "a!eK s*e$i+ies att#ibtes o+te "a!eK a"% establises te s$o*e o+ te "a!e. 

 A LDEC9ARE state!e"t beaJes as a LACTIATE state!e"t 3e" it is e"$o"te#e% otsi%e a*#e*#o$esso# *#o$e%#eK a"% a$tiJatesK 3it te RESCAN o*tio"K all i%e"ti+ie#s %e$la#e% i" teLDEC9ARE state!e"t. Te s"ta +o# te LDEC9ARE state!e"t is: 

9?: DECLARE Q?@?> FIXED 3 CARACTER 3 ENTRY 3 BUILTIN, . . .;

 Abb#eJiatio"s: LDC9 +o# LDEC9ARE  CAR +o# CARACTER 

i%e"ti+ie# S*e$i+ies te "a!e o+ eite# a *#e*#o$esso# Ja#iableK a *#e*#o$esso# *#o$e%#eK o# a*#e*#o$esso# bilt-i" +"$tio". CARACTER S*e$i+ies tat te i%e"ti+ie# #e*#ese"ts a Ja#i",-le",t $a#a$te# st#i", tat as "o!ai!! le",t. 

2IED A *#e*#o$esso# Ja#iable %e$la#e% 3it te att#ibte 2IED is also ,iJe" te att#ibtesDECIMA9(K6). ENTRY A" e"t# %e$la#atio" $a" be s*e$i+ie% +o# ea$ *#e*#o$esso# e"t# "a!e i" te so#$e*#o,#a!. Te %e$la#atio" a$tiJates te e"t# "a!e.

DO S+''&Te LDO state!e"tK a"% its $o##es*o"%i", LEND state!e"tK %eli!it a *#e*#o$esso# %o-,#o*K a"%$a" also s*e$i+ #e*etitiJe ee$tio" o+ te %o-,#o*. Te s"ta +o# te LDO state!e"t is: 

T*e 

9?: DO; 

T*e9?: DO; >?>H?<<H>0QH0<?@H ;

 >?>H?<<H>0QH0<?@H:00>?>H?<<H>0>? = >?>H?<<H>0?1000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000

Page 146: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 146/161

Udhaya’s PL/I Material 6/06/2003 Page:- 146 / 161

0TO00>?>H?<<H>0?!0000000000000000000000000000  0BY00>?>H?<<H>0?0   0BY00>?>H?<<H>0?0000000000000000000000000000  0TO00>?>H?<<H>0?!0

END S+''&Te LEND state!e"t is se% i" $o""$tio" 3it LDO o# LPROCEDURE state!e"ts to %eli!it*#e*#o$esso# %o-,#o*s o# *#e*#o$esso# *#o$e%#es. Te s"ta +o# te LEND state!e"t is: 

9?: END;

Te label +ollo3i", END !st be a label o+ a LPROCEDURE o# LDO state!e"t. Mlti*le $los#e isallo3e%.

GO TO S+''&Te LGO TO state!e"t $ases te *#e*#o$esso# to $o"ti"e its s$a" at te s*e$i+ie% label. Tes"ta +o# te LGO TO state!e"t is: 9?: GO TO H?>0?;

 Abb#eJiatio": LGOTO

IF S+''&Te LI2 state!e"t $o"t#ols te +lo3 o+ te s$a" a$$o#%i", to te bit Jale o+ a *#e*#o$esso#e*#essio". Te s"ta +o# te LI2 state!e"t is: 

9?: IF >?>H?<<H>0?>?<<H TEN

  >?>H?<<H>01 ELSE

  >?>H?<<H>0!

*#e*#o$esso#-e*#essio" Is eJalate% a"% $o"Je#te% to a bit st#i", (i+ te $o"Je#sio" $a""ot be !a%eKit is a" e##o#). *#e*#o$esso#-"it Is a" si",le *#e*#o$esso# state!e"t (ote# ta" LDEC9AREK LPROCEDUREKLENDK o# LDO) o# a *#e*#o$esso# %o-,#o*.

NOTE S+''&Te LNOTE state!e"t ,e"e#ates a *#e*#o$esso# %ia,"osti$ !essa,e o+ s*e$i+ie% tet a"% seJe#it.Te s"ta +o# te LNOTE state!e"t is: 

9?: NOTE (K?<<? 9,HQ? );

!essa,e A $a#a$te# e*#essio" 3ose Jale is te #e7i#e% %ia,"osti$ !essa,e. $o%e A +ie% e*#essio" 3ose Jale i"%i$ates te seJe#it o+ te !essa,eK as +ollo3s: 

00000000000000000000000000000  CHQ? S??>   0000000000000000000000000000  " I   0000000000000000000000000000

Page 147: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 147/161

Udhaya’s PL/I Material 6/06/2003 Page:- 147 / 161

+ $   0000000000000000000000000000  & E   0000000000000000000000000000  1! S   0000000000000000000000000000  1- U   00000000000000000000000000000

$CL +&' &''7'7IEL1CL//IEL1CL PROC . . ...//PLI EXEC PGM=IEL1AA,PARM=#OBJECT,NODEC%, MACRO#,REGION=1!%..//

E(+' 1I+ te *#e*#o$esso# i"*t $o"tai"s: DECLARE A CARACTER, B FIXED;

  A = #BC#;  B = !;  X = A;

 te +ollo3i", is i"se#te% i"to te *#e*#o$esso# ot*t: X = !C;

 Te *#e*#o$esso# state!e"ts a$tiJate A a"% 3it te %e+alt RESCANK assi," te $a#a$te# st#i",

<C< to AK a"% assi," te $o"sta"t to .

I+K i" te aboJe ea!*leK te *#e*#o$esso# Ja#iable A 3as a$tiJate% b tis state!e"t: ACTI'ATE A NORESCAN;

 te *#e*#o$esso# ot*t 3ol% be: X = BC;

E(+' 2I+ te *#e*#o$esso# i"*t $o"tai"s: DECLARE I FIXED, T CARACTER;

  DEACTI'ATE I;  I = 1;  T = #A(I)#;  S = I*T*;  I = I;  ACTI'ATE I;  DEACTI'ATE T;  R = I*T*!

 

Page 148: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 148/161

Udhaya’s PL/I Material 6/06/2003 Page:- 148 / 161

te *#e*#o$esso# ot*t 3ol% be as +ollo3s (#e*la$e!e"t bla"8s a#e "ot so3"): S = I*A(I)*;

  R = !"*T*!;

E(+' 3Tis ea!*le illst#ates o3 *#e*#o$esso# +a$ilities $a" be se% to s*ee% * te ee$tio" o+ a %o-,#o*K s$ as: 

DO I=1 TO 1";  (I)=X(I)Y(I);  END;

 Te +ollo3i", 3ol% a$$o!*lis te sa!e ti",K bt 3itot te #e7i#e!e"ts o+ i"$#e!e"ti", a"%testi", %#i", ee$tio" o+ te $o!*ile% *#o,#a!: DECLARE I FIXED;

  DO I = 1 TO 1";  (I)=X(I)Y(I);  END;

  DEACTI'ATE I; Te ti#% li"e is i"*t tet a"% is s$a""e% +o# #e*la$e!e"t a$tiJit. Te +i#st ti!e tat tis li"e iss$a""e%K I as te Jale 1 a"% as bee" a$tiJate%. Te#e+o#eK te +ollo3i", is i"se#te% i"to te*#e*#o$esso# ot*t: ( 1)=X( 1)Y( 1);

 Ea$ 1 is *#e$e%e% b seJe" bla"8s. 2o# ea$ i"$#e!e"t o+ IK * to a"% i"$l%i", 16K te i"*t tet is s$a""e% a"% ea$ o$$##e"$e o+ I is#e*la$e% b its $##e"t Jale. As a #esltK te +ollo3i", is i"se#te% i"to te *#e*#o$esso# ot*t: 

( 1)=X( 1)Y( 1);  ( !)=X( !)Y( !);  .  .  .  ( 1")=X( 1")Y( 1");

 

e" te Jale o+ I #ea$es 11K $o"t#ol +alls t#o, to te LDEACTIATE state!e"t.Te $o!*lete *#o,#a! is:-

  PLIPGM1: PROC OPTIONS(MAIN);DCL (LBOUND,BOUND) BUILTIN;DCL X(1") FIXED BIN(1) INIT((1")1);DCL Y(1") FIXED BIN(1) INIT((1")!);DCL (1") FIXED BIN(1) INIT((1")");DECLARE I FIXED;DO I = 1 TO 1";(I)=X(I)Y(I);END;DEACTI'ATE I;PUT DATA();DCL 6(1") FIXED BINARY(1) CTL;ALLOCATE 6(1"");

Page 149: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 149/161

Udhaya’s PL/I Material 6/06/2003 Page:- 149 / 161

ALLOCATE 6(*);PUT S%IP LIST(LBOUND(6,1),BOUND(6,1));END PLIPGM1; 

E(+' 4I" te *#e*#o$esso# i"*t belo3K A9UE is a *#e*#o$esso# +"$tio" *#o$e%#e tat #et#"s a $a#a$te#st#i", o+ te +o#! <a#,1(a#,)<K 3e#e a#,1 a"% a#, #e*#ese"t te a#,!e"ts tat a#e *asse% to te+"$tio": DECLARE ((1"), 6) FIXED;

  A=##;  ACTI'ATE A, 'ALUE;  6 = - 'ALUE(A,);  DECLARE A CARACTER;  'ALUE: PROC(ARG1,ARG!) RETURNS(CAR);  DCL ARG1 CAR, ARG! FIXED;  RETURN(ARG133#(#33ARG!33#)#);  END 'ALUE;

 e" te s$a" e"$o"te#s te +o#t li"eK A is a$tiJe a"% is ts eli,ible +o# #e*la$e!e"t. Si"$e

A9UE is also a$tiJeK te #e+e#e"$e to it i" te +o#t li"e i"Jo8es te *#e*#o$esso# +"$tio" *#o$e%#eo+ tat "a!e. o3eJe#K be+o#e te a#,!e"ts A a"% a#e *asse% to A9UEK A is #e*la$e% b its Jale F (assi,"e%to A i" a *#eJios assi,"!e"t state!e"t)K a"% is $o"Je#te% to +ie%-*oi"t to $o"+o#! to te att#ibteo+ its $o##es*o"%i", *a#a!ete#. A9UE te" *e#+o#!s a $o"$ate"atio" o+ tese a#,!e"ts a"% te*a#e"teses a"% #et#"s te $o"$ate"ate% JaleK tat isK te st#i", F ()K to te *oi"t o+ i"Jo$atio".Te #et#"e% Jale #e*la$es te +"$tio" #e+e#e"$e a"% te #eslt is i"se#te% i"to te *#e*#o$esso#ot*t. TsK te *#e*#o$esso# ot*t ,e"e#ate% is: DECLARE ((1"),6) FIXED; 6 = -( );

E(+'//. . . JOB//STEP! EXEC IEL1C,PARM.PLI=#MACRO,MDEC%,NOCOMPILE,NOSYNTAX#..//PLI.SYSIN DD * /* GI'EN IP CODE, FINDS CITY */ DCL USE CAR; USE = #FUN# /* FOR SUBROUTINE, USE = #SUB# */ ; IF USE = #FUN# TEN DO;  CITYFUN: PROC(IPIN) RETURNS(CAR(1-)) REORDER; /* FUNCTION */  END;  ELSE DO;  CITYSUB: PROC(IPIN, CITYOUT) REORDER; /* SUBROUTINE */

  DCL CITYOUT CAR(1-); /* CITY NAME */  END;  DCL (LBOUND, BOUND) BUILTIN;  DCL IPIN PIC #77777#; /* IP CODE */  DCL 1 IPCITY() STATIC, /* IP CODE 0 CITY NAME TABLE */  ! IP PIC #77777# INIT(  71+1, 7"1+, 7"",  7"1, 7"", 7""&,  "), /* $ILL NOT LOO% AT LAST ONE */

Page 150: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 150/161

Udhaya’s PL/I Material 6/06/2003 Page:- 150 / 161

! CITY CAR(1-) INIT(  #SAN JOSE#, #CUPERTINO#, #LOS GATOS#,  #SANTA CLARA#, #SARATOGA#, #CAMPBELL#,  #UN%NO$N CITY#); /* $ILL NOT LOO% AT LAST ONE */  DCL I FIXED BIN(1);  DO I = LBOUND(IP,1) TO /* SEARC FOR IP IN TABLE */  BOUND(IP,1)01 /* DON#T LOO% AT LAST ELEMENT */  $ILE(IPIN V= IP(I));  END; IF USE = #FUN# TEN DO;  RETURN(CITY(I)); /* RETURN CITY NAME */  END;  ELSE DO;  CITYOUT=CITY(I); /* RETURN CITY NAME */  END;  END;

Page 151: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 151/161

Udhaya’s PL/I Material 6/06/2003 Page:- 151 / 161

SECTION"13 PRO$ECT FOR PL/I SETTING UP AND GETTING ACUAINTED %IT= BASICS

• Ea!i"e a"% "%e#sta"% te IM s**lie% *#o$e%#es I+L1,?I+L1,L?I+L1,LG 

• C#eate a P.S  3it .S "a!e userid#PLI.PROCLIB 3it

.SRGCP?LR+,LC8?BL$SIK+C3288?I0CS4S.(?R+,MCB?SP(,+C=0R$?=1?1?))

• C#eate a P.S  3it .S  "a!e userid#PLI.OB$ 3it.SRGCP?LR+,LC8?BL$SIK+C3288?I0CS4S.(?R+,MCB?

SP(,+C=0R$?=1?1?))

• C#eate a P.S  3it .S  "a!e userid#PLI.SOURCE 3it.SRGCP?LR+,LC8?BL$SIK+C3288?I0CS4S.(?R+,MCB? SP(,+C=0R$?=1?1?))

• C#eate a PDS 3it .S  "a!e userid#PLI.LOADLIB 3it.SRGCP?I0CS4S.(?R+,MC?SP(,+C=0R$?=1?1?))

• T# to *#e*a#e te sa!*le *#o,#a! i" te +i#st $a*te# a"% #" it. Ea!i"e te $o!*ilatio"K

9i"8a,e a"% #" ot*ts.

Page 152: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 152/161

Udhaya’s PL/I Material 6/06/2003 Page:- 152 / 161

S)7'& P*'Te *#oe$t is a IDEO #e"tal sste!. Te sste! 8ee*s t#a$8 o+ its $sto!e#s Jia a $sto!e#!aste# +ile tat as all te $sto!e# %etailsK i"$l%i", te "!be# o+ Ji%eos otsta"%i", a,ai"sttat $sto!e#. It 8ee*s t#a$8 o+ its i"Je"to# o+ Ji%eos Jia te Ji%eo !aste# +ile. Te#e is o"e#e$o#% +o# ea$ !e%ia a"% tat #e$o#% also 8ee*s t#a$8 o+ 3ete# it is #e"te%K a"% i+ so te %ateo+ #e"tal a"% te $sto!e# "!be# o+ te $sto!e# 3o as #e"te% tat !e%ia.

Te $sto!e# !aste# is a SAM =SDS i"%ee% o" $sto!e# "!be#. Te Ji%eo !aste# isi"%ee% o" te Ji%eo title a"% a t3o bte $o* "!be#K as !lti*le $o*ies o+ te sa!e title $a"eist. Tis +ile as a" alte#"ate i"%e bilt o" te $sto!e# "!be#. I+ 3e 3is to ,et te Ji%eosa,ai"st ea$ $sto!e# 3e $a" +et$ te #e$o#%s i" te Ji%eo !aste# +ile Jia te alte#"ate i"%e.

Te +i,#e belo3 i"%i$ates te Ja#ios +"$tio"s o+ te sste!K i!*le!e"te% b !o#e ta" o"e*#o,#a!.

Te #e$o#% laot +o# te IDMAST a"% CUSTMAST +iles a#e ,iJe" belo3:-

CUSTMASTDCL "1 CUSTOMERMASTERRECORD,  " CMCUSTOMERNUMBER CAR(),

  " CMFIRSTNAME CAR(!"),  " CMLASTNAME CAR("),  " CMADDRESS CAR("),  " CMCITY CAR(!"),  " CMSTATE CAR(!),  " CMIPCODE CAR(1"),  " CM'IDEOSOUT FIXED BINARY(1);

CUSTMAST is a =SDS +ile i"%ee% o" CMQCUSTOMERQNUMER.

i%eo

$.a",es

i%eo

#e"tals

C-sto!e# 

$.a",es

i%eos

C-sto!e#s

9ist o+ 

Ji%eos

i%eo

#et-#"s

i%eo

!ai"te"a"$e

i%eo

#e"tal

C-sto!e# 

!ai"te"a"$e

i%eo

list

i%eo

#et-#"

C-sto!e# 

i"7-i#)

C-sto!e# 

%ata

Page 153: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 153/161

Udhaya’s PL/I Material 6/06/2003 Page:- 153 / 161

VIDMASTDCL "1 'IDEOMASTERRECORD,  " 'M'IDEONUMBER,  1" 'MTITLENUMBER CAR(-),  1" 'MCOPYNUMBER CAR(!),

  " 'MTITLE CAR("),  " 'MMEDIATYPE CAR(1),  " 'MSTATUS CAR(1),  " 'MCUSTOMERNUMBER CAR(),  " 'MDATEOUT CAR(1");

IDMAST is a =SDS +ile 8ee% o" MQIDEOQNUMER. A" alte#"ate i"%e is bilt o"MQCUSTOMERQNUMER.

Te MQMEDIAQTYPE +iel% as te +ollo3i", Jales:-  2o# !e%ia t*e o+ TAPE A9UE <T<.  2o# !e%ia t*e o+ DD A9UE <D<.  2o# !e%ia t*e o+ GAME A9UE <G<

Te MQSTATUS +iel% as te +ollo3i", Jales:-  2o# stats o+ IN A9UE <1<.  2o# stats o+ OUT A9UE <<.

T' + **+ ' 7'7 +8' ' ;-& )&-&+-<@"

C)'* M+'* L+7 **+:-Tis *#o,#a! loa%s te i"itial %ata +#o! te se7e"tial+ile to te IDCUST =SDS. A sa!*le *#o,#a! CUST9S is aJailable. As8 o# i"st#$to# +o# a$o*.

V-7' M+'* L+7 **+:-Tis *#o,#a! loa%s te i"itial %ata +#o! te se7e"tial +ile tote IDMAST =SDS. A sa!*le *#o,#a! ID9S is aJailable. As8 o# i"st#$to# +o# a $o*.

C)'* +-&'&+&' **+. Tis *#o,#a! 3ill #ea% i"*t +#o! a PS +ile a"% $a"*e#+o#! a %elete & *%ate o+ a" eisti", #e$o#% o# i"se#t a "e3 #e$o#% i" te IDCUST +ile. Te+i#st bte o+ te i"*t +ile (CM-OP-CODE) 3ill i"%i$ate te a$tio" to be *e#+o#!e%K as +ollo3s:

a)Ca#a$te# I (U**e# $ase) +o# I"se#t o+ a "e3 #e$o#%

b)Ca#a$te# D (U**e# $ase) +o# %elete o+ a" eisti", #e$o#%. Deletes a#e "ot *e#!itte% i+ te$sto!e# as a" otsta"%i", #e"tals.

$)Ca#a$te# U (U**e# $ase) +o# *%ate o+ a" eisti", #e$o#%.

Te $o!!a"% bte is +ollo3e% b te +ll #e$o#% itsel+ i" te +ollo3i", +o#!at

T' R'*7 L+<) ' -&) -'DCL "1 CUSTOMERMASTERINPUTRECORD,  " CMOPCODE CAR(1),  " CMCUSTOMERNUMBER CAR("),  " CMFIRSTNAME CAR(!"),  " CMLASTNAME CAR("),  " CMADDRESS CAR("),  " CMCITY CAR(!"),

Page 154: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 154/161

Page 155: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 155/161

Udhaya’s PL/I Material 6/06/2003 Page:- 155 / 161

Te i"*t Ji%eo "!be# a"% te $sto!e# "!be# !st be Jali%ate% be+o#e a" *%ate is !a%e tote IDMAST !aste# +ile. Te #e"tal & #et#" %ate is "ot s**lie% o" i"*t. It is +et$e% +#o! tesste! si", te DATE ilti" +"$tio".

 A SYSOUT +ile !st be $#eate% 3i$ as te *#o$essi", stats o+ eJe# #et#" & #e"tal #e$o#% i"te i"*t st#ea!. A sa!*le *#o,#a! IDIO is aJailable. As8 o# i"st#$to# +o# a $o*.

R'* P**+:- Tis *#o,#a! $a" #e*o#t stats o+ a Ji%eo(3o as #e"te% a"% 3e") o##e*o#t +o# a $sto!e# all te Ji%eos e o# se as $##e"tl o" #e"tal. Te i"*t is Jia a se7e"tial+ile 3e#e te +i#st $a#a$te# is i"te#*#ete% as +ollo3s:-

a)Ca#a$te# (U**e# $ase) :-Te "et 4 btes is te Ji%eo "!be# a"% te *#o,#a! is to ot*tte $sto!e#(s) 3o aJe #e"te% ot te Ji%eos a"% te %ate o+ #e"tal. I+ te Ji%eo is "ot #e"te%K itsol% #e*o#t as s$. Note tat te 4 $a#a$te# Ji%eo "!be# is a ,e"e#i$ 8e a"% te *#o,#a!!st ea!i"e all #e$o#%s 3i$ !at$ tis 8e.

b)Ca#a$te# C (U**e# $ase):- Te "et seJe" $a#a$te#s is te $sto!e# "!be#.

Te *#o,#a! !st +i#st Jali%ate te $sto!e# "!be# a,ai"st te $sto!e# !aste# +ile. It sol%te" a$$ess te IDMAST +ile Jia its alte#"ate i"%e ($sto!e# "!be#) a"% +et$ all #e$o#%s +o#

tat $sto!e#K +o# #e*o#t ,e"e#atio".

Te #e*o#t !st so3 $sto!e# "!be#K Csto!e# "a!eK Csto!e# a%%#essK i%eo "!be#Ki%eo title a"% %ate #e"te% ot.

Te i"*t +ile $a" aJe !o#e ta" o"e #e$o#%K ea$ #e$o#% #e*#ese"ti", a 7e#.

Ea$ *a,e o+ te #e*o#t !st aJe a ea%i", tat i"$l%es te Re*o#t "a!eK *a,e "!be# a"%#" %ate. Te "!be# o+ li"es *e# *a,e !st be 8e*t $o"+i,#able Jia PARM +iel% o+ te C9EEC $a#%.

 A li!ite% +"$tio" sa!*le *#o,#a! IDRPT is aJailable. As8 o# i"st#$to# +o# a $o*.

T' 7++1. Test %ata +o# te $sto!e# !aste# is aJailable i" te +ile =AM6661.CUSTMAS.DATA. As8

o# i"st#$to# +o# a $o*.

. Test %ata +o# te Ji%eo !aste# is aJailable i" te +ile =AM6661.IDMAS.DATA. As8 o#i"st#$to# +o# a $o*.

. Test %ata +o# isse a"% #et#" is aJailable i" te +ile =AM6661.IO. As8 o# i"st#$to# +o# a$o*.

$CL A $o!*#ee"siJe C9 is *#oJi%e% to i"stall a basi$ sste!. It %oes te +ollo3i",:-1)C#eates te Ji%eo a"% $sto!e# =SDS $lste#sK a+te# %eleti", eisti", o"es b te sa!e "a!e.)P#e*a#es te CUST9S a"% ID9S *#o,#a!s a"% te" loa%s te $lste#s.)De+i"es a" alte#"ate i"%e oJe# te Ji%eo !aste# a"% te" bil% te i"%e a"% %e+i"es a *at.Tis C9 is aJailable as +ile IDCCUST . As8 o# i"st#$to# +o# a $o*.

 Y)* '-8'@"St% a"% "%e#sta"% eisti", *#o,#a!s. Test a"% %eb, i+ #e7i#e%.

#ite a #e*o#t *#o,#a! tat s**o#ts te +ollo3i",:-1)Re*o#t stats +o# a s*e$i+i$ Ji%eo 3ose title is s**lie% Jia SYSIN

Page 156: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 156/161

Udhaya’s PL/I Material 6/06/2003 Page:- 156 / 161

)Re*o#t stats +o# a s*e$i+i$ $sto!e# 3ose "!be# is s**lie% Jia SYSIN)Ge"e#ate te #e*o#t 3it ea%i",s a"% *a,e "!be# a"% #" %ate 3it +iel%s +o#!atte%. 

Page 157: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 157/161

Udhaya’s PL/I Material 6/06/2003 Page:- 157 / 161

Page 158: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 158/161

Udhaya’s PL/I Material 6/06/2003 Page:- 158 / 161

Page 159: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 159/161

Udhaya’s PL/I Material 6/06/2003 Page:- 159 / 161

Page 160: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 160/161

Udhaya’s PL/I Material 6/06/2003 Page:- 160 / 161

!!"#U$"  LIMITS 

00000000000000000000000000000000000000000000000000000000000000000000000000 L? D?<>H LK E?K?

000000000000000000000000000000000000000000000000000000000000000000000000 D MKK K?> H@ QK?<H< @H> 1 A>??< >> (A>><, 0000000000000000000000000000000000000000000000000000000000 S>>?< MKK H?> HQ @H> >> 0!1++&-+& Q AREA<) 0000000000000000000000000000000000000000000000000000000000 MKK H?> HQ @H> >> < 0!-& CMPAT('1) 0000000000000000000000000000000000000000000000000000000000 MKK ?> HQ @H> >> !1++&-+ 0000000000000000000000000000000000000000000000000000000000 MKK ?> HQ @H> >> < !- CMPAT('1) 0000000000000000000000000000000000000000000000000000000000

MKK K?> H@ ??< 1 <>>? 0000000000000000000000000000000000000000000000000000000000 MKK ?? K?> <>>? ! 000000000000000000000000000000000000000000000000000000000000000000000000 S> D MKK ? H@ CARACTER >? !- >?>< 0000000000000000000000000000000000000000000000000000000000 MKK ? H@ BIT >? !- < 0000000000000000000000000000000000000000000000000000000000 MKK <> >??H @H> !- 0000000000000000000000000000000000000000000000000000000000 MKK K?> H@ >? >?>< 11 >?> PICTURE

0000000000000000000000000000000000000000000000000000000000 MKK K?> H@ >? >?>< !- K?> PICTURE 0000000000000000000000000000000000000000000000000000000000 MKK K?> H@ K?> >? 1 >?>< K?> PICTURE 000000000000000000000000000000000000000000000000000000000000000000000000 A>K? MKK >?<H @H> FIXED DECIMAL 1 P>?<H< 0000000000000000000000000000000000000000000000000000000000 MKK >?<H @H> FIXED BINARY 1 0000000000000000000000000000000000000000000000000000000000 MKK >?<H @H> FLOAT DECIMAL 0000000000000000000000000000000000000000000000000000000000 MKK >?<H @H> FLOAT BINARY 1"7

000000000000000000000000000000000000000000000000000000000000000000000000 P>H>K S? MKK ? H@ Q?@?> 1 ?< 0000000000000000000000000000000000000000000000000000000000 MKK ? H@ ??> K? ?< $? ??> K?< ??>?Q PL/I >? < & >?>< ?, <?>0Q?@?Q ??> K?< H ???Q >?><. T< >??<

Page 161: PL1.DOC

8/14/2019 PL1.DOC

http://slidepdf.com/reader/full/pl1doc 161/161