HAL Id: inria-00000111
https://hal.inria.fr/inria-00000111
Submitted on 11 Apr 2006
HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.
Stress-testing Control Structures for Dynamic Dispatch in Java
Olivier Zendra, Karel Driesen
To cite this version:
Olivier Zendra, Karel Driesen. Stress-testing Control Structures for Dynamic Dispatch in Java. 2nd Java Virtual Machine Research and Technology Symposium (JVM’2002), Usenix - The Advanced Computing Systems Association, Aug 2002, San Francisco, CA, USA, pp.105-118. �inria-00000111�
Stress-testing Control Structures for Dynamic Dispatch in Java
Published in Proceedings of the USENIX 2nd Java Virtual Machine Research and Technology Symposium, 2002 (JVM ’02)
Olivier Zendra
INRIA Lorraine - LORIA / McGill University
615 Rue du Jardin Botanique, BP 101 54602 Villers-Les-Nancy Cedex, France
!
"$#% &" "'()
Karel Driesen McGill University
School of Computer Science - ACL Group Montreal, Quebec, Canada H3A 2A7
+*,-/.0*1(2*43"
3""'*,-/.5*167*
ABSTRACT
8:9;<=?>A@CB>EDF<G+@2HJI"KLNME<GOCP">E;B>E;"QRKSTSVU;@WG+>XK;Y@Z<MEMADZI
>ADC<[D<MX>EOZ;G\SVO]<G+U"L+O^KS%KP_)O]@`G abKL+>XO];G+O]BcF"LKQL2<=?=?>X;Q
MA<;"QU<QO]D\ME>XdOfeNgCgh<;iBkj<$l<"monbGp@]<;qPiOR@ZKD GME9YK;
BO]OZF"ME9kF">XF6OZME>E;"O]BrF"LK@ZO]D+D KL+D]IJP6O]@Z<UDOfB9;<=^>A@R@]<MEMED
G+L+<;D MA<G+OsG+KpH<L+BatGKatFLO4B>E@`G>E;B>ELO4@WGP"L+<;@2HR>E;D GL+U@Wa
G+>XK;DZI5uNH">E@2Hk<L+OvFLK;"OpG+Kw@Z<UiD >E;"QxF>XF6OZME>X;OoP"U"P"P"MEO]D]m
y
O]lO]L+<M5<MXGO]L;<G>ElOC>E=?F"MXO]=?OZ;G+<G>EK;wG+O]@2H";">AzU"O]D{H<$lO
P6OZO];|BO4D >EQ;"O4B}>E;~GHOfF<D)G^>X;|KL2BOZLpGKFiO]L SVKL=B9a
;<=?>E@RB">EDF<G2@2H}uN>G+H"KU"GpLO]MX9>E;"QYK;G+H"O]DOxOZFiO];D >ElO
P"L2<;i@2HY>X;iD)G+LU@`G>EK;D]mp{;SVKLGU";i<GO]MX9w>XGC>EDB>X R@`U"MXGGK
@ZK=?F<L+O^GH"OoF6OZLSVKL+=o<;@ZO?KSGH"O4D OR@ZK=?FiOZG>E;"Q[GO4@2Ha
;">AzU"O]D]I<;BRG+H"O>ADDU"OKS-uNH">A@2HxG+O]@2H";>EzU"OC>ADNP6O]D GsU";a
BO]LxuNH<Gf@`K;B>XG>EK;DfD)G+>XMEM{Hi<DR;Kr@`MEO]<Lx<;DuOZL4mn;
G+H">ED\D GUB9uOp<>E=G+Kx<;iD uOZLNG+H">AD{zU"O]D G>EK;5IiP9=^O4<a
DU"L+>X;"Q~GH"OkFiO]L SVKL=o<;@`OYKSCSVKU"L[<MXGO]L;i<G>ElO+t
tW`t
SVKL?B9;<=?>A@fB">EDF<G2@2H~K;D O]lO]L+<M\+2Z
t/q`i]o`i
I"U;BOZLs<^l<L+>EO`G)9RKSF"L+O]@Z>EDOZME9x@ZK;a
G+LKMXMEO]BO`O4@`UG+>XK;@`K;iB>G+>XK;D]mkOcD GL+O]D+D?GO4D)GxGH"O4D O
@ZK;GL+KM5D GL+U@`GU"L+O]DNUiD >E;"Qo=?>E@ZLKatP6OZ;i@2H"=o<L+dD]IOZ=?F"Hi<a
D>X]>X;Q}GH"O]>XLD)G+LO];"QHG2Dx<;iBu%O4<d;"O]D+DO]D]I%>E;KL2BO]LoGK
BOZGO]L=?>E;"OGH"O[F"L+O]@Z>EDOfOZO]@`U"G>EK;|@Z>XL2@`U=?D G+<;@`O4D^U";a
BO]LNuNH">A@2H[<^F<L G+>E@ZU"MA<LGO4@2H";">AzUOCFiO]L SVKL=oDP6O]D G]m
Keywords
j<$l<"IB9;<=?>A@%B">EDF<G2@2HJI@`K;GL+KMD)G+LU@`GU"L+OIKFG>E=?>X4<a
G+>XK;JIj\ }I]P>X;<L9:GL+OZO%B>EDF<G+@2HJI$l>XLGUi<MSVU";i@WG>EK;v@Z<MEM
1. INTRODUCTION
¡
P_)O4@WGatKL>EOZ;GO4Bp=?O4DD+<QOsB>EDF<G+@2H?>ED<CME<;"QUi<QON@ZK;a
@ZOZFGGHi<GOZ;i<P"MEO]DB"<G+<k¢VKP"_)O]@WG2D+£:G+KfFLKl>ABO^<fSVU";i@Wa
G+>XK;<ME>G)9w¢/=^O4DD+<QO4£7P9?L+OZME9>X;"QvK;x<pG)9FiOZabDF6O]@`>X¤i@{>X=^a
F"MEOZ=?O];G2<G+>XK;JI-KL=?O`G+H"KB0mw¥GvL+U";qG>E=?OIGHORKP_)O4@WG
G+H<GLO4@`O]>XlO]D\<x=?O]D+D+<QOIiKL:l>EL G+U<M-=?O`G+H"KBc@]<MEM¦I0L+O`a
G+L>EOZlO]DNG+H"O?@`KL+L+O]DFiK;B>E;"QR@`MA<D+D)aDFiO4@`>X¤i@C=?O`G+H"KBY<;B
>X;lKdO4DN>XG]m:§H>ED:ME<GOvP">X;iB>X;QxKSB">EDF<G2@2H[G+<LQO`G+D:<MXa
MXKusD\<;9wKP_)O]@`G:G+KfF"MA<$9[GHO^L+KMEOpKS7GHO^L+O]@ZOZ>ElO]L:KPa
_)O]@`G]I-<DMEK;"Qw<D\G+H"OR;"O]u¨KP_)O]@`GC>X=?F"MEOZ=?OZ;G2DGH"OxO`a
FiO4@WG+O]BC>E;GOZLS/<@ZOs¢V>ADTDU"PD G>XGU"G+<PMXO©<ME<sª5>EDdKl^«ª5>ED+¬¬£`m
y U@2HG)9F6O`aD U"PiD)G+>G+UG+<P">XME>XG)9O];<PMXO4DoPiOZG G+OZL[@`KBOc<Pa
D)G+L+<@WG+>XK;<;B®H>XQH"OZL@`KBOcL+O`abUDOIN<;iB®>EDxGHOZL+O`SVKL+O
K;"OxKSGH"Ox=?<>X;~<Bl<;G+<QO4DKSNKP_)O4@WGatKL>EOZ;GO4BkME<;a
QU<QO4DZm
¥{DJ<N@ZK;DO]zU"O];@`OI4B"9;i<=?>E@(B">EDF<G2@2HK@]@`U"L2D6SVL+O]zU"OZ;Ga
MX9p>X;?KP"_)O]@WGatKL>EOZ;G+O]BFLKQL2<=oDZmT¯"KL->E;D G+<;i@`OIl>XLGU<M
=?O`GHKBp>X;lK@]<G+>XK;D5>E;vj<$l<«°j y±²² K@]@`U"LOZlOZL+9?³4´
GKoµ ² P9G+O@`KBO]Dp«8\ª5 Y¶ ²² 5>E; y·¸ ej: c¹¬"m y U@2H
ME<GOZatP6KU";iB@]<MEMEDC<LOvG)9F">E@]<MEMX9cO`FiO];D>XlOvK;=?KBOZL+;
BOZO]F"ME9YF">EFiO]MX>E;"O]BF"L+K@`O]D+DKL2DZIP6O]@Z<UDOpG+H"OZ9wG+L+<;DME<GO
GKRHi<L2Ba¦G+KabF"L+O]B>A@WGs>E;B>ELO4@WG{PL+<;@2Hw>X;iD)G+LU@`G>EK;DsGH<G
<L+OC<^@]<UDO\SVKLNMEK;"Q?F">EF6OZME>X;"OCPU"P"P"MEO]D«8\ºs:¹»$bm
nbGc>ADY;"K;"O`G+H"OZMEO]D+DYOZ@ZOZO4B>X;QME9¼B>X R@`U"MXGcG+KF"L+O]@`>ADOZME9
=?O]<DU"L+O^GH"OoG+>X=?OxDF6OZ;GpK;}B9;<=?>E@oB>ADF<G2@2H}>G2D O]MS
P9L+O]<M{KP_)O]@`G abKL+>XO];G+O]BF"L+KQL+<=?D]m½n;BO]O]B0I:l>XLGU<M
SVU";@`G>EK;[@Z<MEMAD%K@]@`U"LSVL+O]zU"OZ;G+MX9IuNH">E@2Hf=o<dO4D>GsB>X ?a
@`U"MXG-GK\>EDKMA<G+O%B>ADF<G2@2HG>E=?OSVLK=¼G+H"OLU;G+>X=?OKSL+OZQa
U"MA<L{@ZKB"Om¯"U"LGH"O]L=?KLOI@Z<MXM0SVL+O]zU"O];@`9<;Bw<=?KU";G
KSNL+U";G>E=^OfFiKMX9=?KL+F"H">AD=¾D GL+K;"QMX9kBOZF6OZ;iB}K;~@ZKBa
>X;QRD)G)9MEO<DNuOZMEM5<DL+U";G>E=?OF<L+<=^OZGO]L+D]m7¯>X;<MXME9IK;
=?KB"OZL+;kDU"F6OZL2D@]<MA<L\F"LK@ZO]D+D KL+D]IJ@Z<MXM7@ZKB"O?DO]zU"O];@`O4D
@Z<;PiO@`KabD+@2H"O]B"U"MXO4BuN>G+HpL+OZQU"ME<LT@ZKB"OI$uNH">A@2HCSVU"LGH"O]L
P"MEU"L+DGH"OxF">E@`GU"L+Omw8:>EDF<G+@2H}KlO]LHO]<BcGHOZL+O`SVKL+ORBOZa
FiO];B"D;"KGK;"MX9?K;oGH"OB>AD Fi<G+@2Hf@`KBO:DO]zU"O];@`O\>XG+DOZMXS)I
P"UGf<MEDKqK;GHOc@`KBOYDU"L+LKU";B>E;"QkGH"O@Z<MEM{<;BK;
GH"OfF"L+K@ZO]D+D KLp<P>XME>G)9kG+KcBO`G+O]@`G?<;BkG+<dOf<Bl<;G+<QO
KS->X;iD)G+LU@`G>EK;MXO]lO]M0F<L2<MEMXO]MX>AD=m
¥s;^O]D G>E=o<GOKS6B>EDF<G+@2HpKlOZL+H"O]<B0I$P<DO]BpK;vLO4<MF"LKa
QL2<=oD<;BxLO]MX9>E;"QpK;fDU"FiO]LND@]<MA<LF"LK@ZO]D+D KL%D>X=vU"ME<a
G+>XK;JI@Z<;fP6OSVKU;B>X;}«8:º:¹¿bm§H"OC<UGH"KL+D=?O4<DU"LO
<k=?O]B>A<;B>AD F<G+@2HKlO]LH"O4<B}KS»"m´ÀÁ>X;eNgCgÂF"L+Ka
QL+<=?DT<;Bx³]ÃmÅÄÀ>E;?eNgCg|FLKQL2<=oDJuN>XGH?<MEM=?O]=pP6OZL
SVU";i@WG>EK;iD7BO]@ZME<LO4Bpl>EL G+U<MJ¢¦<D(>AD-G+H"OsBO`S/<U"MXG7>X;oj<$l$<£Wm
¯KLK;"O%F"LKQL2<=[I]GH"O%KlOZL+H"O4<B\u<DT<D5H>XQHp<D5µÄÀÆKS
G+H"OsG+KG+<MOZO4@`UG+>XK;?G>E=?Om(®H">EMXO:OZl>ABOZ;@ZONSVL+K=ÇF"L+<@Wa
G+>E@ZOD U"QQO4D)G2DGH<Gs=^KD)G{j<$l<pFLKQL2<=oDO`H">EP">GsME>XG GMEO
F6KME9=^KLFH">ED=È<GLU;YG>E=?OIJ>XG>ED:GL+U"OvGH<G:SVKLCD K=^O
F"L+KQL+<=oD(GHO:KFG>E=?>X4<G>EK;iDG+O]D GO4BR>E;xG+H">EDD GUB"9R@Z<;
=o<dON<D-=pUi@2H?<D(<C» ² À½B>ÉOZL+OZ;i@`ON>E;^OZO]@`U"G>EK;^G>E=?OI
<D:BO]=?K;D GL2<G+O]B[P9GH"O^=?>E@ZLKatP6OZ;@2H=?<LdD]msnbG\GHUD
<F"FiO4<L2D0lO]L9\D O];D>G+>XlO(GK:KFG+>X=?>EZOB9;<=?>E@7B">EDF<G2@2HJI
>E;oKL2BOZLG+Kp<$lK>EBp>X;@ZU"L+L>E;"Q<CD>XQ;">¤6@Z<;G(F6OZLSVKL+=?<;@`O
F6OZ;<MG)9cuNH"OZ;kLO]MX9>E;"QK;GH"O?KP"_)O]@WGatKL>EOZ;G+O]BcB"O]D>XQ;
D G)9MXOm
¥{MG+OZL+;<G+>XlON>X=?F"MEOZ=?OZ;G2<G>EK;?G+O]@2H";>EzU"O4D<L+ON<$l<>EME<P"MXO
G+KoFiO]L SVKL=ÂB>EDF<G+@2H[GKo=vU"MXG>EF"MXOG+<L+QOZG+DuN>XGH"KUG{UD a
>E;"QrOZFiO];D >ElOcP"L+<;@2H®>E;D)G+LUi@WG>EK;iDZmÊ{;SVKLGU;<G+OZME9I
@ZK=?F<L+>E;"QGH"O7F6OZLSVKL+=o<;@ZO-KSGH"O4D O@ZK=?F6O`G>XG>ElO-G+O]@2Ha
;">AzU"O]Dp>EDvH<L+B0I-<;iBqGH"OxMX>XGO]L+<GU"L+OoG)9F">A@Z<MEME9L+OZF6KLG+D
=?O]<D ULO]=^O];G+D:KS(SVOZu¨<MXGOZL+;<G>ElO]D]IK;YK;"ME9K;"O^O`O`a
@ZUG>EK;[OZ;l>ELK;"=?OZ;G]m
n;pGH">ADTD GUiB9IuOF"L+KF6KDO%<;BCL+OZF6KLG5K;pGH"O%LO4D UMG2D5KS
<CFLKKSabKSa@`K;@`O]FG(=?O`GHKB"KMEKQ9vGKp=^O4<DU"L+OGH"OsF6OZLa
SVKL=o<;i@`ORKS{D O]lOZL2<M@`K;G+LKMD GL+U@WG+U"LO4DSVKLvB9;<=?>E@
B>ADF<G2@2HfK;f<$ËW/`tÌx)ÍpÎË$Ë}Ï5WtËÐcË2Ñ
Ë6Ò
ÑËÒÓË{ÔXËÍ`W
mn;GH">AD¤L2D G aD)G+OZFwD)G+UB9I"u%OCL+OZME9
K;\=?>A@`L+KabdO]L;"O]M$PiO];@2H"=o<L+d>X;"QG+KsBO`G+OZL+=?>X;"O7<;B=o<Qa
;">XSV9oG+H"OLO]ME<G>ElO{F6OZLSVKL+=o<;@ZO{KST@`K;G+LKM>X;D GL+U@`G>EK;D
U";iBOZL[<~MA<L+QOw;U"=vPiO]LfKSR$ËWÌÕ++Zt/26Ò
t/
m
§H"OCL+O]DU"MXG+DNDH"KuCI<=?K;Q^KGH"O]LGH">E;"QDZIG+H<G4Ö
×
{>EL G+U<M-=?O`G+H"KB@]<MEMTF6OZLSVKL+=o<;@ZOv>AD\H">XQH"ME9rÒZ
Ô"Z6Ò`i5?Ñs+2Z¦/:Ô"˦`W:<GT<NFi<LG>A@`U"MA<L
@Z<MEMJD>G+O
×
®H"OZ;fGH"O@Z<MXM0D>G+OH<D<MEKuÊ¢t´$aÃCG+<LQO`GG)9FiO4D+£
GKk=^O4B>EU"=Ø¢/¿ab¬YG+<LQO`G^G)9F6O]D2£vBOZQLO]OxKS\FiKMX9a
=^KLFH">ED=[I"KF"G>E=^>E]<G>EK;DN<LOCF6KD+D>XP"MEO\GH<Gp^
Ô6${Ô`VÍ`W?Ë62xË`+
2
ÎÏJÐ
ËÒoÑ"Ë+ÒÓË+
Ô6XËÍ`W
¢GHi<GC>ED]I0F"MA<GSVKL+=È>X;B"OZF6OZ;BO];GKFG>Xa
=^>E]<G>EK;i£
×qÙ
4+
2
Ë2Ñ+Zt
Ñ6
VÑÕ4ÑI4O4D F6O]@Z>E<MXME9
K;rH>XQHatF6OZLSVKL+=o<;@ZOfj: YD]ÖfGH"O[F6OZLSVKL+=?<;@`O
F"LK¤MEOTSVL+K=ÚB>XÉ6O]LO];GJ: YD5O`O]@ZUG>E;"QNK;\G+H"O7D<=?O
H<L2Bu<L+OMEKKdD >E=?>XMA<L4I]GH"KD O(SVL+K=¼GHO%D+<=?O7:
O`O]@ZUG>E;"Q?K;[B>XÉ6O]LO];GsHi<L2Bu<LO\MEKKdxB>XÉ6O]LO];G]m
§H">AD-F<FiO]L(>ED-KLQ<;">EZO4B<DTSVKMEMEKusDZm y O]@`G>EK;o´{L+OZl>EOZusD
B9;<=?>E@B>AD F<G+@2Hv>X=?F"MEOZ=?OZ;G2<G>EK;iD<;BL+OZMA<G+O]Bpu%KLd
<GcD KSG)u<LOI:L+U";atG>E=?O~D 9D GOZ=Û<;BH<L+B"u<LOkMXO]lO]M¦m
y O4@WG+>XK;ÃvF"L+O]DOZ;G+DKU"L=^OZGH"KBKMXKQ9R<;BoG+H"OCO`F6OZL+>a
=?OZ;G2<MiDO`G+U"FJm y O4@WG>EK;oµpF"LO4D O];G+D7DK=?OsKSKU"LL+O]DU"MXG+D
<;BvB">ED+@`UD+DO]DTGH"O]=[m-¯>E;<MEME9IDO]@`G>EK;^»\@ZK;@ZMXUB"O]D-<;B
F6K>E;G+Ds<GSVU"GU"L+OCLO4D O4<L2@2HxB>ELO4@WG+>XK;DZm
2. BACKGROUND
2.1 Monomorphism vs. Polymorphism
8{9;<=?>E@YB">EDF<G2@2H>EDoOZFiO];D >ElOwP6O]@]<UDO[GHOwG+<LQO`G
=?O`GHKB½B"OZF6OZ;B"DcK;GHO~LU;a¦G+>X=?O}G)9F6O}KS?GHO~LOZa
@`O]>XlOZL4I5uNH">A@2HqQOZ;OZL2<MEMX9c@]<;";KGCPiOfBO`G+OZL+=^>E;"O4BqU";G>EM
<@`GU<M0O`O]@ZUG>EK;Jm
Y<;9ÆB">ÉOZL+OZ;GwKFG+>X=?>E]<G>EK;GO4@2H";">AzUO]D[H<$lOcG+HUiD
PiO]OZ;oF"L+KF6KDO]BJIuNH">A@2Ho@Z<;?P6O:DOZO];?<D-S/<MEME>X;"QC>E;GKCG)uK
P"L+K<Bf@Z<GOZQKL+>XO4DZÖ
Ü?ÝÞ]ߦà~ß/áß/âãcà~ä6âTä6à~äiå$Ýæß/çRçè"é/é¦ê
y
>E;@`O?B9;<=?>A@
B>ADF<G2@2Hc>AD:OZFiO];D >ElOI6GH"O^S/<D GO4D)Gu<$9fG+KB"Kf>XG
>ADGKR<$lK>ABR>XG{<MXGKQO`G+H"OZL4m
7<L>EKUD-d>E;B"D(KSÔ+ÕËë¦Ì+Ô:Ë6ËìÌ
¢¦D Ui@2H?<D
«8\°e¹»I y ªe Y¹¹"I y º:ís¶ ²² £ROZ;<P"MEOYGHOBOZa
l>EL G+U<ME>X4<G+>XK;ÆKS^F"L+Kl$<P"ME9®=^K;"K=?KLF"H>E@k@Z<MXMAD
¢¦@Z<MEMADuN>XGHfK;"ME9oK;"O{G+<LQO`GG)9F6O4£`IL+OZFME<@`>E;"QG+H"O
OZF6OZ;iD >ElO%ME<GO`abP6KU";Bp@Z<MEMP9P9C<sB>ELO4@WG4I@2H"O]<Fa
O]L]IO]<LME9atP6KU;B@Z<MEMtm§H">ADoG+O]@2H";>EzU"OwH<DoG+H"O
<B"BO]Bc<Bl<;G2<QOpKS%<MXMEKuN>X;QR>X;MX>E;">E;"QfKS(G+<LQO`G
=?O`G+H"KB"D]I:G+HUDYD GL+>XF"F>X;"Q®<$u<$9<MEMCKS^GH"O}@]<MEM
KlOZL+H"O]<B:<;BCOZ;i<P"ME>X;Q{<N=?KL+O7L2<B>A@Z<MKF"G>E=^>E]<a
G+>XK;fKSTG+H"OC>X;MX>E;"O]B[@ZKB"OCP9f@`MA<D+D >A@Z<M6=?OZGH"KB"D]m
îpÌ6Ëv/[+Ô¦^Xï4Ët/¢VOmQ~«8:8°¶¹¿"Iº{{¹µV£
DU@2Hx<DO]=^FMXK9O]BoP9^GH"O y :ð¼º{KG y FiKGñiò y OZLa
lOZLvj: ó<MXMEKusD=?OZGH"KB}>E;"ME>X;">E;"Qk<GvL+U";}G+>X=?OI
uNH">A@2HCF6OZL+=^>XG+DJSVU"LGH"O]L5KF"G>E=^>E]<G>EK;CKS@]<MEMEDJGH<G
<LO(=?K;K=?KL+F"H">A@->X;CK;"ME9\<F<L G+>E@ZU"MA<LJL+U";CKSG+H"O
F"L+KQL+<=[I]O]lOZ;GH"KU"QH=vU"MXG>EF"MXO%G+<LQO`GTG)9F6O]D<L+O
F6KD+D >EP"MEOC<SGO]Ls@`K=^F>XMEOG>E=?Om
Ü?ÝÞ]ߦà~ß/áß/âãYÝä6éVôJà~äiå$Ýæß/çfçè"é¦é/ê n;~D F">XGOxKSN<MEM
OZÉ6KL G2DZID K=?O:@Z<MXMAD@Z<;;"KGPiO\LO4D KMXlO]B?<D%=?K;"Ka
=?KL+F"H">A@m
¡
FG+>X=?>EZ>E;"QwGHORLO]=o<>E;">X;QwFiKMX9=?KLa
F"H>E@-K;"O]D7¢¦@Z<MXMAD0uN>XGHC=?KL+O-GH<;K;"O-G2<L+QO`G0G)9F6O4£
>ADN@`L+U@`>A<Mtm
Ù
+ÕËÁ¦Ì+ÔRË6ËÌ
@Z<;<MADKxKF"G>E=^>EZO^G+H"O]DO
F6KME9=^KLFH">E@{@Z<MEMADZIO]DF6O]@`>A<MEME9vuNH"O];RG+H"O{;U"=vPiO]L
KSF6KD+D>XP"MEORG)9F6O]Dp>EDvlO]L9MXKuCmY¯KLpOZ"<=?F"MEOI(<
@ZK=?F">EMXO]L-@]<;vLO]F"ME<@`O<{MA<G+O`abPiKU";B^@Z<MEMuN>G+HpG)uK
F6KD+D >EP"MEORG2<L+QO`GvG)9FiO4DpP9~<c@ZK;B">G+>XK;<MP"L2<;@2H
<;B|G)u%K}D G+<G+>E@IB">XL+O]@`G]IO]<LME9atP6KU";iBr@Z<MXMAD]mƥG
L+U";CG+>X=?OI<{@2H"O]<Fp@`K;B>XG>EK;<MP"L2<;@2H<;B@2H"O4<F
D G+<G>A@x@Z<MXM<L+ORO`O4@`UG+O]B}>E;D GO]<B}KSsK;"OROZF6OZ;"a
D>XlOsMA<GOZatP6KU;Bo@Z<MXM¢/D GL+OZ;"QGHoL+O]BU@`G>EK;i£`m
y
U@2H
<D GL+OZ;QGHxLO4BU@WG+>XK;oKF6OZL2<G+>XK;o>ED%UDU<MEMX9?<uN>E;
K;c@`U"L+L+OZ;G:F"L+K@`O4DDKL2DZI6D >E;@ZOvF"L+O]B">E@`G>EK;YKS%@`K;a
B>XG>EK;i<M{PL+<;@2H"O]D?>ADRO4<D>XO]LoGHi<;®F"L+O]B>A@WG+>XK;®KS
>E;B>ELO4@WG{PL+<;@2H"O]D]ms¯"UL G+H"OZL+=?KL+OI"G+H"OvB"K=?>X;i<;G
¢/=^KD)Go@`K=?=^K;i£^@Z<MXMNB>ELO4@WG+>XK;|@Z<;rP6O[>X;"ME>E;"O]B0I
MEO]<B>X;QrG+KD>E=^>EMA<LwKF"G>E=^>E]<G>EK;¼KF"F6KLGU";>G+>XO4D
<DoSVKL=?K;"K=?KL+F"H">A@Y@Z<MXMADZI{uN>G+HGHOQU<L2BKS
<?@2H"O4<F[@`K;iB>G+>XK;<M0PL+<;@2Hk«¥{º:¹¿tm
îpÌ6Ëv/k+Ô¦^Xï4Ët/r@]<;®<MAD KkL+OZF"MA<@ZO[<q@]<MEM
G+H<GR>ADxBK=?>X;<GO4B|P9|K;"O[G2<L+QO`G?G)9F6Oc<GRL+U";
G+>X=?OI^OZ;i<P"ME>X;Q®GH"OD+<=?O~KF6OZL2<G+>XK;õ<D<P6KlO
uN>XGH[>E;@`L+O]<D O4BoG)9FiOCFLO4@`>AD >EK;Jm
@]<MEMED(<LO<=?OZ;i<P"MEOGK\G)u%K<FF"LK<@2H"O4DZÖ0Hi<L2Bu<LO<;B
DKSG)u<L+Om
2.2 Hardware Solutions
:>XLGU<M=?O`G+H"KBo>E;lK@Z<G+>XK;D(>E;xj<$l$<\G+L+<;DME<GOI>X;RGH"O
;<G>ElO^=o<@2H">E;"O?@`KBOI0>E;GKfG)u%KBOZF6OZ;iBOZ;GCMXK<B"D{SVKMXa
MEKu%O4BpP9p<;[6Ò++Z(ö`Ë62Ñ?¢VKL(>X;iB>XL+O]@`G0_)U"=?Fi£Wm(§H">AD
>E;B>ELO4@WGxPL+<;@2H>EDoL+O]DF6K;D>XPMXO[SVKLR=?KD GxKS\GH"O@Z<MEM
KlOZL+H"O]<Br«8{L+>² ³`bm ± L+<;@2H"O]DC<LO?OZF6OZ;iD >ElO?K;q=?KBa
O]L;JIB"OZOZFMX9F>XF6OZME>X;O]BvF"LK@ZO]D+D KL+D5PiO4@Z<UiD O%GH"O;"OZG>E;a
D GL+U@WG+>XK;@]<;";KGsP6OSVO`G+@2HO]BuN>G+Hw@`OZLG+<>X;G)9RU;G+>XMJGH"O
P"L2<;i@2H~>ED^L+O]DKMElO4B0IG)9F>E@]<MEMX9}<Go<YMA<G+OD G+<QOf>X;rGH"O
F">EF6OZME>X;"OR¢/OmQmEI<SG+OZLC³
²
a)´
²
@`9@`MEO]DK;<
·
OZ;G+>XU"=n n n £`m
wKD)GF"LK@ZO]D+D KL+DG+L9GK¼<$lK>AB¼GH"O4D O|F">EFiO]MX>E;"OrPU"Pa
P"MEO]DRP9|D F6O]@ZU"ME<G>ElO]MX9|O`O]@ZUG>E;"Qq>X;iD)G+LU@`G>EK;DRKS\GH"O
=?KD GME>XdOZME9vOZO]@`U"G>EK;RF<GHJI<DF"L+O]B>A@WG+O]B?P9oD O]F<L2<G+O
öZË+ÑÔ6++Ò/`t/¼=?>E@ZLKab<L+@2H">XGO4@WG+U"LO4DZm¾¯"KLYO`"<=^a
F"MEOI< ± L+<;@2Ho§T<LQO`G ± UÉ6O]L{¢± § ± £(D GKLO4D-K;"OG2<L+QO`G
SVKLNO]<@2H>E;B>ELO4@WG]I=pU"MXG>Xatu<$9oP"L2<;@2H[<;iB@]<;F"L+O]B>A@WG
=?K;K=?KL+F"H">A@7P"L2<;i@2H"O]DTuN>G+H^@ZMXKD O%GK^³
²²
À<@Z@`UL+<@`9I
uNH">A@2H^LO]=^KlO]D5GH"OP"L2<;i@2Hp=?>EDF"L+O]B>A@WG+>XK;pKlOZL+H"O]<BC>X;
G+H"OCF"L+K@ZO]D+D KL]m
{;SVKLGU";i<GO]MX9IF6KME9=^KLFH">E@C@]<MEMED{<L+OCH<L2BOZLG+KRF"L+O`a
B>A@WG4m y KF"H">AD G>A@Z<G+O]BkG)uKabMXO]lO]M(>X;B">XL+O]@`GP"L+<;@2HqH<L2Ba
u<L+OoF"L+O]B>A@WG+KL2DR«eº · ¹¬%@]<;}F"L+Kl>EBOR<cD >E=?>XMA<L^<Ba
l<;G2<QOs<D<
± § ±
SVKL%=pU"MXG>XatG+<L+QOZG>E;B>ELO4@WGP"L2<;i@2H"O]D
G+H<G{<LO[÷ L+OZQU"MA<L2øp<;iBfuNHKDO:G2<L+QOZGN@ZKL+LO]ME<GO4D%uN>XGH
G+H"OCF<D GNH">AD)G+KL+9RKS-O`O]@ZUGO4BxPL+<;@2H"O]D]m
{;SVKLGU";i<GO]MX9I>E;B>ELO4@WG?P"L2<;@2H"O4Dv<LO=?KL+OfB>X R@`U"MXG
G+K^FLO4B>E@`GGH<;[@ZK;B">G+>XK;<M0P"L2<;i@2H"O]D]m¥½@ZK;B">G+>XK;<M
P"L2<;i@2HHi<DNK;"MX9fK;"OG+<L+QOZG]I"O];@`KBO4B>X;[G+H"Op>E;D GL+U@Wa
G+>XK;Æ>XG+DOZMXS^<D<;¼KÉ0D OZG]I\D K<rFLK@`O4DDKLfK;"ME9;"OZO4B"D
G+KwF"LO4B>A@WGpuNH"OZGH"O]LG+H"Ox@`K;B>XG>EK;<M7P"L2<;@2Hk>ADCG+<dO];
KL\;KGx¢VK;"O?P">XG2£Wmon;iB>XL+O]@`GCP"L+<;@2H"O4D\@]<;kH<$lO^=o<;9
B>XÉOZL+OZ;G:G2<L+QOZG+D{<;BwG+H"OZL+O`SVKLOpLO4zU>XL+OpF"L+O]B">E@`G>EK;YKS
G+H"O}@`K=?F"MEO`G+OkG+<L+QOZG<B"BL+O]D+Dk¢¦Ã´rKL[¿µP">XG+D2£Wm y Ka
F"H>ED G>A@Z<GO]BÚFLO4B>E@`GKL+D~«8\º{¹¬<"I8\º{¹¬P?@Z<;ÚL+O]<@2H
H">EQHÊF"LO4B>A@WG>EK;½L2<G+O]D]IpP"U"GQO];"OZL2<MEME9¼L+O]zU">ELOrME<LQO
K;ab@2H>XFkD)G+LU@`GU"L+O]D]mn;B">XL+O]@`GPL+<;@2HcF"L+O]B">E@`GKL2D{GHUD
G+OZ;BxGK?P6O\=?KLO@`KD)G+MX9R<;Bx>E;F"L+<@WG+>E@ZO:MEO]D+D<@Z@ZU"L2<GO
G+H<;[@`K;B>XG>EK;<M0P"L+<;@2HxFLO4B>E@`GKL+D¢ ± L2<;@2H[ºs>AD GKL+9
± UÉOZL2DZI ± º:§ND+£`I"OZlOZ;>X;[=?KBOZL+;fFLK@`O4DDKL2D]m
§H"O]LOZSVKL+OI4LO]F"MA<@`>E;"Q{<GJGHO%@`KBO%MXO]lO]M<NL2<G+H"OZLTU";"F"L+O`a
B>A@WG2<P"MEO>X;B">XL+O]@`G]I=pUMG+>abu<$9P"L2<;i@2HP9\K;"OKL-D O]lOZL2<M
=?KL+OsF"L+O]B">E@`G+<PMXO\@`K;iB>G+>XK;<MiP"L2<;@2H"O4D(SVKMXMEKu%O4B?P9^<
D G+<G>A@x@Z<MXMDOZOZ=oD^<YME>XdOZME9KFG>E=?>X4<G+>XK;JI(H"OZMEF">E;"QGH"O
F"L+K@`O4DDKL4m7§H">AD{D GL+OZ;"QGH[LO4BU@`G>EK;[KS7@`K;GL+KMJD GL+U@Wa
G+U"LO4D>AD%O`F"MEK>XGO]BRP9oDOZlOZL2<M"KSJGH"O{GO4@2H";">AzUO]D%>X;xGH"O
;"OZG{D O4@WG>EK;5m
2.3 Software Solutions
>X;lK@]<G+>XK;DGHi<Go<L+Ox<@`GU<MXME9=?K;"K=?KL+F"H">A@I-P9qLOZa
F"MA<@`>E;"QkGHOc@`KD)G+MX9~F6KME9=?KL+F"H">A@@]<MEM{DO]zU"OZ;i@`O[P9r<
B>ELO4@WG\_)U"=?FJmr¯"KLvOZ"<=?F"MEOI7l<L+>EKUDSVKL+=?D^KSsuNH"KMEO
F"L+KQL2<=ù<;<MX9D>ED¢/OmQmEIT«±Ny ¹¿I y º:ís¶ ²² £NDH"Ku¼GH<G
=?KD GY>X;lK@]<G>EK;iDf>E;ÚKP_)O4@WGatKL>EOZ;GO4BMA<;"QU<QO]D[<L+O
=?K;"K=^KLFH">E@m
y
K=?Oj: YDUiD O<oB9;<=?>E@<FF"LK<@2HJm(¯KLNO`"<=^FMXOI
ºsKG
y
F6KGxL+OZME>EO]DoK;<kSVKL+=úKS\>E;"ME>X;"Ok@Z<@2H">X;Q«8 y
µiI
·
¬Ä4bm?§H"O^¤L+D GG>E=?O?<l>EL G+U<M(=?O`G+H"KBc>E;lK@Z<G>EK;
>ED5O`O]@ZUGO4B0I>XGT>ADJL+OZF"MA<@ZO]BP9\<:B>ELO4@WGT@]<MEMF"L+O]@ZO]BO4BP9
<^G)9FiO@2H"O4@2dm y U"PDO]zU"O];GsO`O]@ZUG>EK;DuN>XGH[G+H"OpD+<=?O
G+<LQO`G<LOGHUD-B>ELO4@WG4IuNH"OZL+O]<D5OZO4@`UG+>XK;DuN>G+Hv<\B>XSa
SVOZL+OZ;G7G2<L+QO`G(S/<MXM6P<@2dGKv<D)G2<;B<L2Bvl>EL G+U<MSVU";@`G>EK;
@Z<MXMtm
¥{@`GU<ML+U";atG>E=?OvF6KME9=?KL+F"H">AD =û@]<;<MEDKxP6O^KFG+>X=?>Xa
ZO4B}>X;|D KSG)u<LOI5SVKLvOZ<=?F"MXOxP9qUD>E;"Q ± >E;<L+9k§TL+OZO
8{>ADF<G2@2Hq¢± §N8\£`Ii<Ds>X=?F"MEOZ=?OZ;G+O]B>X;[G+H"O y =o<MEM¸ >XÉ6O]M
@`K=^F>XMEOZLs«ÅüJeNe¹Ä$tm ± §N8®LO]F"MA<@`O4D-<\DO]zU"O];@`OKS6F6Kua
OZLSVU"M-B>EDF<G+@2Hw>E;D)G+LUi@WG>EK;iDsUD>X;Qf<;w>E;B>EL+O]@WG\P"L2<;@2H
P9<~DO]zU"O];@`OcKSD >E=?F"MEOZLx>E;D GL+U@WG+>XK;Dc¢¦@`K;B>XG>EK;<M
P"L2<;@2H"O4D?<;BB>ELO4@WGR@Z<MXMAD+£`m|®HOZ;|GH"OYDO]zU"O];@`OKS
D >E=?F"MEOY>X;iD)G+LU@`G>EK;DRLO]=?<>X;iDRD =o<MXMtIN>G@Z<;®P6OY=?KL+O
O` R@`>EOZ;G?GHi<;|<k@Z<MXMG+H"LKU"QH<cl>EL G+U<MSVU";i@WG>EK;|G+<a
P"MEOI:<;BÆDH"KU"MEBFiO]L SVKL=ýF<L G+>E@ZU"ME<LME9u%O]MXMK;ÆF"LKa
@`O4DDKL2DuN>G+Hc<@]@`U"L2<G+O@`K;B>XG>EK;<M5P"L2<;@2H[F"L+O]B">E@`G>EK;
<;BcME<LQO
±
º:§m¥
±
§N8ë>ADC<fD G+<G>A@plOZL2D >EK;KSuNH<G
>ED\@`K=?=^K;"ME9d;"KuN;Y<D{< · KME9=?KLF"H>E@n;"ME>E;"Ooe<@2H"O
«ºe{¹³`bm¥ · ne~@ZKMEMXO4@WG2D-G+<LQO`G+D(B"9;i<=?>E@]<MEMX9^<G7L+U";
G>E=?OR¢V>XGs>EDs<^L+O]D GL+>E@`GO4BRSVKL=þKSDOZMXSat=?KB>XSV9>X;"QR@ZKBO4£`I
O`ÉO]@`G>ElOZME9vGL2<;DME<G>E;"QC<CMEOZ;"QGH9p=?O`G+H"KBoMEKKdU"F?F"LKa
@`O4DD>E;G+K\<DO]zU"O];G+>E<MD O4<L2@2HCGH"L+KUQHv<\D=?<MXM;U"=vPiO]L
KSNG2<L+QO`G2DZmk§H"OcÍ
2ÿ`Z62v@`K;G+LKM%D GL+U@WG+U"LOxO`OZLa
@`>AD O4BR>E;xKU"L%=?>A@`L+KpP6OZ;@2H=?<LdoDU">XGO?¢/DOZO:DO]@`G>EK;Ã"mã
>EDN<d>X;fGKvGH"OC>E=?F"MEOZ=?OZ;G+<G>EK;KS-< · ne®BO4D@ZL>EPiO4Bx>E;
«ºe{¹³`bmT¥{D>E;G+H"O%MA<GGO]LTF<FiO]L]IuO7SVKU";BGH<G=?OZQa
<=?KL+F"H">A@^«8\ºs\¹»$5@]<MEMJD >XGO4DC¢V=?KL+O:GH<;³ ² F6KD+D >EP"MEO
G+<LQO`G\G)9F6O]D2£:<L+OpG+KKMA<L+QOSVKLC<fDO]zU"O];G+>E<MÍNGK[P6O
@`KD)GatOZÉ6O4@WG>ElOm
e%H<=vPiO]L+D\<;iBke%H"O];<MADKRF"L+KF6KDO]BY<fH9PL>ABw>E=^FMXOZa
=?OZ;G+<G>EK;w=?O]@2H<;">AD = «eNe¹¹TSVKL:B"9;i<=?>E@pB>EDF<G+@2H
GH<GT@Z<;C@2H"KKDOP6O`G)uOZO];C<MXGOZL+;<G>ElO->X=?F"MEOZ=?O];G2<G+>XK;D
KS(l>XLGUi<M5@]<MEMEDNPi<DO]BK;[l<L+>XKUDH"O]U"L>AD G>A@ZD]m§H"OpO`a
FiO]L>E=?OZ;G+D>E;[KU"LsD GUiB9f@ZK=?F"MEOZ=?OZ;GGH"O]>XL:<F"F"L+K<@2HJI
D >E;@ZOCu%O<>X=GKR=?KL+OF"L+O]@`>ADOZME9fBOZ¤;"OGHOQ<>X;DN<;B
@`UG+KÉYF6K>E;G+DL+O]<@2Hi<P"MEO{uN>XGHO]<@2HRGO4@2H";">AzU"OK;x=vU"MXa
G>EF"MEOCF"ME<G SVKL=oD]m
3. METHODOLOGY 3.1 Overview
OD)G2<LGO4BkGH">ADpuKL+dc>E;}KL2BO]LCGKc¤;B}KUGpuNH"OZGH"O]L
@`K;G+LKMD GL+U@WG+U"LO%D)G+LO];"QG+H\L+O]B"U@WG+>XK;@`KUMEBP6OUDO]B\G+K
KFG+>X=?>EZOB9;<=?>E@CB>ADF<G2@2HU;BOZL:D F6O]@Z>¤i@OZO]@`U"G>EK;
>tmOmGKo¤i;BwKU"G{uNH"O`G+H"OZL:F"MA<G SVKL=Â>E;BOZF6OZ;iBOZ;G:KFG>Xa
=?>E]<G+>XK;f>ADSVO4<D>XP"MEOm
n;KL2BOZLfGK®<MXMEKuÈF"MA<G SVKL=ó>E;BO]FiO];BO];GYKFG>E=?>X4<a
G+>XK;vG+KCPiO{O`ÉO]@WG+>XlOIG)u%K@ZK;B>XG>EK;iD-=pUD GH"KMEB0m-¯>XL2D G]I
D GL+OZ;"QGHabL+O]BU@Z>X;QKFiO]L+<G>EK;D=vUD GJPiO7QU">ABO]B\P9:FME<G a
SVKL=þ>E;BO]FiO];BO];G:>X;SVKL=o<G>EK;
G+H"O<;<MX9D>ED=o<$9R>E;a
@ZMXUB"OF"L+K¤MEOpB"<G+<?>XS7>G{>ADs;KG{F"MA<GSVKL+=^abDFiO4@`>X¤i@m
y
O4@Wa
K;B0IiGH"OvFiO]L SVKL=o<;i@`OKS@`K;G+LKM5D)G+LUi@WGULO4Ds=pUiD)G\PiO
@ZK;D>ED GO];GN<@`L+KD+DF"ME<G SVKL=oD]m
§H"OY¤L+D Gx@`K;B>XG>EK;®>AD?SVU"MX¤MEMXO4B®P9rl<L+>XKUD?SVKL=oDoKS
D G+<G>A@{F"L+KQL+<=h<;<MX9D>ED<;BxF"L+KQL2<=^abMXO]lO]MF"L+K¤ME>E;"QI
<;Br=o<;9~D GUiB>XO4DoD HKuëGH<G?KFG>E=?>X4<P"MEOw@Z<MXMND>G+O]D
<LOC@`K=?=^K;Jm
§H"OqDO]@`K;BÆ@ZK;B">G+>XK;Æ;"O]O]B"DG+K|P6OqlOZL+>X¤O]B0m ¸ lO];
G+H"OqLO4<DK;<P"MXOk<D+D U=^F"G>EK;G+H<GYB>EL+O]@WGwD G+<G+>E@q@]<MEMED
<LO^S/<D GO]L\GH<;k=?K;"K=?KL+F"H">A@vl>ELGU<M(K;"O4D=?<$9c;"KG
<MXu<$9D{H"KMEBc>X;kF"L2<@`G>A@`O?BU"O^GK[>E=^FMXO]=^O];G+<G+>XK;cSVO4<a
G+U"LO4DZI<GJGH"O%l>XLGU<M=o<@2H">X;O7MXO]lO]MKL<GJG+H"OFLK@`O4DDKL
=?>A@`L+Ka<L2@2H">G+O]@`GU"L+O7MEOZlO]M¦m¯"KL>E;D G+<;@`OI< · O];G+>XU=½n n n
D GKLO4DG+H"Of=?KD)G?LO4@`O];GvG+<LQO`GvKS{>E;B>ELO4@WG?P"L+<;@2H"O4DZI
uNH">A@2Hr@]<;~=o<dOR=?K;"K=?KL+F"H">A@ol>XLGU<M@]<MEMED^<DpO` ?a
@Z>XO];G{<DND)G2<G+>E@@Z<MXMAD]m
n;G+H"O(;"O`GTDO]@`G>EK;uO7B>ED+@`UiDD0KU"L0O`F6OZL+>X=?O];G2<MSVL2<=?OZa
uKL+dwGKw=?O4<DU"LO?F6OZLSVKL+=o<;@ZO^KS@ZK;GL+KM7D GL+U@`GU"L+O]D
<@`L+KD+DB">ÉOZL+OZ;Gsj\ <;BfH<L2Bu<L+O:FME<G SVKL+=oDZm
3.2 Experimental Setup
y >E;@ZOwu%OSVK@`UD?K;|F6KME9=?KL+F"H">A@@]<MEMED]I%<kMA<L+QOl<L+>a
OZG)9ÆKS?O`O4@`UG+>XK;P6OZHi<$l>EKL2Dw<;iB@ZK;GL+KMD GL+U@`GU"L+O]D
H<DoG+K~PiO=?O]<DU"L+O]BK;D O]lOZL2<M{F"ME<G SVKL=oD]mõ§H"OZL+O`a
SVKLOIu%OCBO4D >EQ;[<?@`K=?F"L+OZHOZ;D>XlO\DU">XGOKS(j<$l$<v=?>E@ZLK
P6OZ;@2H=?<LdD%<D<F"L+KKSabKSa@`K;i@`OZF"GD >E=pU"MA<G+>XK;RKSJl<L a
>EKUDx>X=?F"MEOZ;G2<G>EK;iDoKSB9;<=^>A@YB>ADF<G2@2H®>X;®l<L+>EKUD
j: YD]m¼§H>EDR<MXMEKusD?UD?G+KqGO4D)GoG+H"OYF6OZLSVKL+=?<;@`O[KS
@ZK;GL+KM{D GL+U@`GU"L+O]DxU";BO]Lf@`K;GL+KMEMXO4BO`O]@ZUG>EK;@ZK;a
B>XG>EK;iDZI0MEOZlOZL2<Q>E;"Q?G+H"OvuN>ABO?<$l<>EME<P">XME>XG)9KS(GH"O?j<$l$<
\ þG+K{=?O]<D U"L+OK;pB>XÉOZL+OZ;GOZO]@`U"G>EK;pO];l>EL+K;"=?OZ;G2DZm
¥{MXMPiO];@2H"=o<L+dDJUDO(G+H"O%D+<=?ODU"F6OZL2D)G+LU@`GU"L+OÖJ<sMXK;"Qa
L+U";";">E;"QYMEKKFkGHi<Gv@]<MEMEDv<wD)G2<G>A@oL+KUG+>X;ORuNH">A@2HkF6OZLa
SVKL=oDvGH"O=?O]<D U"L+O]BrB>EDF<G+@2HJmr§HOfL+O]@ZOZ>ElOZLvKP_)O4@WG
¢¦<@WG+U<MEME9I>XG+DTG)9FiOn)8£>EDL+O`G+L>EOZlO]BCSVL+K=õ<:MA<L+QO%<LL2<$9I
uNH">A@2H>ADJ>E;">XG>A<ME>X]O]BSVL+K=Ú<¤MEO7G+H<G-D)G+KL+O]DJ<NFi<LG>A@`U"MA<L
OZO4@`UG+>XK;qF<GGOZL+;~<Dp<wD O4zUOZ;@ZOoKSG)9FiORn)8\D]m§H">AD
>E;">XG>A<ME>X4<G>EK;xF"LK@ZO]D+DO];D ULO4D(GHi<GN@`K=?F">EMEO`atG>E=^O\F"L+O`a
B>A@WG+>XK;KSG+H"O^G)9F6O?F<GGO]L;k>ED\>E=?FiKDD>XPMXOm^8:>ÉOZL+OZ;G
¤MEO]DND GKLO<^l<L+>XOZG)9RKSTG)9F6On)8õDO]zU"OZ;i@`O]D]IL+OZF"L+O]DOZ;G a
>E;"Q?B>ÉOZL+OZ;GF<GGO]L;D<;iBxBO]QL+OZO]D%KSTFiKMX9=?KL+F"H">AD =[m
§H"O{O`FiO]L>E=?OZ;G+<M"F<L+<=^OZGO]L7D F<@`OG+HUiD7l<L+>XO4D(<MEK;"Q
G+H"LO]OCB>X=?O];D >EK;iDZÖ
vä6âÞZåäiéê]ÞZåçÞTåê
ºsKuqBKsB>XÉ6O]LO];GB>ÉOZL+OZ;G5@ZK;a
ç5Þ4ß/ä6âÝèÞ]ÞåâTê §H>EDsB">X=?OZ;iD >EK;H<DG+H"L+OZOLOZa
MA<G+O]B[D UPabB">X=?OZ;iD >EK;D]m¯T>EL2D)G4I"GHO
b˦/voö2`
KS%F6KD+D >EP"MEO^L+O]@ZOZ>ElO]L{G)9F6O]DC<GG+H"OoB>EDF<G+@2HqD >XGOI
uNH">A@2H[>X;U"OZ;i@`O]DNGH"OCF"L+KQL+<=þ@`KBO<;B[@Z<;[P6O
BOZGO]L=?>E;"O]BwP9[F"L+KQL+<=Â<;<ME9D >ADsP6O`SVKLOvO`O]@ZUa
G+>XK;Jm y O]@`K;B0I0G+H"OYÒÌË^/Ri?ö2Z{KSLO4@`O]>XlOZL
G)9F6O]D{<GsGHOvB>AD Fi<G+@2HYD>XGOIiGHi<G{>ADNG+H"OpL2<;"QOCKS
G)9F6O]DRK@]@`U"L+L>E;"Qq>E;Æ<qF<LG>A@`UME<LRF"L+KQL2<= LU";5m
§H">EL2B0IGHO\Ô"˦`W?KSL+O]@ZOZ>ElOZLG)9F6OCn)8:D]IGHi<Gs>AD
G+H"OYKL2BO]LR<;Bl<L+>E<P">EMX>XG)9rKS\L+O]@ZOZ>ElOZL?G)9F6O]DR<G
L+U";fG>E=^Om
ç5Þ4ß/ä6ââJß/åäiâàâÞ]ê §H">ADJB>E=?OZ;D>XK;H<DG)uK
L+OZMA<G+O]BD UPabB">X=?OZ;iD >EK;D]Ö6GH"O{]WtË?Ë+Ñ6JUD O4B
<;BRG+H"O\Ô6+]2
+
>XGs>ADLU";[K;Jm
¸ <@2H\B"<G+<F6K>E;G%¢G+>X=?>E;"Q£uN>XGH>X;G+H">ED5F<L2<=?OZGOZL0DF<@ZO
>ED=?O]<D U"L+O]B½<DwSVKMXMEKusDZmú¯T>EL2D)G4IpG+H"OrP6OZ;@2H=?<Ld>AD
LU;Ú»rG>E=?O]D[KlOZL[<|MEK;QÚ¢ ³
²
=?>XMEMX>EK;6£MXKKF5I:uNH">A@2H
Q>ElO4DC<÷ MEK;"Q[L+U";}<$lOZL2<QO]øoL+U";";>X;"Q[G+>X=?Omf§H">AD<$la
OZL2<QOp@`K=^FL>AD O4D{K;"ME9fG+H"O^MXKKFF<LG^¢/;"KG\GHOv>E;">XG>A<MXa
>X4<G+>XK;i£Wm-®H"O];oO`O]@ZUGO4BoK;RB9;<=?>E@]<MEMX9vKFG+>X=?>EZ>E;"Q
j\ YDD U@2H<Dxº{KG y FiKG]IsG+H">ADxOZO4@`UG+>XK;G>E=?Ok@ZK=^a
F"L+>EDO]DxPiKGHG+H"OkO`O]@ZUG>EK;Æ<D~÷+@`KMAB@ZKB"O]ør<;BG+H"O
O`O]@ZUG>EK;|<DvKFG+>X=?>EZO]BrK;@ZORG+H"OfKFG>E=?>X]OZL^H<D^BOZa
GO]L=?>E;"O]BG+H"OCMXKKFw>EDs<q÷H"KG2ø^K;"Om§H"Oj: >ADG+HUiD
Q>ElO];<=?F"MEOYKF"F6KLGU;">G)9G+K}SVU"MEMX9®KFG>E=?>X]Oc@`K;G+LKM
D)G+LUi@WGULO4DZmo§H"O];JIJG+H"O?PiO];@2H"=o<L+dY>ADLOZatL+U";}»RG+>X=?O4D
KlO]Lv<YlOZL+9qMXK;"Q|¢¦¿
²
=?>EMXME>EK;i£pMXKKFJI7uNH">A@2HrF"L+Kl>EB"O]D
<÷ lO]L9[MEK;"QL+U";k<$lOZL2<QO]ø"m§HO?B">ÉOZL+OZ;@ZO?PiOZG)u%O]OZ;
GH"O4D O?G)uKY<$lO]L+<QO4DZIN÷MXK;"Qø[<;iB¼÷lO]L9YMEK;Qø"I5LO]F"LOZa
D O];G+DsK;"ME9÷H"KG2ø"IiKFG+>X=?>EZO]BYMXKKFiDZI6<;BwQ>XlO]DNUiD{KU"L
¤;<M0LO4D U"MXG]Ii<SGO]LN;"KL+=o<ME>X4<G+>XK;RGKw³ ² =?>EMXME>EK;[MXKKFDZm
§H"OGH"L+OZO}B>E=?OZ;D>XK;DKSG+H"OqF<L2<=?OZGOZLD Fi<@`Oq<L+O
BO`G2<>EMXO4B>X;[D O4@WG+>XK;DNÃ"mÃ"I"Ãmµo<;iBfÃm»"m
3.3 Various control structures
Of=?O]<DU"L+OR<wl<L+>XOZG)9KSs@`K;G+LKMD)G+LUi@WGULO4DCSVKLvB9a
;<=?>A@pB>ADF<G2@2HY>X=?F"MEOZ=?O];G2<G+>XK;Jm:¥{MG+H"KU"QHY>XG:>AD{;"KG
@`K=^FLO]H"OZ;D>ElOIu%OP6OZME>EOZlOp>G:@ZKlO]L+DG+H"Op=o<>E;wF6KD+D >Xa
P">EMX>XG>EO]D-<$l<>EME<P"MEO7GK:KFG+>X=?>EZ>E;"Q@`K=?F">EMEOZL2DT<G5GHOP9GOZa
@`KBOC<;iBf;i<G>ElOC@ZKB"O\MEOZlOZMtm
ß/å4ÞTèéçè"é/é¦ê ¥GsGHOvj<$l$<oDKUL+@ZO@`KBOMEOZlOZMtI6<oB>AD a
F<G+@2HD >XGO[>ADR<kD >E=?F"MXOw=?OZGH"KB@Z<MXMtÖ
)
m
¥GvGH"O[j<$l<wP9GO4@`KBORMEOZlOZMtI7<cDFiO4@`>A<M>X;iD)G+LU@`a
G+>XK;JI
4#"3"#6$
I2>ADTFLKl>ABO]B\G+K{>E=^FMXO]=^O];G
l>EL G+U<M\@Z<MEMADZmʧHOB9;<=^>A@YB>ADF<G2@2H>X;iD)G+LU@`a
G+>XK;}UD O4DGHOx=?O]D+D<QOoD>XQ;<G+U"LOY¢¦<L+QU"=?O];GCG+K
G+H"O
4#3"#4
P9GO4@`KBO4£<;B\GHOB9;<=?>A@
G)9F6OpKSGH"OvLO4@`OZ>ElO]L{KP_)O]@`G^¢/<GKFwGH"O?D G+<@2d"£G+K
BOZGO]L=?>E;"OwGHO<@`GU<MNG+<LQO`Gx=?OZGH"KB0mʰ\O];"OZLa
<MXME9I0G+H">AD\GL2<;DME<GO4D\<GGH"O?H<L+Bu<L+OpMEOZlOZM->E;G+K
<kG2<P"MEO`abP<DO]B|>E;B>ELO4@WGf@]<MEMp«¸y ¹ ² tm¼§H">EDf@`K;a
D G>XGUG+O]DYGH"O}¤iL+D Gc>E=^FMXO]=^O];G+<G+>XK;½KSoB9;<=?>A@
B>ADF<G2@2H~u%OfGO4D)G+O]B0I>X;|KU"Lk÷ :>XLGU<MEøcD O]L>EO]DvKS
=?>A@`L+KabPiO];@2H"=o<L+dDZm
P<D O4BK;^D>X=?F"MEOZL(P9GO4@`KBO>X;iD)G+LU@`G>EK;D]IDU@2H?<DTG)9FiO
O4zUi<ME>G)9^GO4D)G2D%SVKMEMXKuO]BoP9RD G+<G>A@:@]<MEMED]m(§H"O]DO:@ZK;GL+KM
D GL+U@WG+U"L+O]DN@Z<;xG2<dO<GNMXO4<D GNGH"L+OZO\SVKL+=oDZÖ
ê! "#âç$
¯T>EL2D)G4I<vDO]zU"O];@`OKS-´$abu<$9?@ZK;B">G+>XK;<M
G)9F6O:@2HO]@2dD7@Z<;RP6O{UDO]B0m(¯KLOZ"<=?F"MEOIMXOZG%D%<D)a
D U"=?O<{F6KME9=^KLFH">E@%D >XGO&
uNH"O]LO%QMEKP<M¦I
D 9D GOZ=^abuN>EB"O<;<ME9D >AD-BO`G+O]@WG+O]BpGH<G-GH"ONL+O]@ZOZ>ElOZL
@`KUMEBoK;"ME9^Hi<$lONSVKU"L%F6KD+D>XP"MEO:@ZK;@ZLOZGONG)9F6O]D<G
LU";G+>X=?OÖ('")%I'"*sI$'"+q<;iB,'"-\m(§H"Os@`KLL+O]DF6K;Ba
>X;"QCFiD O]UBKa@`KBO>ADDH"KuN;^>X;?¤QU"L+OC³IuNHOZL+OGH"O
GO]D G+DB>ED+@`L+>E=^>E;<GOPiOZG)u%O]OZ;o<MEMGHOsd;"KuN;vF6KD+D>a
P"MXO%G)9FiO4D(<;BpMXO4<BGK:GH"O<F"FLKF"L>A<G+OMEO]<SiD)G2<G+>E@
@Z<MEMtm§H">AD%>X=?F"MEOZ=?OZ;G2<G>EK;xKSJB9;<=?>A@sB>AD Fi<G+@2H
>ED^G+O]D GO]B>E;|KU"L}÷ nbS
y
O]zU"OZ;i@`O]øqDOZL+>XO4D^KS:=?>A@`L+Ka
PiO];@2H"=o<L+dDZI7uNHOZL+OxG+H"OG)9F6O[n)8 >EDo<;r>E;GOZQOZL
D)G+KL+O]Bf>X;[<;[O`G+L+<p¤OZMABKS-OZlOZL+9oKP_)O4@WG]m
!.!/
10324
/
103265
7
!.!/
10324!4803219$:
!$;
9
.!<=!>
9$?Y"
?2,*9
@5
",ÚA
!./
B032C4480219$: !$; 9
.!<!=!>
9ED"c
D2,*9
@5
",ÚA
!./
B032C4480219$: !$; 9
.!<!=!>
9FGc
F%2,*9
@5
",ÚA
!./
B032C4480219$:
!$;
9
.!<!=!>
9$2c
22,*9
@5
" 6
H ߦãBTåJIGKMLMN2çäPO# äåfßN+ê! "(âç$QOß/ê]ÝèÞ4ç$æ
¥¼l<L>A<;G%KS5G+H">EDuKUMEBx;"KGGO4D)Gs<Q<>E;D G<pG)9FiO
n)8 ¤iOZMAB¼<B"BO]BGK|GH"OqKP_)O]@`G+D]I{P"UGwUDOq<|DO`a
L>EO]D[KS
4,*
DxO`F"L+O]D+D >EK;D]mû§H">AD[GO4@2Ha
;">EzU"OquKU"MABÆ<$lK>ABGHOk;OZO]BÆSVKLG+H"OqG)9FiOqn)8
¤OZMAB0I%<;BrGH"Ow<D+DK@Z>E<GO4BrDF<@ZO<;Br>E;">XG>A<ME>X4<a
G>EK;®KlO]LHO]<BJmnbG2DRF6OZLSVKL+=o<;@ZOc@`K=^Fi<L+O]B|GK
GH"OfÍ
2ÿ`Z62:<P6KlOCuKU"MABw=?KD GME9PiO^LO]ME<GO4B
GK:GH"OL+OZMA<G>ElOF6OZLSVKL+=?<;@`O4D5KS"GHO
4,"*
<;B
1"6
P9GO4@`KBO4D{>E;D GL+U@WG+>XK;DZmkOoB>EB
;"KGN>E;@`MEUBOG+H">EDsl$<L>A<;GN>E;KU"LNP6OZ;@2H"=o<LdD]m
¥s;"KGH"O]L:l<L+>A<;G\@ZK;D>ED G+D{>X;k<@]@`O]D+D>X;"QRGH"OvG)9FiO
BO]D+@`L+>XF"GKL:¢
F"",,
KP_)O]@`G2£-KS0GH"O{LO4@`OZ>ElO]L]IUD >E;"Q
GH"O
1RF"",,@
=?O`GHKBJI>X;iD)G+O]<BKSGHO7G)9FiOn)8
¤OZMAB0m
y
>X;i@`O
1RF"",,@
>ED\<o¤i;<M;<G+>XlOSVU";i@Wa
G>EK;YKS
!S1T *
IuN>G+Hj: DU"F"F6KLG]I>XG\>AD{ME>EdOZME9
GKCP6O:zU">XGONS/<D)G4m§H">AD(G+O]@2H";>EzU"O{<MEDK<$lK>EBDGH"O
;"OZO4BqSVKLvGH"OfG)9FiOfn)8ù¤OZMABr<;BqGHOf<D+DK@Z>E<GO4B
@`KD G+D]m-ºsKuOZlO]L]IGH"O{G)9F6OsG+O]D G%uKU"MABoH<$lOGKvPiO
BK;"OY<Q<>X;D G
F!U?RV!V : !E;
.!<!=!>
? I
FU?V!V : !$; W
.<!=!>
D
I`O`G2@m5>E;D GO4<B\KS
032 : !$;
.!<!=>
? I
032 : !E; W
.<!=!>
D
I"O`G2@msíNOZGL+>XO]l>E;"QRO4<@2HwKSG+H"O]DOp@ZME<DDsB"O`a
D@ZL>EFGKL+Dv>E;@`U"L2D?<@ZKD G?<D^u%O]MXMtIUD>E;"QO]>G+H"OZLo<
D)G2<G>A@s=?OZGH"KBoSVKL%O4<@2Hx@ZME<DD]IKL¢V>E;RGHO:@`K;GO`G
KSKU"LJFLKKSabKSa@`K;@`O]FG0j<$l<=?>E@ZLKatP6OZ;i@2H"=o<L+dD2£
!X"4.YZV641
*,,X"$.1
>E;r@ZME<DD
F",,
IuNH"O]LO4<DCG+H"ORG)9F6O
n)8\D(<L+O@ZK;D G+<;G+D]mT§H">AD-l<L+>E<;GGHUD(<MEDKD O]OZ=oD
G+K^P6OFiKGO];G+>E<MXME9xDMXKuOZL4mOB>ABf;"KGN>E;@`MEUBOC>XG
>E;[KU"LP6OZ;@2H"=o<LdD]m
[ ߦâTè"å4ô]\å! y U@2H|´$abu<$9c@`K;B>XG>EK;<M7GO4D)G2Dv@]<;}P6O
KLQ<;">EZO4Bo=?KL+O:OZ o@Z>XO];GME9I"<D<^P">E;<L+9RBO4@`>AD >EK;
G+LO]O[«ÅüJeNe¹Ä4bm?ª5O`G%D<DDU"=?O^GH"O?G)9F6Oon)8:DC@ZKLa
L+O]DFiK;B>E;"QwG+KYGHORG)9FiO4D^'")I_'"*sI_'"+½<;iBJ'"-I
<LOI"LO4D F6O]@`G>ElO]MX9I5³]¹I5³$´Ii´Ä?<;Bk³$»mN§H"OZ;5IG+H"O
FDOZUiBKa@`KBOfQOZ;OZL2<GO4BkSVKL`
)
MEKKdDME>XdO
G+H"O?K;"O?>E;c¤QU"L+O?´"mvkO?GO4D)GGH>ED>E=?F"MXO]=?OZ;G+<a
G+>XK;cKSB9;<=?>A@^B">EDF<G2@2Hc>E;cKU"L[÷± >X;i<L+9§TL+OZO]ø
DOZL+>XO4DKS-=^>A@`L+KabP6OZ;@2H"=o<LdD]m
!.!/
B0324
/
B03265
a
!.!/
B032cb$4ed3f1r
a
!./
B032Cb4edgB~
D2,"6*9
@5
,
2%2,"6*9
@5
6
",
a
!./
B032Cb4edhB~
?%2,"6*9
@5
,
F2,"6*9
@5
6
" i
H ߦãBTåji"KkLMN+çäPO# äiål-ß/âèå$ô|Þ]åjOTߦêZÝ-èÞ]ç$æ
ð{KGOGH<G< ± §N8UD>E;"QNGHO
1"RF,,@
l<L>A<;G
BO4D@ZL>EP6O]B^<P6KlO%SVKLÍ
2ÿ`Z62uKU"MABP6OsD MEKuOZL
G+H<;GHOK;"Opu%OCF"L+O]DOZ;G4ID >E;@ZOGH"OCG+O]D G+D{>X;[G+H"O
B>ADF<G2@2HGL+OZOuKU"MABp;KG-PiONBK;"OuN>G+H^@ZK;D G+<;G2D
<;9=?KL+OmkOGHUDNB>AB;"KGN>E;@`MEUBOG+H">EDl<L>A<;G
>E;[KU"LP6OZ;@2H"=o<LdxDU">XGOm
m"noß/Þ]ç$æ ¯>X;i<MEMX9I<\=pU"MXG>Xatu<$9@`K;B>XG>EK;<M>X;D GL+U@`G>EK;
@]<;PiOUD O4B0I4;<=?OZME9:<Nj<$l<BOZ;DO
,$046*$
IWGL2<;iD)a
MA<G+O]B>E;GK<
" S ",$0$6*4
P9G+O]@`KBO>E;D)G+LUi@WG>EK;5I
uNH"KD ONDU"QQO]D GO4Bv>E=?F"MEOZ=?OZ;G+<G>EK;w«ªo\¹¹P9G+H"O
j: ó>AD?<;~>E;B>EL+O]@WG+>XK;~>E;r<wG2<P"MEOm}§H"O@`KL+L+O`a
DFiK;B>E;"Q[FDOZUBKab@ZKBOI0G+O]D GO4Bc>E;qKU"Lw÷ y uN>G2@2Hø
DOZL+>XO4DsKS=?>E@ZLKatP6OZ;@2H=?<LdD]I>ADD H"KuN;c>X;c¤QU"L+O
Ãm
¯KLG+H"OfD+<dOoKS{D>X=?F"ME>A@`>XG)9I(uORK;"ME9GO]D G^B"OZ;DO
DuN>G2@2H"O]D]m-n;BO]O]BxGO]@2H;">EzU"O4DO`>AD)G¢VQMXKP<M0<;<MXa
9D>ED]I@`KMXKL>E;"QiIXmEmXmţvGKxH<$lOC<o@`K=?F<@`G{<MEMXK@Z<G>EK;
KSTG)9F6OCn)8:D]mn;Y@]<DO\KS-DF<L+DO\G)9F6On)8\DZIiD F<L+DO
DuN>G2@2H"O]DCDH"KU"MEBkP6OoGL2<;iD MA<G+O]B>X;GKY<wD G+<;B"<L+B
3,$046*$
«ªo\¹¹P9GO4@`KBO(>E;D GL+U@WG+>XK;JIZG+H<G
@]<;PiOC>E=?F"MXO]=?OZ;GO4B[P9RGH"Oj: <DN<?DOZL+>XO4DKS
Í
KLT<NP">E;<L+9:DO]<L+@2HJI]GHUDJS/<MEMX>E;"QsPi<@2dsG+KsK;O7KS
G+H"OG+O]@2H";>EzU"O4DTuO<MELO4<B9F"L+O]DOZ;G->X;pGH">AD(D)G+UB9m
10324 103265
,$0$6*4a
!.!/
"B032
*,p0329$: !$; 9
.!<!=!>
9E?|"
?2,$"*$9
@5
*,p0329$:
!$;
9
.!<!=!>
9D"
D2,$"*$9
@5
*,p0329$: !$; 9
.!<!=!>
9$Fr"
F%2,$"*$9
@5
",p0329$: !$; 9 .!<!=!>
9E2|"
22,$"*$9
@5
" i,$$6*$
H ß/ãGTå3rq@KkLMN+çäPO( äiåRÞ4èRlésênoßVÞ4ç$æ]Oß/ê]Ý-èÞ]ç$æ
§H"O^QO];"OZL2<M>ABO]<xPiO]H">X;iBD GL+OZ;"QGHYL+O]B"U@WG+>XK;YSVKLB9a
;<=?>E@7B">EDF<G2@2H>EDG+H<GD >E=?F"MXO]L5>E;D GL+U@WG+>XK;DZI$<MXGHKU"QH
=?KL+Os;U"=?OZL+KUiDZID HKU"MAB?PiO:=?KL+OsF"L+O]B>A@WG2<P"MEO:<;BoO`a
O4@`UG+O]BfS/<D GO]LGH<;[@ZK=?F"MEO`x>E;D GL+U@WG+>XK;D]m
¥{MXMGH"O4D O7@ZK;GL+KMD GL+U@WG+U"L+O]D]I]OZ@ZOZFG0G+H"O7F"MA<>E;
4#"3"
W
#$
I`H<$lO7<sD >EZO7GH<G5>ED5F"L+KF6KLG>EK;<MGKNG+H"O7;U"=^a
P6OZL^KSNG+O]D GO]B~G)9FiO4DZmk®H"OZ;rUD O4BqGKk>E=^FMXO]=^O];G^B9a
;<=?>E@\B>AD F<G+@2HJIuN>XGH"KUGs<;9^S/<MEMabP<@2dvGO4@2H";">AzU"OI<MEM
F6KD+D >EP"MEO\G)9F6O]DHi<$lO:GK?PiO\G+O]D GO]B
GH">ADNDO`GNKSFiKDD>XPMXO
G)9F6O]DTGHUDTH<D5GK\P6OBOZGO]L=?>E;"O]BCP9<{QMEKP<M<;i<ME9D>ADZm
§H">AD>ED<@]@`KU";GO]BCSVKL>X;vKU"LPiO];@2H"=o<L+dCD U>G+OIP9C@`L+O`a
<G>E;"QI-SVKLvO4<@2H~B>AD)G+>X;i@WGoB>EDF<G+@2H}G+O]@2H";">AzU"OI%D O]lOZL2<M
P6OZ;@2H=?<LdD^B>XÉ6O]L>E;"QkK;"ME9qP9qG+H"O;U=pP6OZL^KSsG)9F6O]D
G+H"OZ9@Z<;H<;BMEOm
n;?G+H"O{MA<D G7GHLO]O{@`K;G+LKMD GL+U@WG+U"LO4DZIGHOsMXO4<SJ@Z<MXMAD<LO
F"ULO]MX9=?K;"K=?KL+F"H">A@m5§H"O]9C<L+O7GHUDT>E=^FMXO]=^O];GO]Bv<D
j<$l<\D G+<G>A@N@Z<MXMADt
+,"*
IuN>G+HvG+H"OsKL>EQ>E;<M
L+O]@ZOZ>ElOZL?KP_)O]@`G?P6OZ>E;"QqF<DDO]B<DvGHO[¤L+D GR<L+QU"=?O];G
¢/>X;D GO4<BKS-P6OZ>E;"Q?GH"OC>E=?F"ME>E@Z>G
0,
<L+QU"=?O];GN>E;GH"O
l>EL G+U<M5@]<MEMA£`mOCG+HUDsQ<$lOC<}÷ y G+<G+>E@]§H">AD<LQøvDU ?
G+KGH"O4D ONP6OZ;@2H=?<LdD]mTkOs<MADK\P6OZ;i@2H"=o<L+dpMEO]<$lO4D>X=^a
F"MEOZ=?O];G+O]B<D^=?K;K=?KL+F"H">A@xl>EL G+U<Ms@]<MEMED^uNH">A@2HJI<D
uOxOZF6O]@`GO4B0I(GUL;|KUGvGKcP6OQOZ;OZL2<MEMX9qD MEKuOZLG+H<;
G+H"ORD)G2<G+>E@^MEO]<$lO4DZm^¥{D<[@ZK;DO]zU"O];@`OI0u%OoBK[;"KGCB"O`a
G2<>EM0GH"KD OL+O]DU"MXG+D>E;fG+H">ADNF<F6OZL4m
ð{KGOG+H<G(G+H"OME<D)G-GHLO]O%G+O]@2H";>EzU"O4D-=?<$9<MEDKPiOUDO]B
G+KrD O]LlOY<DoL+U";atG>E=?Oc<B<FG+>XlOY@Z<@2HO]DR@]<G+@2H>X;"Q~GH"O
=?KD G0SVL+O]zU"OZ;GJKLJ=?KL+OL+O]@ZOZ;G0G)9FiO4DZI4F"L+O]@ZO]B>E;"Qs<=?KL+O
QOZ;"O]L+<MS/<MEMabP<@2dGO4@2H";">AzU"Om-n;?GH>ED@Z<D OIGHOZ9?u%KU"MAB
P6O<d>E;xG+K · neDZIKLN=?KL+O\<@Z@`UL+<GOZME9I<DNB>ÉOZL+OZ;G{<Ma
G+OZL+;<G+>XlOc@`K;G+LKM:D GL+U@WG+U"L+O]DRuNH>E@2HÆ@]<;P6OcUiD O4BGK
>E=?F"MXO]=?OZ;Gsl<L+>XKUDND >EZO4DKS · neD]m
¯>EQU"L+O{µ?D HKusD<^D 9;GH"OZG>A@:@ZK=?F<L>AD K;oKSJG+H"O]DOsSVKU"L
@ZK;GL+KM0D GL+U@WG+U"LO4DZm
3.4 Various type patterns
§H"OL+U";G>E=^OP6OZH<$l>EKLTKSG+H"OF"LKQL2<=>ED(<;"KG+H"OZL-@`L+Ua
@Z>E<MS/<@WG+KLo>E;GH"OwF6OZLSVKL+=o<;@ZOfKS\<qQ>ElO];|B9;<=?>E@
B>AD F<G+@2H?D >XGOmTn;^KL2BO]L5G+KD>E=pU"MA<G+Ol<L9>E;"Q:P6OZHi<$l>EKL2D
uNH">EMXOodOZOZF>X;"QF"L+O]@Z>EDOo@`K;G+LKM¦I0uO^G>E=^O4BkKU"LCP6OZ;@2H"a
=o<L+dD-P9vQOZ;OZL2<G>E;"Q\l<L+>XKUDG)9FiOsn)8F<GGOZL+;D]m ¸ <@2H
=?>E@ZLKsP6OZ;i@2H"=o<L+d:L+O]<B"D5<{F<LG>A@`U"MA<LTF<GGO]L;SVL+K=¤MEO
<G(L+U";^G>E=^OG+KC>X;">XG>A<ME>EZON<^³ ²$u >X;G<L+L2<$9\HKMAB>X;Q:G)9F6O
n)8:D]IuNH">E@2H}>ADCG+H"OZ;}>XGO]L+<GO4BKlOZL<[MA<L+QOo;U"=vPiO]LKS
G>E=?O]D]m
¯"KLJGH>EDD)G+UB9Iu%O%UD O4BD9;G+H"O`G+>E@(Fi<G G+OZL+;DTuNH">E@2HpLO]Fa
LO4D O];GJO`GL+OZ=?O]DJ>X;CF"L+KQL+<=®PiO]H<$l>XKL]m5O7FME<;GKNUDO
LO4<MJ<F"F"ME>E@]<G>EK;iD%KLNLO4<MJ<F"F"ME>E@]<G>EK;xGL2<@ZO]D>E;fSVU"GU"L+O
u%KLdmTO\BO]@Z>EBO4B^GKBO4D >EQ;oFi<G G+OZL+;D7@ZK=?F"L+>ED>X;QCPiOZa
G)u%O]OZ;?K;Os<;BR´ ² FiKDD>XPMXONL+O]@ZOZ>ElOZL-G)9F6O]D]I>E;oKL2BOZL-G+K
@`KlOZLp<wuN>ABOfL+<;"QOoKS{@Z<DO]D]mwn;~=?KD GpL+O]<M%<FF"MX>A@Z<a
G>EK;DGH"KU"QH5ITG+H"OxBO]QL+OZOoKSF6KME9=?KL+F"H">AD =¾LO]=o<>E;D
G)9F">E@]<MEMX9f=pU@2HwD=o<MEMXO]Lp¢/Ã^G+Kx»£Wm§H"OCMEKuB"OZQL+OZO4DKS
FiKMX9=?KL+F"H">AD=Ç>E;xKU"L%GO]D G+D%G+HUiDH<$lO:<pMXKGKS5>X=?F6KLa
G+<;@`OxSVKL^=^KD)G?@Z<D O4DZI-uNH">EMXOH">EQH"O]LvBO]QL+OZO4DCGO];B}G+K
D HKurH"Ku<CD F6O]@Z>¤6@GO]@2H;">EzU"OsD+@Z<MXO4D-U"FJm(§H"OSVKMXMEKua
>X;QRSVKUL\Fi<G G+OZL+;D\<L+OpF"L+O]DOZ;GO4BwP6OZMEKuõ<;Bc>X;c¤QU"L+O
»ÖwG+H"Oc@ZK;D G+<;GRFi<G G+OZL+;JIGH"OcL+<;BK=úF<GGO]L;JIG+H"O
@`9@`ME>A@:Fi<G G+OZL+;w<;BxGH"OD GO]F"F6O]BF<GGO]L;Jm
väiâêZÞ4è"âÞ §H">ADF<G G+OZL+;}>EDGH"OxD>E=^FMXOY³
²²
À =?K;"Ka
=?KL+F"H">A@q@Z<D OICuNH"OZL+OkGH"O~L+O]@ZOZ>ElO]LfG)9F6O~>ADY<MXa
u<$9D6GH"OD+<=?O7<;B\>EDJGHUDJF6OZLSVO]@`GME9{F"L+O]B">E@`G+<PMXOm
§H">ADw>ADY<lO]L9@`K=^=?K;Ú@]<DOmû7<L>EKUiDGO]@2H"a
;">AzU"O]D%BO`G+O]@`GDU@2H?=^K;"K=?KLF"H>E@NB>ADF<G2@2HRD >XGO4D
<;BoQOZG%L+>EBRKSJG+H"OZ=hP9?LO]F"MA<@`>E;"QCG+H"OZ=huN>XGHB>Xa
L+O]@`Gx@Z<MEMADY¢/BOZatl>EL G+U<ME>E]<G+>XK;i£WmÚºsKuOZlOZL4I7G+H"O]DO
G+O]@2H";">AzU"O]D:=o<$9w;"KG<MEu<$9D{PiOo<FF"MX>EO]BJIB"Kf;"KG
BOZGO4@WGR<MEMN=?K;"K=^KLFH">E@@Z<MXMND>G+O]Do<;BrBKq;"KG
H<;BMEOC@Z<MEM0D >XGO4DGH<Gs<L+O:>E;fFL>E;@`>EF"MEOFiKMX9=?KLa
F"H>E@P"UG7;OZlO]L(@2H<;"QOG2<L+QOZG+DuN>G+H">E;^<;9vD >E;"QMEO
L+U";Jm}nbG?>EDvG+HUiD?u%KL G+H}GO4D)G+>X;"QGHOfP6OZH<$l>EKL^KS
B9;<=?>E@B">EDF<G2@2HwGO4@2H";">AzU"O]D{K;wG+H">ED:P6O]D G a@Z<DO
@ZK;D G+<;GFi<G G+OZL+;Jm y >E;@`OxGH"ORl<MXU"OxKSGH"O@`K;a
D G+<;GNG)9F6OCn)8õ>E;RU"O];@`O4DNF6OZLSVKL+=?<;@`OIu%OCHi<$lO
G+KvG+O]D Gsl<L+>XKUDn)8:DuN>XGH>X;[G+H"OD)G2<G+>E@\L2<;"QOm
v
è"â#Oäià
§H">ED{F<GGO]L;w>ADsG+H"OOZ<@WG{KF"F6KD>G+OKS(G+H"O
F"L+OZl>EKUDxK;"OÖ~>XG[@]<;P%GP6OkF"LO4B>A@WGO4B0IsSVO4<G+U"LO4D
H">EQHwF6KME9=?KL+F"H">AD =¾¢V=o<;9LO4@`OZ>ElO]LG)9FiO4D+£N<;B
H">EQHl<L+>E<P">EMX>XG)9Æ¢V=o<;9|@2H<;"QO]D?BU"L+>E;"QqO`O]@ZUa
G+>XK;i£Wm?¥{DCDU@2HJI0>XGLO]F"L+O]DOZ;G+D\<xuKL2D G a@Z<DOvD+@`OZa
;<L>EKYME>XdOZME9cG+KcP6OxL2<L+OR>E;~KP_)O4@WGatKL>EOZ;GO4BkF"LKa
QL+<=?D]m
pôJçé/ß¦ç §H"Ov@Z9@`ME>E@CFi<G G+OZL+;wSVO]<GU"L+O]D\<oL+OZQU"ME<L{l<L+>A<a
G+>XK;}KSNGHOoG)9FiOfn)8pIO]<@2H}n)8P6OZ>E;"QwG+H"OxF"L+OZl>Xa
KUDxK;"OY>E;@`L+OZ=?O];G+O]B®P9Ú³cUFGK|=o<n)8Á<;B
P<@2dGKÚ³I<;iB¼DKK;Jm §H">AD[F<GGOZL+;>EDG+HUiD
H">EQHMX9kFiKMX9=?KL+F"H">A@o<;iBqH<D<[lOZL+9cH">EQH}l<L>Xa
<P">XME>XG)9Ê¢G+H"OkG)9F6O~@2H<;"QO4Df<G[O]lO]L9@]<MEMA£`I:ME>XdO
G+H"OfL2<;iBK=F<G G+OZL+;JI7P"UG?>AD^D G>EMEMNlOZL+9qLO]QU"MA<L4m
¥:Bl<;@ZO]B[=?>E@ZLKab<L+@2H>G+O]@WG+U"L+O\DU@2HY<DNG)u%KatMEOZlOZM
P"L2<;i@2H\FLO4B>E@`GKL+DJ<LO7@]<F<P"MEO(KS"BO`G+O]@`G>E;"Q:DK=?O