PL1.DOC
-
Upload
govardhan-panati -
Category
Documents
-
view
234 -
download
0
Transcript of PL1.DOC
![Page 1: PL1.DOC](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/1.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/2.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/3.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/4.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/5.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/6.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/7.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/8.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/9.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/10.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/11.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/12.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/13.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/14.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/15.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/16.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/17.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/18.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/19.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/20.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/21.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/22.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/23.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/24.jpg)
8/14/2019 PL1.DOC
http://slidepdf.com/reader/full/pl1doc 24/161
![Page 25: PL1.DOC](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/25.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/26.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/27.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/28.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/29.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/30.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/31.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/32.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/33.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/34.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/35.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/36.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/37.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/38.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/39.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/40.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/41.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/42.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/43.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/44.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/45.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/46.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/47.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/48.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/49.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/50.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/51.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/52.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/53.jpg)
8/14/2019 PL1.DOC
http://slidepdf.com/reader/full/pl1doc 53/161
![Page 54: PL1.DOC](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/54.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/55.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/56.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/57.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/58.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/59.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/60.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/61.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/62.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/63.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/64.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/65.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/66.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/67.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/68.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/69.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/70.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/71.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/72.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/73.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/74.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/75.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/76.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/77.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/78.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/79.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/80.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/81.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/82.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/83.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/84.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/85.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/86.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/87.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/88.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/89.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/90.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/91.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/92.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/93.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/94.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/95.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/96.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/97.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/98.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/99.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/100.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/101.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/102.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/103.jpg)
8/14/2019 PL1.DOC
http://slidepdf.com/reader/full/pl1doc 103/161
![Page 104: PL1.DOC](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/104.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/105.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/106.jpg)
8/14/2019 PL1.DOC
http://slidepdf.com/reader/full/pl1doc 106/161
![Page 107: PL1.DOC](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/107.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/108.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/109.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/110.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/111.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/112.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/113.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/114.jpg)
8/14/2019 PL1.DOC
http://slidepdf.com/reader/full/pl1doc 114/161
![Page 115: PL1.DOC](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/115.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/116.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/117.jpg)
8/14/2019 PL1.DOC
http://slidepdf.com/reader/full/pl1doc 117/161
![Page 118: PL1.DOC](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/118.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/119.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/120.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/121.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/122.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/123.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/124.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/125.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/126.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/127.jpg)
8/14/2019 PL1.DOC
http://slidepdf.com/reader/full/pl1doc 127/161
![Page 128: PL1.DOC](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/128.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/129.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/130.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/131.jpg)
8/14/2019 PL1.DOC
http://slidepdf.com/reader/full/pl1doc 131/161
![Page 132: PL1.DOC](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/132.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/133.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/134.jpg)
8/14/2019 PL1.DOC
http://slidepdf.com/reader/full/pl1doc 134/161
![Page 135: PL1.DOC](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/135.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/136.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/137.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/138.jpg)
8/14/2019 PL1.DOC
http://slidepdf.com/reader/full/pl1doc 138/161
![Page 139: PL1.DOC](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/139.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/140.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/141.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/142.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/143.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/144.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/145.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/146.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/147.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/148.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/149.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/150.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/151.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/152.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/153.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/154.jpg)
8/14/2019 PL1.DOC
http://slidepdf.com/reader/full/pl1doc 154/161
![Page 155: PL1.DOC](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/155.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/156.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/157.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/158.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/159.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/160.jpg)
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](https://reader030.fdocuments.us/reader030/viewer/2022021316/577cd6a41a28ab9e789cdd4a/html5/thumbnails/161.jpg)
8/14/2019 PL1.DOC
http://slidepdf.com/reader/full/pl1doc 161/161