HAL Id: inria-00071929
https://hal.inria.fr/inria-00071929
Submitted on 23 May 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.
A Logic File System
Yoann Padioleau, Olivier Ridoux
To cite this version:
Yoann Padioleau, Olivier Ridoux. A Logic File System. [Research Report] RR-4656, INRIA. 2002.
�inria-00071929�
ISRN INRIA/RR--4656--FR+ENG
a p p o r t
d e r e c h e r c h e
INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE
A Logic File System
Yoann Padioleau , Olivier Ridoux
N˚4656
Décembre 2002
THÈME 2
"!#%$ &')(+*,%-/.102(+&'34&'*,5768&+$)-:9
;=<?>@7ABCEDGFIH?JKAMLONQPRJOSJKAIL
ATUSVWLXSYZL\[^]_@`%NQLOJXaRYZA
bdceNWfgATih:VWHZj?A
kVWl?l%NQcmTjnAocmApSq<?AcqSq<?ArHtsWuRv,wWvxCzy#FISA@t`?cmABQ{Q{RBoCEBWvlZVQPQAp[
|8} ~I?WR Atl?ceAI[mAH,TTm<ZAH?AI/lZVWcqVQjnJOPQ@NWiKeWdK%JTq[UJO@7l?LOA@7AH,TeVWTmJONQH\)VWHjZce[^T#AnlAIcmJO@7AH,TeVQL
ceAI[mY?LTq[4T:NW )Acq[JOHVWHMJOH,TmAIPQcqVTmApjG¡V]#HZV¢_JKP,VTmJONQHoVWHjMSLXVQ[e[^JKSVWTmJONQH\ITm<ZAdlN,[m[mJO`?JKLOJKTg]#NQ_Anl?cmAp[m[mJO¢QAda,Y?AceJOAI[IIApVQ[mA£NW
YZ[mAQWVQHZjl%NR[e[^JO`?LOA1<?ATmAIcmNRPQAHZAJKTg]#NQj?VTqV?;=<?JO[lZVQceVRjnJOPQ@"JO[NQ`?fgAISTm¤SAH,TmAIcmApj\T£VQ[e[^NnSJOVWTmAI[4LKNRPQJXSVQLRjnAp[mScmJOlnTmJONQH[\TeN
NQ`?fgAISTq[_VWHj7LKNRPQJXSVWLcmAILOVWTmJONQHZ[d`ATg¥AIAH¦jnAp[mScmJOlnTeJKNRHZ[d[mAce¢QAUVR[1VM`ZVR[^JX[£§NRc1HZV¢_JOPRVWTmJONQHVWHZj¦aRYZAce],JOH?P A#SNR@7lZVWceA
LONQPQJXSZLOA8[^]n[^TmAI@7[iJTe<Tm<?A8<ZJKAIceVQceSq<?JXSVQL'4`N_NQLOAIVQH\:VQHZjj?VTqV¤`ZVQ[mA7lZVWcqVQj?JKPR@7[I A8l?ceAI[mAH,T`?ceJKA¨Z]©Te<?A8ceªQLOA7NW
LONQPQJXSiJOH8LONQPQJXS=ZLOA#[m]n[gTeA@[I,VQHZjJOH8@7NQceAUjnATqVWJOLO[1Tm<ZAUJO@lZLKAI@AIH,TeVTeJKNRH8JX[m[mY?AI[1NW4VlZVWcmTmJXSY?LXVWc1LKNRPQJXS=ZLOA#[m]_[^TmAI@«Tm<ZVWT
YZ[mAI[iV7[mJK@7l?LOAMLKNRPQJXSW
¬®,¯)°m±² ³:~R ZLOAM[^]n[^TmAI@ZJKHn§NRcm@VWTmJONQH¦ceATecmJOA¢VQL'?VQl?l?LOJKApj´LONQPRJOS
µX¶·m¸¹Iº=·i»¼X¸+½+¾¿
Unité de recherche INRIA Rennes
IRISA, Campus universitaire de Beaulieu, 35042 RENNES Cedex (France) Téléphone : 02 99 84 71 00 - International : +33 2 99 84 71 00
~
NRYZ[lZcmNRlN,[^NRHZ[=LKAH?NQY?¢RAIVQYlVWcqVQjnJOPQ@7AMjnAR=¥_ qKeW"! #Z%[eV@7JO[mAAIH%$MY?¢_cmAR?ATULOAI[
l?ceA@7JOAcq[1ceFI[mY?LKTeVTq[¡AnlFIcmJO@7AH,TeVQYn£h\AI[=[m]n[gTe>@7AI[¡jnAGSq<?JOAcq[1LONQPRJOa,Y?Ap[¡NW )cmAIHRT=jnAGV'&NQH¦JOH,TmFIPQceFA#j?AI[¡lN,[m[mJO`?JKLOJKTmFI[
jnA#HZV¢_JKP,VTmJONQHAT=SLOVR[m[mJKSVWTmJONQH\,j)(Y?TmJOLKJX[mVWTmJONQH¦j?A#ceAIa,Y+*TmAI[1Anl?ceAI[e[^JO¢QAp[,j)(YZ[mVQPQAG[^JO@7l?LKAR_AT¡j?A#PRAI[^TmJONQH8jnAojnNQHZH?FAp[
<?FTmFceNQPR>H?Ap[,¥A¡lVWcqVQjnJOPQ@7A1Ap[gT£SAIH,TmceF¡[mY?c LKAp[NQ`nfgATe[I: L_LOAY?cdVR[m[mNnSJOA¥jnAp[j?AI[eSceJKlnTeJKNRHZ[AHtLKNRPQJXaRYZAQAT£LOAI[ceALXVTmJONQH[
LONQPQJXa,Y?AI[ AIH,TmceALKAp[djnAp[mScmJOlnTmJONQH[d[^AIcm¢RAH,TdjnA`ZVR[^Ail%NQYZc1HZV¢_JOPQY?AIc£AT¥a,Y?Ap[gTeJKNRH?H?Ac¥j?VWHZ[dLKAU[m]n[gTe>@7AjnAi%Sq<?JKAIce[I NQYZ[
SNR@7lZVWceNQHZ[#LOAI[o[^]n[^Tm>I@Ap[ojnASq<?JOAcq[#LONQPRJOa,Y?Ap[UATMLKAp[#lVWcqVQjnJOPQ@7AI[#<?JOFcqVWcqSq<?JXaRYZAI[I%`%N_NQLOFAIHZ[GATM`ZVQ[mAI[ojnAjnNRH?H?FIAI[I
NRYZ[¡l?ceFI[mAH,TmNRHZ[1`ZcmJO>¢RA@7AH,T¥LOAGcmªRLKAGjnA#LXVtLKNRPQJXaRYZA#j?VQHZ[¡Y?H´[m]n[gTe>@7AGj?AUSq<ZJKAIce[¥LKNRPQJXa,Y?AQ_AT=AH´l?LOYZ[¡PQcqVWHZj8j?FTeVQJKL
LXVM@7JO[mAUAIH-$MY?¢_cmAj.(Y?HZAUJOHZ[gTqVWHZSAUjnAGSAUHZNQY?¢RAIVWY7lZVQceVRjnJOPQ@7Aj?VWH[dY?H¦[m]n[gTe>@7AUjnAUSq<?JOAcq[1a,Y?JYnTmJOLKJX[mAUY?H?A#LKNRPQJXa,Y?A
[mJK@7l?LOAQ
/r² I~ ° 10 [m]_[^Tm>I@7Aoj?AoSq<?JOAcq[nceAISq<?AIceSq<ZAGj)(JOHn§NQce@VTmJONQH4nLKNRPQJXaRYZAGVQl?l?LOJOa,Y?FIA
I
²
³W
²
JOAcqVWcqSq<?JXSVQL%NRcmP,VWH?JIVWTmJONQHZ[ MoMoMoMMoMGMoMMoMoMoMMGMoMoMoMMoMGMoM
B¡N_NQLOAIVWHNQcePRVQH?JIVTeJKNRHZ[MGMoMoMoMMoMGMoMMoMoMoMMGMoMoMoMMoMGMoM v
kiAILOVWTmJONQHZVQLNQcePRVWHZJpVTmJONQH[ GMoMoMoMMoMGMoMMoMoMoMMGMoMoMoMMoMGMoM
u H?AI lZVQceVRjnJOPQ@ MoMMGMoMoMoMMoMGMoMMoMoMoMMGMoMoMoMMoMGMoM
0 ~ ² 0² 0 ~ ¯ ~
Bn `%N,NRLKApVWH´ZLOA[^]n[^TmA@ MMGMoMoMoMMoMGMoMMoMoMoMMGMoMoMoMMoMGMoM !
BnB¡N_NQLOAIVWH´ZLOAM[^]n[^TmA@2?lZLKYZ[=HV¢,JOPRVWTmJONQH MMoMGMoMMoMoMoMMGMoMoMoMMoMGMoM "
Bn V¢_JOPRVWTmJONQH¦JOH®VtTeVnNRH?NQ@t] MoMoMoMMoMGMoMMoMoMoMMGMoMoMoMMoMGMoM {
Bnu /[mAISYZcmJKTg]8@7NnjnAL MoMMGMoMoMoMMoMGMoMMoMoMoMMGMoMoMoMMoMGMoM #
|0² §$ ~t ³ ³:np~I W4 ~ %
? ;=<?A'&)(VQLKPRNQceJTe<?@MoMMGMoMoMoMMoMGMoMMoMoMoMMGMoMoMoMMoMGMoM B
?B yGVTeV[^TmceYZSTmY?ceAI[ oMoMMGMoMoMoMMoMGMoMMoMoMoMMGMoMoMoMMoMGMoM v
? ,¥NQHSceATmAoNRlAIceVWTmJONQHZ[ MMGMoMoMoMMoMGMoMMoMoMoMMGMoMoMoMMoMGMoM !
*,+.-
~² ~
)/
uZ
10
VWLOY?ApjVWT^TecmJO`?YnTeAI[ MoMMGMoMoMoMMoMGMoMMoMoMoMMGMoMoMoMMoMGMoM "
uZB ;:ceVQHZ[mj?YZSAIce[oMoMoMMGMoMoMoMMoMGMoMMoMoMoMMGMoMoMoMMoMGMoM BQ{
uZ,2435¤LKJ6QAo[mAISYZcmJKTg] MoMMGMoMoMoMMoMGMoMMoMoMoMMGMoMoMoMMoMGMoM BQ{
uZu 7%8NQl%AcqVTeJKNRHZ[ MoMoMMGMoMoMoMMoMGMoMMoMoMoMMGMoMoMoMMoMGMoM B
9+.-
:
In²
wn @7l?LOA@7AH,TeVWTmJONQH oMoMMGMoMoMoMMoMGMoMMoMoMoMMGMoMoMoMMoMGMoM BRB
wnB;=<8SJOAHS] MoMoMoMMGMoMoMoMMoMGMoMMoMoMoMMGMoMoMoMMoMGMoM BRB
wn >#YZVQLKJKTg] MMoMoMoMMGMoMoMoMMoMGMoMMoMoMoMMGMoMoMoMMoMGMoM B
? ¦
0'n
³
±²
:@
A*
B : :
³C§
WD
² ~
9
E F ²
'0:~² 9
G H d
N=VQjZV]_[IWAI¢QAce]tSNQ@7l?YnTeAc¥YZ[^AIc¥SIVWH8VQSISAp[m[dV¢QAce]LXVWcePQAi¢VQcmJOATg]7VWHZj7H_Y?@t`AIc1NQj?JKPRJTqVWL)jnNnSY?@7AH,Tq[JI§ARPKR@YZ[mJXS
ZLOAI[I_l?<?NWTeNR[¡VWHZj8¢,JXjnAINR[1§NQc¡lAIce[mNQHZVQLZYZ[eVWPRAK,l?ceNQPQcqVW@[IR[mlApSJKSVWTmJONQHZ[IRTmAI[^Te[I,§NQc=V[mNWTg=VWceAAHZPQJOH?AAIcmJOH?PYZ[eVWPRAL
M©VQHZVWPRJKH?Pt[^Nt@7VQH_]jnNnSY?@7AH,Te[¥JK@7l?LOJOAI[=[^NR@7A#jnJ<8SY?LKTg]Q=@7NRH?PTe<?A@2?VWH¦JK@7l%NQcmTeVWH,T¡NQH?A#JO[1TmNZHZj¦a,Y?JXSN6_LK]NQHZA
jnAp[^JOcmApjxj?N_SY?@7AH,TtVQ@NRH?P2@VWH_]®ZLOAI[DKTm<?JX[MJX[oTm<?AJOHn§NRcm@VTeJKNRHcmATmceJKAI¢VQL£l?ceNQ`?LOA@28 HZj?AAIj\4iJKTm<Tm<ZNQYZ[eVWHZjZ[oNW
ZLOAI[I?NQHZAoSIVWH?HZNWTiYZ[mA#Te<?AMHZVQJK¢RAG@7ATm<?NnjNWPQNQJOH?PTm<ZcmNRY?PQ<2VWLOL)Tm<?AoLKAp[
Hn§NRcm@VTeJKNRHxceATecmJOA¢VQL£TmApSq<?H?JXaRYZAI[SIVWH?H?NQT`%ATm<?NRY?PQ<,TJOHZjnAIlAIHZjnAH,TeLK]NW=NQcePRVQH?JIVTeJKNRHx@7ATm<?Nnj?[DK Tm<?AI]©§NRcm@
OAP P
Q£;=<?A1@7N,[gT¥AILKLK¤Q6_H?NiHMJOHn§NRcm@VTeJKNRHMcmATmceJKAI¢VWLSRNQcePRVQH?JIVTeJKNRH#lVWcqVQjnJOPQ@[\VQcmA£Te<?A _
P
m_
P O%P
P WW
Tm<ZAUTepO
PWVXOAP P
Qt)VWHj8Te<?A m
P
+
VYP
OAP P
Q
;=<?JX[UJOH,TmceNnjnYZSTeJKNRH SNRH,TmJOH,YZAI[`_]®l?ceAI[mAH,TeJKH?P8Tm<?A7VQjn¢VQHRTqVWPRAI[VQHZj©jnJX[mVRjn¢VWH,TeVQPQAp[NW£Te<?AI[mAlZVWcqVQjnJOPQ@[IUh\NRPQJXS
ZLOA[^]n[^TmAI@7[iVQcmAoVWH2NRcmJOPQJOHZVWLSNQ@`ZJKHZVWTmJONQH´NW£VQjn¢VWH,TqVWPQAp[1NQ:Te<?AI[mAoTm<ZcmAIAGlVWcqVQjnJOPQ@[I
Z=[\Z ]_^a`4b%cdbAefJ^geYcdhjikb%lkc=m.^anocCp%^aiqm.r
;:ceVRjnJTeJKNRHZVWL\ZLKA[^]n[^TmAI@7[U`AILKNRH?PTeNTm<?A _
P
e n
P O%P
P
WW\VQ[U¥AILKLVQ[ AI`©lNRc^TqVWLX[js´
PutP
ZI#vOVWHZj®@VQH,]
A¤@VWJOL@VWHZVQPQAcq[I
[^TmceYZSTeY?cmARQVWHjTe<?AH7l?Y?T^TmJOH?PJOHn§NRcm@VTeJKNRHtAILKAI@7AH,Te[ JOHTm<?JX[ TmceAARQi<?JXSq<7JO[Te<?AUSLOVR[m[mJ%SVTeJKNRHl?ceNnSAp[m[I4Hn§NRcm@VWTmJONQH
JX[U[mAIVWcqSq<?Apj¦`_]¦PRNQJOH?PY?l©VQHZj®jnNiH2JKH2Te<?JX[iTmceAA#K?Te<?JO[UJO[Tm<?AHZV¢_JKP,VTmJONQHl?ceNnSAI[e[I¥ H©VZLOA[m]n[gTeA@2SNQHZSAlnTq[VWceA
jnJOcmApSTeNQceJKAp[
;=<?AlZcmJOHZSJOl?LOAMNW£HZV¢_JOPRVTeJKNRHRSLOVR[m[mJKSVWTmJONQH¦JX[USNQHZScmATmAVQHZjJKH,TmYZJTeJK¢RAt[mJKHZSAMJTG@7AceALO]¦PQAIH?AcqVWLOJAI[=<ZN"@VQH,]
Tm<ZJKH?P,[£JOH7Tm<?Ail?<_]n[mJOSIVWLn¡NQceLOj7VWceA=NQcePRVQH?JIAIj?NQc1A?VW@7l?LOAQR`N_N6n[£VQcmAiVo<?JOAcqVWcqSq<?JXSVWL_NRcmP,VWH?JIVWTmJONQHNQ%lVWcmTe[RSq<ZVQln¤
TmAIce[R[mAISTmJONQHZ[R[mY?`Z[mAISTmJONQHZ[I
;=<?AMVQj?¢VQH,TeVWPRAI[¡NW:Tm<?AM<ZJKAIceVQceSq<?JXSVQL)lZVWcqVQjnJOPQ@ VQcmA
Tm<?AG[^]n[^TmA@ lZcmNRlN,[^Ap[£HZV¢_JKP,VTeJKNRH<?JKH,Tq[1TeNTe<?A#Y[^AIcI,AQPZO,j?JKceAISTmNQce]HZVW@7AI[I \Tm<ZA#YZ[mAc¡jnN_AI[¥H?NWT=ceA@7A@t`AIc
NQcijnN_AI[=H?NQT 6_H?N Te<?AMA?VQSTSLXVQ[e[^JKSVWTmJONQH´NWVQH2NQ`nfgApSTI_Te<?AHTe<?ASNR@lZYnTmAIciiJKLOL\<?AILKl2<?JO@2
Tm<?AM[m]_[^TmAI@ l?ceNQl%NR[mAI[¡ceALOA¢VWH,T=<?JKH,Tq[=NQH?LO]Q£Ti¡NQY?LXj¦HZNWTi`AM<ZALOln§Y?L\NQ4Tm<ZA[^]n[^TmA@ TmN7l?ceNQl%NR[mAGVQLKL\SNQHZSAlnTq[
VTiNQHZSAQn`%AISIVWYZ[mAGTm<?AGTmNQTeVQLH,YZ@`%AciNW£SNRHZSAIlnTe[iSIVWH´`AVR[=`?JKPVR[¡Tm<?AoH_Y?@`%AciNQ:LKAp[=¡]Zcq[gTlZcmNRlN,[^JOH?P
PQLONQ`ZVQLdSNQHSAl?Te[ IAQPZO\lZVWcmTHZVQ@Ap[ LoVQHZjxTm<?AIH [^YZ`n¤SNQHZSAlnTq[XI§ARPKSq<ZVWlnTeAcMHZVQ@7AI[NL:Tm<?A8[m]n[gTeA@ <ZALOlZ[JOH
ZHZjnJOH?P©VWHNR`nfgAIST`,]xJKHSceA@7AH,TeVQLda,Y?Ace]Q¦;=<ZA¦SLXVQ[e[^JKSIVTmJONQHxl?ceJKHZSJKlZLKAJX[MTe<?A`ZVQ[mJX[MNW=@VWH_]®VQ[^Tt[mAIVQceSq<
VWLOPQNQceJKTm<?@[I_[mYZSq<2VQ[=`?JOHZVQcm]¦[mAIVQceSq<4_VQHZj´JTJX[iA_TeAHZ[mJK¢RALO]YZ[mAIjJKH2ceAIVQL%LOJK§AQ
;=<?AMjnJX[mVRjn¢VWH,TeVQPQAp[¡VQcmA
NQH?ASIVWH®l?YnToVWH®JOHn§NQce@VTeJKNRHJOH©NRH?LK]´NQH?Al?LOVRSARZi<?JXSq<®@7AIVWH[NQHZASVQH?H?NWTUVR[m[mNnSJXVTeA[^AI¢QAcqVWLJOHZjnAIlAIHZjnAIHRT
I§J+ARKH?NWTGNQcqjnAceAIj`_]¦Te<?A[mY?`)SNQHSAl?T#ceALXVTmJONQHL=SNQHSAl?Te[iTeN8NQHZAJKH?§NQce@7VWTmJONQH\
N¥AI¢QAIcI?NRH?AMNWTeAH©=VWH,Tq[
TmNVQ[e[^NnSJOVWTmA#[mA¢RAcqVWLSNRHZSAIlnTe[¡TeNVWHJKHn§NRcm@VWTmJONQH\_i<?JXSq<´@7ApVWHZ[¡Te<ZVTNRH?AoJO[¡§NRceSAIjTeNSq<?N_NR[mA#NRH?AMSNQHSAl?T
TmN¦SLOVR[m[mJ§]2VWH JKHn§NRcm@VWTmJONQH\%VWHZj2§NRcmPRAT#VQ`NRYnTTe<?ANQTm<?AIc#SNRHZSAIlnTe[IU;=<?Atl?ceNQ`?LOA@ JO[UTm<VT#JOH®Te<?A§YnTeY?ceAQ)V
YZ[^AIc=@7V]¦¡VQHRT=TeN8VQSSAI[e[¥Tm<?JX[iJOHn§NQce@VTmJONQHYZ[mJKHZP7Vt§NRcmPRNWT^TeAH2SNRHZSAIlnTI_NnTm<?AGZLOAMJX[i¢_JKcmTmYZVQLKLO]8LONR[^TI
M®NQceAN¢RAcpVR[£JOHn§NQce@VTmJONQHAILKAI@7AH,Te[£@V]jnJ )Ac1§cmNR@ ApVQSq<7NWTe<?Acq[£NRH?LK]t`_]tVo§AI VR[^l%AISTe[IQH?NQT1`%AJOH?PVW`ZLKA=TeN
l?cmApSJX[^AILK]jnAp[mScmJO`%ATm<ZA@ I`,]@7AIHRTeJKNRH?JOH?PtVQLKL%Tm<ZAGSNQHZSAlnTq[1Te<?A]`%ALONQHZPTeN L1@ApVWHZ[1Tm<VT=@7VQH_]JKHn§NRcm@VWTmJONQH
ALOA@7AH,Te[¥iJOLKL%`AGl?YnT¡TmNRPQATm<?AIc1JOH8Tm<ZA#[eVW@7A#SNQHZSAlnTpRi<?JXSq<¦@7ApVWHZ[dTm<ZVWT¥Te<?A#Y[^AIc1iJOLKL)`%A§NQcqSApj7TmNtAnl?LONQceA
VWLOL)Tm<?N,[^AoJOHn§NQce@VTmJONQHALOA@7AIHRTq[=i<?AH2<?AM=VWH,Tq[1TeN8[^AILKApSTiNQHZAQ
JOAcqVWcqSq<?JOSIVWL_ZLOA#[m]n[gTeA@[dlZcmN¢_JXjnA=Tm<?ceAA#[^NRLKYnTeJKNRHZ[£TeNVQ[e[mN_SJOVWTmA[mA¢RAcqVWLZSNQHZSAlnTq[£TmNtVWHJOHn§NQce@VTmJONQH4TeNYZ[mA
[^Y?`)jnJOcmApSTeNQceJKAp[_TeNYZ[^AMLOJOH%6n[?NRc=TmN8lZYnTJKH?§NQce@7VWTmJONQH2JOH´LKAHVW@7AI[ I'[^AIAM`AILKNJL N¡A¢RAcp,Tm<?JX[USNQ@7AI[iVWTUV
l?cmJXSA#K?VWLOL)Tm<?AVRjn¢VWH,TeVQPQAp[¥NQ:HZV¢_JOPRVWTmJONQH´VQcmAoLONR[^TI
HZjnAApjVQ[e[^Y?@7A£NRH?A£¡VQH,Te[%TmNSLOVR[m[mJK§]#SNR@7l?YnTmAIc4[eSJOAHZSAdjnNnSY?@7AH,Tq[`_] __RVWHj! " #%$&,
VQ[¡JKHZPRY?ceA
' I V#L£VQHZj I `L£jnAI¢_JOVWTmA=§ceNQ@ Tm<?AlZcmJOHZSJOl?LOAI[1NW\SNRHZSAIlnTRW[^Y?`)SNRHZSAIlnTd`_]tNRcej?AceJKH?PoNRc^Te<?NQPRNQHZVQL?SNQHSAl?Te[I
;=<?JX[i<ZVR[[^AI¢QAIceVQL)j?ceVi`ZVRSN6n[(JKcq[^TI?Te<?AMH_Y?@`%AcUNW£jnJKceAISTmNRcmJOAI[InLKJ6QA*)+#%,-.8NQc(/,R?Anl?LONnjnAI[I?i<?JXSq<
LOAIVQjZ[iTmNVWH©N¢RAcm¤SNQ@7l?LOA´ScmApVTeJKNRH2VQHZj®@VWHVWPQAI@7AH,TI10#HZASVQH [gTeJKLOLicmJKTmAV´[mScmJOlnTp`?Y?T#JKT#ceAIa,Y?JOcmAp[
[mlApSJXVWL\[g6,JOLOLO[=§ceNQ@VtY[^AIcIni<?JXSq<¥ASIVWH?H?NQTVQ[e[^Y?@7AR
_ApSNQHj[mNQ@7Aa,Y?AIcmJOAI[iiJOLOL4`%AVW`?HZNQce@7VQLKLO]¦jnJ<8SY?LKTUTeN§NQce@YZLOVWTmAQ U[e[mY?@7ANQH?A[mAIVQceSq<ZAI[¡§NQcGVjnNnSYn¤
@7AH,T#VQHZj 6,HZN[iJTiTqVWL6n[VW`%NQYnTGVWLOPQNQceJKTm<?@[I2$3%VWHZjJKTUJO[UV7bN,[gTq[mScmJOlnTiZLOAQ,R?`?Y?T#jnN_AI[UH?NWT 6_H?N
VWH_]8NQTm<?AIc¡VQSATNW:Tm<?AjnNnSY?@7AH,TI£H I V#LnNRH?AMSVQHjnNZcq[^T14!576 798;:!<Y8__VWHj8Te<?AH 7%8>=?7TmNPRAT=Tm<ZA
LOJO[^TUNWdVQLKL:cmAILKAI¢VQH,TUjnNnSY?@7AH,Tq[`?YnTpZ]RAT#VQPRVWJOH\?JK£NQH?A¡VQHRTq[=TmN¦cmAZH?AMNQHZA'([[^ApVWcqSq<2`,]´l?ceN¢,JXjnJOH?P7Tm<ZA
VWY?Tm<?NRc ([=HZVW@7AoTe<?JO[#[gTecmYSTmYZcmAoiJOLKL:H?NWT<?AILKl©VWTUVWLOL'1TU¥NRY?LXj´ceAIa,Y?JOceAG@7NRcmAMSNnjnJOH?P1H I `LNQH?AMSVQH
NQHZLK]xYZ[^A7Te<?AA@gTmce]xVWHj [mAACBtTeAISq<?H?JXa,Y?AKTecm] Zce[^TD4!5FEGHY8I.J;:!<Y89:K.L:6 7!8)?Te<?AHM4!5NIH.OPQ:R.R.Rq)ATeSW
i<?JXSq< JX[#TmAIj?JKNRYZ[)NRc#YZ[mA7[^<?AILKLTecmJXSN6n[#VR[UJOH 7%8S=?UT9:!<Y8:2T9:6)798)U;=<?A7jnJO[eVQj?¢VQH,TeVWPRAI[UNW£Tm<ZNR[mATecmJXSN6n[
VWceA9
V
Tm<ZA¦ceAI[mY?LTJX[MH?N LKNRH?PQAIcV®jnJKceAISTmNRcm]RW0#H?A¦SIVWH?HZNWTjnNX4!5YT:!<Y8:T:6)798%)i<?JXSq< @7AIVQHZ[oTm<VTTe<?JO[
lZ[mAYZj?NW¤ jnJKceAISTmNRcm]8SIVWH?H?NQTi`AMHZV¢_JOPRVWTmAIj\
V
JKTtceAIa,Y?JOcmAp[oTmN 6_H?N«Tm<VT /,8JX[JOHTm<?A´[^ApSNQHjl?LOVRSAJOH ZLOA8lZVWTm<Z[IVQHZj Tm<VTZ.$[xJKH Te<?A§NRY?c^Te<
l?LXVQSAQ TtceAIa,Y?JOcmAp[[mNQ@7A´jnJX[eSJOl?LKJOH?A¦TmN @VQJKH,TeVQJKH Tm<?N,[^A8ceY?LOAI[ti<?JXSq< @YZ[^Tt`%A2jnNnSY?@7AH,TeAIj VQHZj
§NQLOLON¥Apj2`,]A¢RAce]¦YZ[mAc#i<?N8=VWH,Te[TmN¦VRj?j2H?AI ZLKAp[]\iH®VQSTI%JKH <?JKAIceVQceSq<ZJOSIVWL)ZLOAt[m]n[gTeA@[iTe<?JO[
^_`]a&ba&cdeagfhgiAjkf;lnmnbporqorasbptuhlnbv&d]vrw%cxq*ixasd
yy d]v
y!z
lno{v&bpwplnosbpmqasclno|xl
yy
`]}
y
`xw~tb
y
ah`/bpCbpvp9lag`
y mq {vr` {!` osbpo(dora%d yy
d]v
y
~osd] b}` v
y
lnvrbpwpa&` v3q
y
d]tbpomnln| b(3]d
yy%
~ao%dpqo
y
`]a&cl
y
d]!` ~agd]{{mnlnwdea&ln`
y
mnbCbpm.clnbpv&d]v&w%clnbo
_
A LISP GC alg. Art of Programming A LISP GC alg.
/
minsky knuth minsky knuth ai os alg
78 79
doc pdf ps
... ...
...
...
...
... ...
alg os
/
...
...
79 ...
78 ps
minsky knuth
(1a) (1b)
A LISP GC alg. Art of Programming
78 79 ... minsky knuth ... alg os ai ... ps pdf doc ...
year author field format
/
...
(2) Legend: hierarchy
links
...
LISP−GC−ps−Minsky−78−alg
(3) /
Art−of−Programming−ps−Knuth−78−alg
JKPRY?ceA £[^JO@Y?LXVTeJKHZP7V7SNQHfgY?HSTmJONQH2NQ SNQHZSAlnTq[
I3,]#%xLnATeSQ1DGNQlZVQL)VQHZj M©VWHZj?Aci[mV]n[D M "" }¡A]QNRHZj¦VSAIc^TqVWJOH[eSVQLKAGLOJK@7JKTI?l%ANRl?LKAMSIVWH?H?NQT
ceA@7A@t`AIc£LKNnSVWTmJONQHZ[:§NRc£Anl?LOJOSJT£lZVWTm<7HZVW@7Ap[QVWTmAIc [mNo@VWH_]]QApVWcq[JKTdJO[£[^TmJOLOL?VW@Y[^JOH?PGTmNM[mAA=A¢RAH
Anl%AceJKAIHZSApj «[m]n[gTeA@ VQj?@JOH?JX[gTeceVWTmNRce[[ml%AHZj©TmJO@ATmce]_JKH?P /,$r#UNRc#=VQ[UJT1/,$&C.$!$3#
@V]_`A];!$rC.$$r#oNQc];,9p $r#2;=<ZAceA¦VWceA8NWUSNQY?cq[mA8@VWH_] [mAIVQceSq<TeN_NQLX[
V¢VWJOLOVQ`?LOAQ4`ZYnTNQcePRVQH?JJOH?P´LXVWcePQAZLOA8[m]_[^TmAI@[MJO[t[gTeJKLOL£TeN,N®<VWcqj8HTe<?JX[MA?VW@7l?LOAQYZ[mAcq[GTmce]©TeN
VQ[e[mN_SJOVWTmANRc^Te<?NQPRNQHZVQLSNQHZSAlnTq[dTeNtVMLKAg,,x_$rx$p$&C.$g,9p ,9p
;:NjnNoTm<?A=TecmJXSN6¡A=YZ[mAIjl?ceA¢_JKNRYZ[mLK]RWJT¥¥NRY?LOjtceAIa,Y?JOcmA¡TmNMceANRcmP,VWH?JA¥ZLOAi<?JOAcqVWcqSq<?JKAp[WVQHZjtTmNMl?Y?T1V
ZLOAiJKH p$rx$,!$3#9,x9pUi<?JXSq<tJX[TmApjnJKNRYZ[I:T£JX[£[^JO@7l?LKAIc Tm<ZVWT$3#d@ApVWHZ[JO@7l?LKJXSJKTmLO]
p$rx$,!$3#!,9p
'
Tm<ZA®LKJOH%6 [mNQLOYnTmJONQH I'B#LtLKN_N6n[l?cqVQSTmJXSVW`ZLKAR1`?YnT8JKT@VW6QAp[JTTeAIjnJONQYZ[TeN SceAIVTeA¦LKAp[=VWHZj@VW6RA´LOJKHA6_[
@VWH_YZVQLKLO]Q M®NQceAJK@7l%NQcmTeVWH,TeLK]R1NQHZASIVWH?H?NQTA¢QAIHjnN V SNRHfgY?HZSTmJO¢QA®a,Y?Ace] [^YSq< VR[ 4!576 798;:!<Y8_ T
¡NQY?LXj cmApaRYZJKceATmN2Zcq[gTj?N 7%8u6 798)Te<?AHu7%8 <Y8n4VQHZjxTm<?AIHTmN©SVQLOSY?LXVTmATe<?A8JOHRTeAcq[^ApSTeJKNRHxNQ¥Te<?NR[mA8B
jnJOcmApSTeNQceJKAp[
JKTm<Tm<?JX[[mNQLOYnTmJONQH4nNQH?AoLONR[mAI[iVWP,VWJOH8Te<?AMlN¡AciNQ:HZV¢_JOPRVWTmJONQH\_`%AISVQYZ[mA#Te<?A[m]_[^TmAI@ jnN_AI[
H?NQTl?cmNRlN,[^A#§Y?cmTm<?AIcUSNRHZSAIlnTe[¡TeN7cmAZH?AGTm<?Aa,Y?AIcm]R
'
ZHZVQLKLO]7Tm<ZAGHVW@7AG[mNQLOYnTeJKNRH I L1SNQHZ[mJX[gTq[¥JOHAHZSN_j?JKH?PTm<?Aol?ceNQl%AcmTmJOAI[¡NQ\Tm<?AGZLOAGJKHJTq[¡HZVW@7AQ H´VQSTInJKT
fgYZ[^TGVQ@NRY?H,Te[=TeN8A@tY?LXVTmAV8`N_NQLOAIVQH2NQcePRVWHZJpVTmJONQH´JKHxV7<?JKAIceVQceSq<ZJOSIVWL\[m]_[^TmAI@20#H?AtSVWH2YZ[mAZ #%8VQHZj
.e2TeN7[mALOAIST=Tm<?AoZLOAM`?YnTUVR[=¥AoiJOLKL:[^AIAGJOH _AISTmJONQH Bnn`ZYnTiTm<?AMHV¢,JOPRVWTmJONQH¦SIVWlZVQ`?JOLKJKTg]8JX[iLKN,[gTp
ASVWH©SNQHZSLKYjnATe<ZVTGJKH©lZceVRSTmJXSA<?JKAIceVQceSq<ZJOSIVWL\NRcmP,VWH?JIVWTmJONQHZ[¡VQJKL:TmNVWLOLKN"Tm<ZAYZ[mAcUTmN´SLOVR[m[mJK§]VQH©JKH?§NQcm¤
@7VWTmJONQHJKH®[mA¢RAcqVWL%JKHZj?Al%AHZjnAIH,T#SNRHZSAIlnTe[I
VWH?NQTm<?AIcjnJX[eVQjn¢VWH,TqVWPQA¥JO[Te<ZVT Te<?A=LKNRPQJXS1NQZTm<ZA=a,Y?AIcm]MLXVWHZPQYZVQPQA1JX[ LOJK@7JKTmAIjTmNMSNQHfgY?HSTmJO¢QA¡§NRcm@tY?LOVR[ IAQPZO!
§NQc=TmcqVQj?JTeJKNRHZVWL%ZLOA[^]n[^TmAI@7[NLdy#JX[§fgY?HSTmJONQH®SIVWH`A[mJK@tY?LXVTmApj¦Y[^JOH?P[^<ZALOLTmceJOSN6n[ I'[^YZSq<2VQ[=JOH
7)8>=?UT:I J"!#?5%$'&rI J"!#?.5(*)!:DL
`?YnTH?AIPRVTeJKNRH¦JX[iH?NQTi[mN7AIVR[^]TeN[^JO@Y?LXVTeAQk YZ[mAci¡NQYZLOj´LKJ6QAGTeN7j?NofgYZ[gT*4!5,+I J"!#?5%$nNQc
45NI J"!*#?.5%$'&&I 9J"!*#?5"(Q
Z=[.- / i iqha`xcdmzikbAlkc=mJ^anocCp%^ai mJr
A`®[^ApVWcqSq<¦AIH?PQJOH?AI[i[mYZSq<2VQ[DGN_NQPRLKAo`%ALONQH?PTeNtTe<?AUTqIWK
PVUO%P P
WW
Hn§NRcm@VTeJKNRH IJKHTm<ZA AI`©SVQ[mAQ
; M©h ZLOAI[NL¡JO[=NRcmP,VWH?JApj8`_]´jnAp[mScmJO`?JOH?PJKHn§NRcm@VWTmJONQHALOA@7AH,Te[=iJKTm<®LOJX[gTq[=NW
6QAI]_¥NRcej?[I 0#H?AZHj?[MVWH JKH?§NQce@7VWTmJONQH `_]©[^l%AISJ§]_JOH?P©V¦LOJX[gTNQ 6QAI]_¥NRcej?[UTm<VTMJTq[MjnAI[eSceJOlnTmJONQH @YZ[^TSNRHRTqVWJOH\T
SVQH´`%AMA_TeAHZjnApj`,]¦`N_NQLOAIVQH¦§NRcm@tY?LXVQ[I_[mYZSq<®VQ[-210 324+-"0 1576W-10 98Z
;=<?Aol?ceJKHSJOl?LKAMNQ:`%N_NQLOAIVWH2a,Y?AceJOAI[=JX[iSNQHSceATmAMVQHZj¦JOH,TmY?JKTmJO¢QARZVWHj¦PRAH?AIceVQLKLO]¥AILKLK¤ VQSSAlnTeAIj
;=<?AMVQj?¢VQH,TeVWPRAI[¡NW:Tm<?AM`%N_NQLOAIVQH´lZVQceVRjnJOPQ@ VWceA9
U[ NQlZlN,[^ApjTeN#Te<?Ai<?JOAcqVWcqSq<?JXSVWL,lZVQceVRjnJKPR@2JT£JX[£AIVR[^]oTeNoj?AI[eSceJK`%AiVWHJKHn§NRcm@VWTmJONQHALOA@7AH,T£`_]VoSNQHWfgY?HZSTeJKNRH
NW:SNQHZSAlnTq[ T=JO[¡¢QAIcm]¨ZAnJK`?LOAo`ApSVQYZ[^AGNW4Tm<?AG@VWH_]`N_NRLKApVWH8§NRcm@tY?LXVQ[1Tm<ZVWT=VQcmA#AIa,Y?JO¢VQLKAIH,TId;PZO?aRYZAceJKAp[
$3:6/,oVWHZjA,'6D.$[8VQcmA#AIa,Y?JO¢VQLKAIH,TInVQ[¡NQlZlN,[^Apj7TmN7V<ZJKAIceVQceSq<?JXSVQL?ZLOAo[^]n[^TmA@[¡i<?AIcmA.$[*],#VWHj ,!$3
VWceA#H?NQTAIa,Y?JO¢VWLOAH,TVTVWLOL'
;=<?AMaRYZAce]8LOVQH?PQYVWPQAGJX[=Anl?ceAI[e[^JO¢QA#K,JKTl%Ace@JKTe[USNQHWfgY?HZSTeJKNRH\?jnJX[§fgYZHZSTeJKNRH2VQHZjH?AP,VTeJKNRH\
;=<?AMjnJX[mVRjn¢VWH,TeVQPQAp[¡VQcmA
U[iNRl?lN,[^Apj´TmN7Tm<ZA<?JOAcqVWcqSq<?JOSIVWLlZVQceVRjnJOPQ@2_Tm<?At[^]n[^TmA@ jnN_AI[iHZNWT#VQHZ[^¡AcVa,Y?AIcm]´iJTe<®H?A"ceALOA¢VWH,T 6QAI],¤
¥NRcej?[DKZJOHZ[^TmApVQj%JToceATmYZcmHZ[#VLOJO[^T#NQ1VWLOL4JOHn§NQce@VTmJONQH®AILKAI@7AH,Te[#i<?NR[mAjnAp[mScmJOlnTeJKNRH®JO[#lZVWcmTmJXVWLOLO]´@VTqSq<?AIj2`_]
Tm<?Aa,Y?Ace]Q _NZTe<?A7A?VQST 6RA]_¡NQcqj?[Te<ZVTMl%Ace@7JToTmN®[mALOAISToVQHxJOHn§NQce@VTeJKNRH ALOA@7AIHRTM@tYZ[gTo`%APQY?Ap[m[mAIj®`_]
Tm<?AMYZ[mAcK,Tm<?A[m]n[gTeA@ jnN_AI[=H?NQT=<ZALOl\
_JKHSAMTe<?A[m]_[^TmAI@VQHZ[^¡Acq[=iJKTm< V7LOJO[^TUNQ JOHn§NRcm@VTeJKNRH2ALOA@7AH,Te[iTm<?AtcmAp[^Y?LKTNWdVa,Y?AIcm]SVWH®`%ALONQH?P?i<?JXSq<
SVWH@7ApVWHYZ[mALOAI[e[R`ApSVQYZ[^A#VYZ[mAc1SIVWH?HZNWTRWjnN_AI[1H?NWT1=VWH,TdTeNPQNTm<?ceNQY?PR<7Tm<?A#AH,TmJOceALKJX[^TdTmNZHZj7Te<?A#jnAp[^JOceAIj
ZLKARd;=<ZVTi@7AIVQHZ[¡Tm<VTiTm<ZAMYZ[^AIciH?AApj?[¡TmN7HZj´§Y?c^Te<?Ac 6RA]_¡NQcqj?[¡iJTe<?NQYnTi<?AILKl4
_
VWHZj[^YZ`%jnJOceAISTeNQceJKAp[ LVQLKLON[NQH?A¡TmNo<ZV¢RA=JKHtTm<?AiceAI[mY?LKTdNW)VGa,Y?AIcm]I§AQPZO!$&,:L VGLOJK@7JKTmAIjH_Y?@t`AIc£NW)JKHn§NRcm@VWTmJONQH
ALOA@7AH,Te[iVQHZj´NW£[^Y?`?¤SNQHZSAlnTq[
_N%NRH?A¡NQYZLOj LKJ6QATm<ZVWT#Te<?A[^]n[^TmA@ l?ceNQl%NR[mAI[I§cmNR@ Tm<?A7SNRHRTeA_TI[mNQ@7AcmAILKAI¢VQH,T.6QAI]_¥NRcej?[iTm<ZVWTGiJOLKL ceAZHZA
Tm<ZA[^ApVWcqSq<4K,Tm<ZVWTJO[=NRH?Ao¡VQHRTq[iVHZV¢_JKP,VTmJONQHSVQlZVW`?JOLOJTg]8iJKTm<®V`%N,NRLKApVWH2a,Y?Ace]¦SVQlZVW`ZJKLOJTg]R
Z=[ `xhacCp%^ai m c=h'ikbAlkc=mJ^anocCp%^ai mJr
yGVTeVQ`ZVQ[mAI[¡`%ALONQH?PTeN7Tm<?A m
P
'
VP
O%P P
WW
yGVTeVJO[1NQcePRVWHZJIAIj`_]Zcq[^T¡SceAIVWTmJOH?PoTeVQ`?LOAI[IRiJKTm<8HVW@7AI[1NW4SNRLKYZ@H[_VWHZjTe<?AH¦`,]ZLOLOJKH?PJKHTe<?NR[mAiTqVW`?LOAI[¥iJTe<
JKTmA@[I 0#H?AM[^ApVWcqSq<?AI[=VQH´NR`nfgAIST`,]¦YZ[^JOH?PV7SNR@lZLKA¦LOVQH?PQYVWPQAG`ZVR[^Apj¦NRH´ceALXVTeJKNRHZVWL\VQLKPRA`?cqVNRlAIceVWTmJONQHZ[I
;=<?A8`ZJKP VRjn¢VWH,TeVQPQA7NWUjZVTeVQ`ZVQ[mAI[oJX[MTe<?A¦Anl?cmAp[m[mJO¢QAHZAI[e[oNW=Tm<?AIJKca,Y?Ace]xLXVWHZPQYZVQPQAQ ;PZO4NRH?A¦SVQH VQ[e[^NnSJOVWTmA
¢VWLOY?AIj2VWT^TmceJO`?YnTmAp[¡TmN7JKTmA@[IZVWHj¦Te<?AH2@VW6RAGSNQ@7l?LOA2aRYZAceJKAp[¡[mYZSq<2VQ[,$r 0 ,# n
;=<?AGjnJ<8SY?LTg]JX[1Tm<ZVWT¥Te<?JO[¡A_lZcmAp[m[mJK¢RAH?Ap[m[1SNQ@7Ap[¥VWT¡VlZcmJXSAR yGVTqVW`ZVR[^Ap[1VQcmA#@NRcmA#SNQ@7l?LOA8[m]n[gTeA@[dTe<ZVWH¦ZLOA
[m]_[^TmAI@[?VQHZj¦VQcmAGLKAp[m[=ApVQ[m]TmN7LKApVWceH I'V UH?JK,¤ [m<?ALOL\SNRY?ce[mA9 <4?VWH+>Gh SNQY?cq[mA9uR{W<L£;=<?JX[=JO[=`%AISIVWYZ[mAUTe<?AceAMVWceA
@VWH_] SNQHZSAlnTq[GTmN®LOAIVWceH\4[mYZSq<VQ[M[mALOAISTmJONQH VWHZjxl?ceNWfgApSTmJONQH4 M©NQceAN¢QAIcI\VR[G§NQcM`%N_NQLOAIVWH NQcePRVQH?JIVTeJKNRHZ[I%JKTjnN_AI[
H?NQT¥l?ceNQl%NR[mAHZV¢_JOPRVTeJKNRH\Qi<ZJOSq<´@7V6QAp[dJKT=jnJ<8SY?LKT¡TmNHZj¦VQH8JKH?§NQce@7VWTmJONQHiJKTm<?NRYnT 6,HZNiJKH?PTm<?Ao[gTecmYSTmYZcmANQ\Tm<ZA
j?VWTeVW`VQ[mAQ_JTq[o Z
P
Z=[ mJ`Jcdb%cJ^\l
U[:¡Ad<ZV¢QAd[mAAIH\VWLOLRlVWcqVQjnJOPQ@[jnAp[mScmJO`ApjMJOHMTm<?JX[\JOH,TmceNnjnYZSTeJKNRH<ZV¢RA Tm<?AIJKc VQjn¢VQHRTqVWPRAI[VWHjjncqVi`ZVQSN6n[I\;=<?Ad@VWJOH
SNRH,TmceJK`?Y?TmJONQH7NW)NQY?c£¡NQc 6JX[ TmNMlZcmNRlN,[^AiVoH?AINRcmP,VWH?JIVWTmJONQHi<ZJOSq<7@VW6RAI[ JKT1lN,[m[mJO`?LKA=TeNSNR@`?JOH?AiHZV¢_JOPRVTeJKNRHtVQHZj
a,Y?Ace]_JKHZPZ)AIVR[^ANW1Y[^A7VWHZj Anl?ceAI[e[^JO¢QAIH?AI[e[I%VQHZj©<?ATmAIcmNRPQAHZAJKTg]NQ¥jnAp[mScmJOlnTmJONQH4\VWHZj i<?JOSq< SVQH `%AJO@7l?LOA@7AH,TmApj
ceAIVQ[mNQHVW`?LO]7A<8SJOAH,TmLO]Q
;=<?JX[UNRcmP,VWH?JIVWTmJONQH®JX[#VQH JOHZ[^TeVWH,TeJOVWTmJONQH©NQ1V8Te<?ANRcmATmJXSVWLVWl?lZcmN,VQSq< kU{Q{?/ k{ Tm<ZVWTGPRAH?AIceVQLKJAp[=ZLOAtlZVWTm<Z[
TmNtVWLO@N,[gT¡VWce`?JTeceVQcm]LKNRPQJXS=§NQce@Y?LXVQ[I4 H?§NQce@7VWTmJONQH8[m]n[gTeA@[d`ZVR[^Apj7NQH7Te<?JO[¡VWlZl?cmN,VQSq<7VWceASVQLKLOAIj:mQ
V
P
+
V
t'I ! §NQc#[m<?NRc^TLGH©Tm<ZJO[oVWcmTmJXSLOAQ%¡A<ZV¢RAcmAp[gTecmJXSTeAIj2Te<?ALKNRPQJXSM`_]©VWLOLKNiJOH?P7TmN2SceAIVWTmANRH?LO]´LKAp[#iJKTm<xV
SNRHfgY?HZSTmJO¢QAjnAp[mScmJOlnTeJKNRH\?i<?AIcmAVWTmNQ@[SIVWH2`%AMNQcqjnAceAIj´@VWH_YZVWLOLO]8TmN7§NRcm@ VTeVW_NRH?NQ@t]Q1y#AI[ml?JKTmAoTe<?AceAI[^TmceJOSTmJONQH
TmN®SNQHfgY?HSTmJO¢QAjnAp[mScmJOlnTeJKNRHZ[)Te<?A7YZ[mAcMSVQHxYZ[mAjnJX[§fgY?HSTmJONQH[MVWHZjxH?AP,VTeJKNRHZ[UJOH [^ApVWcqSq< a,Y?AceJOAI[It;=<?A7ceAI[^TmceJOSTmJONQH
@VW6RAI[GTm<ZA8[^]n[^TmA@ [^JO@7l?LOAcp4`?YnTt¥A7l?LXVWH TmN©VQLKLON j?JO[fgY?HZSTmJONQH VWHjxHZAPRVWTmJONQH JKH jnAp[mScmJOlnTeJKNRHZ[oJKH §YnTeY?ceA8¥NRcg6n[I
N¡A¢RAcp,Tm<?JX[=cmAp[gTecmJXSTeAIj´JKH[gTqVWH,TmJXVTeJKNRH[mAAI@7[=ceJXSq<´AIH?NQY?PR<¦§NRcVtZce[^Tl?ceNWTeNWTg]_lAR
0#HZSAVWH®NQcePRVQH?JIVTeJKNRH¦JX[USq<?N,[^AIH\nTe<?Aa,Y?AI[^TmJONQH®ceA@VQJKHZ[NW£i<ZVTiJOLOL4`%AJKTe[lZLOVRSAMJOH©V8[^]n[^TmAI@VWcqSq<?JKTmApSTmYZcmAR
;=<?A l?ceNQl%NR[mAIj NRcmP,VWH?JIVWTmJONQH iJKLOLM`%AxJO@7l?LKAI@7AH,TmApj VR[´V ZLKA [m]n[gTeA@2 ;=<?JO[@VW6RAI[´JT2YZ[eVW`?LOA `,] VQLKLo[mNQcmTe[´NW
VWlZl?LKJXSVWTmJONQHZ[IAQPZO4[^<ZALOLO[I AIjnJKTmNRce[ISNQ@7l?JOLKAIce[I4@tY?LKTmJO@ApjnJXV®l?LXV]QAcq[I M®NRcmAIN¢QAIcI)Te<?A8ZLOA¦[m]n[gTeA@ JKH,TmAIc^VRSA¢_JXV®V
[m<?ALOLqI8VWHZjW$s,L¡JX[i¢RAce]AIVQ[m]TeNYZ[^ARZVWHj´JKTU[mY?l?l%NQcmTe[iJOH,TmceJKHZ[mJXSVWLOLO]Tm<?AM<ZATmAIcmNRPQAIH?AJKTg]8NW£j?VWTeV?d;=<ZAoZLKA[m]n[gTeA@
iJOLKL\`%ASVQLKLOAIj:mQ#"1K q I !" §NRc[^<?NRc^TL
;=<?Al?LXVWH NQdTm<ZJO[oVWcmTmJXSLOAJX[oVQ[U§NQLOLKN[I AZcq[^TGl?ceAI[mAH,T#Tm<?A7l?ceJKHSJOl?LKAp[#VQHZj©Y[mVQPQANQ¥V´LKNRPQJXSMZLOA[m]n[gTeA@ JOH
_ApSTmJONQH2Bn£;=<?AIH¦¡A#A_l%NR[mAoVWH¦JO@7l?LOA@7AH,TeVWTmJONQH[mSq<?AI@7AQ_iJTe<´JKTe[=j?VWTeV[gTecmYSTmYZcmAp[¥VQHZj¦VQLKPRNQceJTe<?@[1JOH+_ApSTeJKNRH?
Al?ceAI[mAH,TdVQj?jnJKTmJONQHVWLn§ApVTmYZcmAp[£VWHZjA_TeAHZ[mJKNRHZ[TmNoTe<?A`ZVR[^JXS=[mSq<ZA@7AiJKH _ApSTeJKNRHuZ(_AISTmJONQH8wGjnAI[eSceJK`%AI[1VWHVQSTmYZVQL
JO@lZLKAI@AIH,TeVTeJKNRH®VWHZj¦Tm<?AcmAp[^Y?LKTe[=NQAnlAIcmJO@7AH,Te[I£H®VWLOL)Tm<?Ap[^A[mAISTmJONQHZ[In¥Aj?AI[eSceJK`%AoLKNRPQJXSULKA[m]n[gTeA@[=JKHTeAce@7[
NWi[m<?ALOLdSNR@@VQHZj?[oLOJ6RA 4!5%d7%8n4VQHZj P#9O/4Q)`%AISIVWYZ[mATm<?AI]xVQcmA7@7NQceAtY[^AIc^¤NQceJKAIH,TmAIj\ 0#HZLK]©i<ZAHAH,TmAIcmJOH?PJKH,TeN
jnAIAl%Ac#j?ATeVQJKLX[IjnN¡ASNRHZ[mJOjnAIcUVQSTmYZVQLZLOA[m]_[^TmAI@NRlAIceVWTmJONQHZ[I?LOJ6RA 7"#"#IO.<´VWHj ? .65.5G?) A¢QAIc^Te<?ALOAI[e[I?JTGJO[UV
H?AILKAU[m]n[gTeA@ Tm<ZVWT1¡Al?ceAI[mAH,TI ;=<?AU[m<?ALOLZJX[£NRH?LK]7VWHJOH,TmAIc^VRSA=TmNTm<?AiLKAU[m]n[gTeA@2_VWHZj¡AUSVQHYZ[^AVQH_]tA_JX[^TmJOH?P
[m<?ALOL'_ApSTeJKNRH8vol?cmAp[^AIH,Te[£ceALXVTeAIj¥NRcg6n[IQ[mJKHZSAJKT¥<ZVQl?lAIHZ[£Te<ZVT1Tm<?NRY?PQ<7NQYZc¥VWH[^¡Ac£JX[dH?AIMQTe<?ANRcmJOPQJOHZVWLaRYZAI[^TmJONQH
@ N"TmN´PQAT#Tm<?A7VQj?¢VQH,TeVWPRAI[iNQ1[^AI¢QAIceVQL\JKH?§NQce@7VWTmJONQH©[m]n[gTeA@ lZVWcqVQj?JKPR@7[UJKHxV¦[mJKH?PRLKAlZVWcqVQjnJOPQ@%$CB JO[GVWH©NRLOj2NRH?AQ
JKHVWLOLK]R?¥Aol?ceAI[mAH,T=§YnTeY?cmA[mAIVQceSq<jnJOcmApSTmJONQH[¥JOH _AISTmJONQH tVWHZjSNRHZSLOYZjnAMJOH _AISTmJONQH !?
& '
¥)(i +*-, 2 \
A¦iJOLKL¥Zcq[gT7jnAI[eSceJK`%A¦V©ZLKA[^]n[^TmAI@`ZVR[^ApjNQH Te<?A¦`%N_NQLOAIVQH aRYZAce]xlZVQceVRjnJOPQ@2 s©
P
DGN_NQPRLKAR VQHZj Tm<ZAH ¡A¦iJOLKL
A_TeAHZj´JT=TeN7VRj?jTe<?AMHZV¢_JOPRVTeJKNRH8SVQlZVW`?JOLOJTg]R ;=<ZAG`%N_NQLOAIVQH8ZLOAM[^]n[^TmA@ l?LKY[¡Tm<?AoHZV¢_JOPRVTeJKNRH¦SVQlZVW`ZJKLOJTg]7§NRcm@[¥Tm<ZA
f1 f2 f3 f4 f5 f6 f7
x x x x x
x x
x x
x
x x x x x
x x
x x
x xx x
x
x
o name(o) a0
1 2 3 4 5 6 7
a6 a5
a4 a3
a2 a1
properties
x
objects
ls = { f7, f5, f3, f2, f1 } PWD = a3 / a5
JKPRY?cmAB2dV[mJO@lZLKAo`%N,NRLKApVWH´ZLOA[^]n[^TmA@
SNRcmAUNW\Te<?A#LONQPRJOSiZLKAo[m]_[^TmAI@2 AUiJOLOL%lZcmAp[^AIHRT¡i<ZVT¡JO[¥Te<?A#[mA@VWH,TeJOSI[1NQ\Tm<?AG[^<ZALOL)SNQ@7@VWHZjZ[4!5%)7%8nE)P#!O/4Q
EI5G?)9?!E5G?%?!E4 5GPtJOH8Te<?A#ceAI[mY?LKTmJOH?PLKAo[^]n[^TmAI@£;=<?AIH¦¡AUiJOLKL)A_lZLOVQJKH´<?N Tm<?JX[¡H?A lZVWcqVQjnJOPQ@ V )AISTe[¥Tm<ZA
[mAISYZcmJKTg]8@7NnjnAL+
- [\Z i iqh\`4c=m h\`_r r#p `
U[¡¡AU<ZV¢RAUSq<?N,[^AIH¦VMZLOAo[^]n[^TmA@ JOH,TmAcmVQSAU¡AGVQcmAVQSApj8iJKTm<2B 6_JKHj?[¡NW\NQ`?fgAISTq[xZLOAI[¡VWHj¦jnJOcmApSTeNQceJKAp[C¥N_NRLKApVWH
l?ceNQl%AcmTmJOAI[=iJOLKLlZLOV]Te<?AMceªQLOAGNQjnJOceAISTeNQceJKAp[
;:N®<ZVWHZj?LKA`%N_NQLOAIVWH a,Y?AIcmJOAI[oJOH VZLOA8[^]n[^TmA@2¥A8VR[m[mNnSJXVTeA7V®SNQHfgYZHZSTeJKNRH NQil?cmNRlAIc^TeJKAp[oNWiJOHRTeAceAI[^TUI§J+ARK:V
jnJOcmApSTeNQce])L=TmN8AI¢QAce]´ZLKAR#;=<?JX[JX[GjnNQH?At`_]¦Zcq[^T#ceAPQJX[^TmAceJOH?Pl?ceNQl%AcmTg]¦HZVQ@Ap[UiJKTm<xSNQ@7@VWHj E;I5G?)ZAQPZOEI5G?
EGH8I.J "EI.5G?S6)7982R.R.R_AISNQHZj\,SNQ@7@VWHZjW4!5[^ATe[dTm<?AtTmNVtjnAI[mJOcmApj7LKJX[gT¡NW\l?ceNQl%AcmTg]HVW@7AI[ I§J+ARK,JKT¥PQN_Ap[
¢_JKcmTmYVWLOLK]2TeNV2jnJOcmApSTeNQce]Q)NQcoPQN_Ap[UTeNV´¢_JKcmTmYVWLdjnJOcmApSTeNQce])LAJKHVWLOLK]R\SNQ@7@VWHj?[GLKJ6QA"P#9O4Q®VWHZj 496PiJOLOLdSceAIVTeA
ZLOAI[GVQ[e[^NnSJOVWTmAIjiJKTm< Tm<?Atl?cmNRlAIc^TeJKAp[HZVQ@7AIj2JOH®Tm<?A%ZAQPZO4!5FEGHY8IJ;:!<Y8:6)798 P#9O4QMEJG79 NQTmATm<ZVWT
<Y8¦H?AIAIj?[MHZNWT`%A8V[mY?`)SNRHZSAIlnTNW EGH8I.J)H?NQcA6)798©`%A8V2[^Y?`)SNRHZSAIlnTNW*<Y8n4VR[oJKH V2<?JOAcqVWcqSq<?JXSVWL:ZLOA8[^]n[^TmAI@
;=<?A[mLOVR[^< Is: L¡@Y[gT`%AMcmApVQjVQ[=V ISNQ@7@Y?TeVTeJK¢RAL¡SNRHfgY?HZSTmJONQH\
H7Tm<ZA`N_NRLKApVWH7ZLOAU[m]_[^TmAI@2RSNR@7@7VQHZj+4!5l?LXV]n[ Tm<ZAUceªQLOAiNW)Tm<?A#jnJOVQLKNRPM`N7i<?AIcmAiNRH?AAH,TeAcq[dVDGN_NQPRLKAa,Y?AIcm]R
VQ[=JOH 4!5>6)7982:!<Y8Q ,¥NR@@VQHZj 7)8tl?LOV]n[¥Tm<ZAMcmªRLKAoNW `?YnTmTmNRHD@m[mY?`?@7JTBqVWHZj´JTq[VWH[^¡Ac=JX[=Tm<?AMHVW@7AoNW£VWLOL)Tm<?AoZLOAI[
i<?N,[^A8jnAp[mScmJOlnTeJKNRH P
'X§¡GTm<?Aa,Y?Ace]Q _NJKTceA@VWJOHZ[TmN®§NRcm@VWLOJAi<ZVWTJTJO[§NQcV jnAI[eSceJKl?TmJONQHTmNx[mVWTmJX[g§] V
a,Y?Ace]Q
LONQPQJXSGJO[UjnAZHZAIj2`_]¦V7LXVWH?PRYZVWPRAQnJ+ARK?JKTe[i§NQce@Y?LXVQ[I?VWHZj2VQHAIH,TeVWJOLO@AIH,TcmAILOVWTmJONQH´Tm<ZVWTJO[iY[^YZVQLKLO]¦iceJKT^TmAIHt
2S %5t@7AIVQHZ[¡Tm<ZVWTJ 2oJO[¡TecmYZAQnTe<?AH %5@YZ[^T`AoTecmYZA#TeN_N
?NRcoJKHZ[^TeVQHZSAR 6 ©<?NRLOjZ[oJKH l?ceNQl%NR[mJTeJKNRHZVWL LONQPQJXSW H Tm<?ASY?cmceAH,TMl?ceNWTeNWTg]_lARTm<ZALONQPRJOSJX[MVcmAp[gTecmJXSTeAIj
§NQce@ NQ¥Te<?ALKNRPQJXSNW=l?cmNRlN,[^JKTmJONQH4"ZNQce@Y?LXVQ[MVQcmAAJKTm<ZAc[mJK@7l?LOA8VTeNQ@[XI§ARPK L4H?AIPRVWTmJONQH NWiVTmNR@[XI§AQPZO)L
jnJX[§fgYZHZSTeJKNRHZ[MNWiVTeNQ@[XI§ARPK3274 15 4 "8 L:NQcSNRHfgY?HZSTmJONQHZ[NW¡§NQce@Y?LXVQ[XIAQPZO r 274 5'6 "8 6gL´;=<ZA
AH,TqVWJOLK@7AH,TceALXVTeJKNRHxJX[MTe<ZVTtNWiYZ[mYZVWLdlZcmNRlN,[^JKTmJONQHZVQLdLONQPQJXSW;=<?AI[mA§NRcm@tY?LOVR[VWceA7icmJKT^TeAH 6 +p6(6 $ &%61(:&%6\VQHZj
]6 $ &%61(3)! ]6"3)! *+6# )iJOHTm<?ASNQHZScmATmAo[^]_H,TeVW
h\AT%$ `%AUTe<?Ao[^AT¡NQ:VWLOL%Tm<?A#ZLOAI[¡JKH¦Tm<?A#ZLOAG[m]n[gTeA@2&&'¥`A#Tm<?AojnAp[mScmJOlnTmJONQH´NW4VZLOA1 IJKH´NQY?c=SVR[^AR&&'1JX[=V
SNRHfgY?HZSTmJONQH2NW l?ceNQl%AcmTmJOAI[NL)W&'¡`ATm<?AMHZVQ@7AMNWZLKA _VWHZj '&'=`AoTe<?ASNQH,TmAIHRTiNQ:ZLOA _ ;=<?AVQHZ[^¡Ac¡TeN
7%8GJOH8V( ´JO[%))+"&'*,+-$/.0r'1 32jI'[^AIAZPRY?cmAUBo§NQc¥VQHJKLOLOYZ[gTeceVWTmJONQHL£;=<?JO[¥[^AT1JX[¥SIVWLOLKApjTm<?At54R
V
V
NW§NQce@YZLOV4
_
VWLOL)Tm<ZAoZLKAp[iJOH´Te<?AM[^]n[^TmAI@Z`ApSVWY[^AMVWH_],Tm<ZJKH?P7AIHRTqVWJOLO[¡TecmYZAQ
;=<?A 5GP #$r)WGSNQ@7@VWHZj¦¥NRcg6n[=VQ[¡JOH´NQTm<?AIc=ZLOAo[m]n[gTeA@[InJ'AQOnJTi@7NnjnJKZAI[¡Te<?ASNRHRTeAH,Te[:'&'¡NW VLKA*
[mYZSq<¦Te<ZVT)W"r'> #%$&)W,
;=<?A "7AI¢QNQLO¢QAp[1JOHZScmAI@AIH,TeVWLOLO]QdDGJK¢RAHVl?ceNQl%AcmTg]
?j?NQJOH?P+45
JOHV 12QnSq<ZVQH?PQAp[1Te<?A JOH,TmN12 6
JX[R.RRnNRH?A=fgYZ[^TUPQN_AI[`ZVQSN6´JKHTm<ZA<?JX[gTeNQce]QVR[=iJTe<©<?JOAcqVWcqSq<?JXSVWL%ZLOA[m]n[gTeA@[VWHZj2JK
JO[1:!)ZTm<?AMH?AI "
JX[#[mJK@7l?LO]W)# H [mY?@7@VWce]QVLONQPRJOSlZVTe<©@YZ[^TMVWLO¡V]n[i`%AtSNQ@7lN,[^Apj®iJKTm<©Te<?A,´TeVW6_JOH?P¦JOH,TmNVQSSNQY?H,TUceALXVTeJK¢RA
VWHj´VQ`Z[^NRLKY?TmAolZVTe<Z[IZVWHZj[mlApSJXVWLHZVQ@Ap[=LKJ6QAR.RR
U[iZLKAp[AI¢QNQLO¢QAR_Tm<?AIJKc#jnAI[eSceJKl?TmJONQHZ[iAI¢QNRLK¢RA#TeN_NZ_NZ?NRH?AMH?AIAIj?[#V7¡V]TeN8Y?l)j?VTeAoTm<?AtjnAI[eSceJKl?TmJONQH2NWdVZLOAQ¡H
<?JOAcqVWcqSq<?JXSVWLZZLOA#[m]_[^TmAI@[,Tm<ZA#l?LXVQSAUi<?AIcmAGVMZLOAGJO[¡LON_SIVTeAIjJX[¥Tm<?AoSY?ceceAH,T¥jnAp[mScmJOlnTmJONQH¦NW\Te<?JO[¥ZLOAQnVQHZj8i<?AIH8NQHZA
=VWH,Te[#TmN@7NnjnJ§] JTq[MjnAI[eSceJKl?TmJONQH\NRH?AUfgY[gTSq<ZVQH?PQAp[UJKTe[oLONnSVTeJKNRH YZ[mJOH?PSNQ@7@VWHZj+E&%t;=<?JO[o¡NQc 6n[UJOHxTm<?A[eVW@7A
=V]JKH®V`N_NRLKApVWH´ZLKA[m]n[gTeA@2
,¥NQHSceATmAILK]RJ=NQHZAAnAISY?TmAI[E& 9 9 7VToTm<ZAcmN_NWTMNQ1Tm<ZALKNRPQJXSZLOA8[m]_[^TmAI@ I§J+AQO3" WL\Te<?AA )AIST
JX[UTeNSq<VWH?PRAMTm<?A7HZVQ@7ANW MJOH,TmN W\VQHZj®TeNSq<VWH?PRAJTq[ojnAI[eSceJKl?TmJONQH\\jnAILKATmJOH?P VWHZj©VRj?jnJOH?P WM1Tm<?A[eVW@7A
SNR@7@7VQHZjJX[AnApSYnTeAIj VTVWH VWce`?JKTmcqVWce] )Tm<?AZ7VQHZjW8@YZ[^T`%A´SNR@7lN,[^ApjxiJKTm< Tm<?JX[,)\i<?JXSq< cmAp[^YZLTq[
JOH
VQHZj
;=<?AIH\¥SNQ@7@VWHZjXE& Sq<?AISN6n[tTm<VT*
VWHj
VQcmA2SNRHfgY?HZSTmJONQHZ[7NQGVWTmNQ@[ IVR[7JO[VQLO[mNjnNQH?A§NRc
SNR@7@7VQHZj P#9O/4QAL%SIVWLXSY?LXVTeAI[UTm<?A7SNR@@7NRH©lZVWcmT#NQ
VWHjD
)Tm<?AIHxSVQLOSY?LXVTmAp[Te<?A7jnJ )AceAHSA`ATg¥AIAH
VQHZj
Tm<ZJO[MSNQ@7@7NQH lVWcmTI\VWHjx[mY?l?l?ceAI[e[mAI[#JTo§ceNQ@ Tm<ZA7j?AI[eSceJKlnTeJKNRH\\VWHj©ZHVWLOLK]©SIVWLXSY?LXVTeAI[#Tm<?AjnJK )AceAHZSAt`%ATg¡AAIH
VWHjTm<ZAoSNQ@7@7NQH´lZVWcmTInVWHj¦VQjZj?[¡JT=TmNtTm<ZAoj?AI[eSceJKlnTeJKNRH\d;PZO_SNQ@7@VWHZj 4!57:6)7!8;:!<Y8 ZE& R.R:<25"tcmAp[^Y?LKTe[¡JOH
Tm<ZAMH?A jnAI[eSceJOlnTmJONQH :6)798;:!<5"t§NQc=LKA%
;£nAISYnTmJOH?P?!E5G?
cmAI@N¢RAI[:Vl?ceNQl%AcmTg]oHZVW@7A I§J+ARKWVU¢,JOcmTmYZVQL_j?JKceAISTmNQce]%L\T Zcq[^TSq<?ApSN6_[4Tm<VT I L
JO[ VG[^JO@7l?LOA
VTeNQ@ I§H?AIJTe<?Ac4Vij?JO[fgY?HZSTmJONQH\ViSNRHfgY?HZSTmJONQH\pH?NRc4V=H?AP,VTeJKNRHL I'BL)Tm<?JX[\l?ceNQl%AcmTg]JX[A@7lnTg]RIJ+AQO') + $ . &&'%
2 n
JKHVWLOLK]R2?!El?cmNnSAAIjZ[iVQ[=JOH2V<?JOAcqVWcqSq<?JXSVQLZZLOA[m]_[^TmAI@2
H¦<ZJKAIceVQceSq<?JXSVQL?ZLOAM[^]n[^TmAI@7[I_¥AoSVQH¦<ZV¢RA#@VQH,]ZLOAI[=iJKTm<A?VRSTmLO]7Tm<ZAG[eVW@7AGHZVW@7AI[I_l?ceN¢,JXjnApjTm<VT¡Tm<?AI]¦VWceA
H?NQT¥LON_SIVTeAIjJOHTm<ZA#[eVW@7AUjnJOcmApSTeNQce]K,NWTe<?AceiJX[^ARWTm<ZA#YZ[mAc¥¥NRY?LXjH?NWT¥`AoVW`?LOAiTeNtjnJX[mVQ@`?JOPQYVTmAUi<?JOSq<8ZLKA#<?AU=VWH,Tq[
TmNt@VWH?JOl?Y?LXVTeAQ H8Te<?AU`%N_NQLOAIVWH8ZLKAo[m]_[^TmAI@2QTe<?AG[eVW@7AlZcmNR`?LKAI@ VWceJO[mAI[I,[mNNRH?AU@tYZ[gT=AH[^Y?ceAiTe<ZVT=J4Tg¥NMLKAp[1<ZV¢RA
Tm<ZA[mVQ@AGHZVQ@AR_Tm<?AI]¦@tYZ[gTiH?NQT<ZV¢QAGA?VRSTmLO]7Tm<ZA[mVQ@AMjnAp[mScmJOlnTeJKNRH\ 4Tm<ZJO[SNQHZj?JTeJKNRH´JX[ 6QAIlnT=TmceY?AQ?¡AoVWceAo[mY?ceA
Tm<VTUVlZVTe<®VWLO¡V]n[¥AnJO[^Te[=i<ZAceAGNRH?LO]¦NQHZAGNQ4Te<?AI[mABZLKAp[iJX[=LKJX[gTeAIjVWHZj[^N7i<?AIcmAGTe<?AceAMJO[=HZN7VQ@`?JOPQYZJTg]R
¡TGTm<?JX[M[gTqVWPRAQV¦`%N_NQLOAIVQH©ZLOA[m]n[gTeA@ <ZVR[oVWLOL:Te<?AVQjn¢VQHRTqVWPRAI[I`?Y?TMVQLO[mN´Tm<?A7jncqVi`ZVQSN6n[INQ¡V´`N_NQLOAIVQH©NQcePRVW¤
H?JIVWTmJONQH\ H©Tm<?A§NQLOLKNiJOH?P8[mAISTeJKNRH\%¥AVRj?j©VHV¢,JOPRVWTmJONQH®SVQlZVW`ZJKLOJTg]´TmN¦Tm<?At`N_NRLKApVWH2ZLOAt[m]n[gTeA@2;=<?JX[ULOAIVRj?[iTeN
jnAZH?JOH?P7Tm<?Ao§YZLKLdOmQ¡dKMq
- [.- / i iqha`xcdm ha` r r#p)`! h.r m c ^\lkcCp%^aiqm
U[¥[mVQJOj7JOHTe<?AZcq[^T¥[^ApSTeJKNRH\WTe<?AUceAI[mY?LKT1NW4VMa,Y?AIcm]7SVQH`A#¢QAce]LXVWcePQA'I§Tg]_l?JOSIVWLOLK]R;4!5>: 7)8L,[mNMNQH?AU¥NRY?LOj7LOJ6QAiTeN
VQjZjVGHZV¢_JKP,VTeJKNRHSVWlVW`?JOLKJKTg]oTmN#Tm<ZA¡`%N_NQLOAIVQHZLOAi[^]n[^TmA@2(_NojnNQJOH?PZTe<?Ai[^]n[^TmAI@/iJKLOL?VWHZ[m¡Ac V#a,Y?AIcm]MiJKTm<cmAILKAI¢VWH,T
l?ceNQl%AcmTmJOAI[¡Te<ZVTUceAH?AGTm<?A[mAIVQceSq<4d;=<?NR[mAol?cmNRlAIc^TeJKAp[iiJOLKL\`%AMl?ceAI[mAH,TmApj2VQ[i[mY?`%j?JKceAISTmNQceJOAI[Id H®V7<?JKAIceVQceSq<ZJOSIVWL%ZLOA
[m]_[^TmAI@2NQH?A=SVQH<ZV¢RAdTm<ZNQYZ[eVWHZjZ[:NQ?ZLOAI[Y?HZj?Ac : 79#;496)7Zp`ZYnT:Te<?NR[mA¥ZLKAp[£VWceA¥SLOVR[m[mJAIjMJOH[mY?`)jnJOcmApSTmNRcmJOAI[ I§ARPKGH
5#;4WL¥i<?JXSq<<?ALOlZ[iJOH2cmApjnYZSJOH?PtTm<?A[mJAMNW VWH2VWHZ[m¡Ac¡TmN7%8JOH : 7"#;496)7?
_NnJKHZ[^TmApVQj´NW 7%8LOJO[^TmJOH?PTm<ZAMi<?NQLOAoA_TmAIHZ[^JONQH2NQV§NQce@YZLOVZ,JKTiJOLKL\ceATeY?ceH´Te<?AMceA@VWJOH?JOH?P eK
PV
4l?cmNRlAIc^Tg]
HZVQ@Ap[=H?AApjnAIj´TeNceAH?AGTm<?Aa,Y?AIcm]§YZc^Te<?Acp?i<?JXSq<´¡AMSVQLKL£
V
m
V
¡]@^ceALOA¢VWH,TpBi¡AU@7AIVQH7Tm<ZVWT¥JK4JKH´V("14RTm<ZAceA#VWceA {Q{GZLOAI[I,VQHZj7Te<ZVT¥Tm<?N,[^A {Q{oLKAp[1<ZV¢RAVWLOL6RA]_¡NQcqj 2R
[mNQ@7Ao<ZV¢QA#Tm<?A 6RA]_¡NQcqj 5n?VQHZj¦HZNQH?AM<ZV¢RAUTe<?A 6QAI]_¥NRcej "8Z_Tm<?AIH2H?AJKTm<?AIc 2MH?NQc18JO[iceALOA¢VQHRT=TeN7j?JO[^TmJOH?PQYZJO[m<
`%ATg¡AAH´Tm<ZA {Q{tZLOAI[In`?YnT 5tJX[icmAILKAI¢VWH,TI
,¥NQ@7@VWHj 7%8LOJO[^Te[=JOHZSceA@7AIHRTq[ I§J+ARK[^Y?`?¤jnJOceAISTeNQceJKAp[ L_`?YnTUVWLX[mNtHZVQ@7AI[=NW:ZLOAI[¡Tm<VTUSVQH?H?NQT¡`%AjnJX[gTeJKH?PRY?JX[^<?Apj
VWH_]§YZc^Te<?Aci`_]¦JOHZScmAI@AIH,Te[I HTe<?AoLKNRPQJXSULKA[m]n[gTeA@ lZVQceVRjnJOPQ@2,Tm<?AoZLOAI[LKNnSVWTmApj¦JOH®V *©VWceA#Tm<?AoZLOAI[i<?NR[mA
jnAp[mScmJOlnTmJONQH©[eVTeJO[^ZAp[ :`?Y?TojnN_Ap[UH?NQTG[eVTeJO[^§]VQH_]NQdJTq[#[mY?`)jnJOcmApSTmNRcm]RH®Te<?AtlZcmApSAIj?JKH?P¦A?VW@7l?LOAQ%J¥NQH?AtNW£Tm<ZA
{R{tZLKAp[<ZVR[ fgYZ[^TUTe<?Al?ceNQl%AcmTmJOAI[=@7AH,TeJKNRH?AIj2JOHD VWHj+ 2RVWHj´HZN8@7NQceA I§J+ARKH?NWT5#L?Te<?AH®JKTe[UHZVW@7AM¡NQY?LXj2`%A
LOJO[^TmApj
M®NRcmA§NQce@7VQLKLO]QLOAT `%AtTe<?A7[^AToNQ¥VWLOL l?ceNQl%AcmTg]HVW@7AI[ILKAT & ) + $ *&&' 2 I§Tm<?A7A,TeAHZ[mJONQH
NW oL,Tm<?AIH8Te<?AMVWHZ[m¥AIc1NQ 7%8MJKHV,JX[¡j?JK¢_JXjnAIj¦JKH¦Tg¥NtlZVWcmTe[IQTe<?AoJKHSceA@7AH,Te[%_VWHZj8Tm<?A#ZLOAI[#$r,RR[mYZSq<
Tm<VT
% ) -+ !"M
s 6Z #"M 0 2
f1 f2 f3 f4 f5 f6 f7
x x x x x
x x
x x
x
x x x x x
x x
x x
x xx x
x
x
o name(o) a0
1 2 3 4 5 6 7
a6 a5
a4 a3
a2 a1
properties
x
objects
a3 / a5 = PWD Sub = { a0, a1, a2 }
Files = { f5, f3 }
:JOPQYZcmA 2£a,Y?AIcm]_JOH?PVWHZj´HZV¢_JKP,VTeJKH?P
VWHj
#$r,% ) + $ &&'%X .52 + 0r'%> 6A32
I[mAAGZPRY?ceA t§NRcVWH2JKLOLOYZ[gTeceVWTmJONQHL
- [ c ^alkcCp%^aiqmz^\mzc p c iqmJi
JKTm<´Tm<?JX[i[mSq<ZA@7AQ,Tm<ZA#H_Y?@t`AIc¡NQ\ZLOAoHZVW@7AI[¥LOJO[^TmApj¦`_]8VSNQ@7@VWHZj 7%8JO[¡ceAIjnYZSAIj_`?Y?T¡Te<?AceAG@7V]7`%AGTmN_Nt@VQH,]
JOHZSceA@7AH,Tq[MVWH_]_¡V]RZ?NRcMJKH[gTqVWHZSAQ4VWTGTe<?AceN,NQToj?JKceAISTmNQce]Q\Tm<?A[m]_[^TmAI@ ¡NQY?LXj lZcmNRlN,[^AH?AIVQcmLO] VQLKL Te<?A7l?cmNRlAIc^Tg]
HZVQ@Ap[
;=<?Atl?cmJOHZSJKl?LOANQdHZV¢_JKP,VTeJKNRHJX[GNQ`_¢_JKNRYZ[mLK]¦TmN¦lZcmNRlN,[^ASNQHZSAlnTq[Te<ZVToceAZH?ATm<?A7[^ApVWcqSq<\Z`ZYnToVQLO[mNTeN¦l?ceNQl%NR[mA
Tm<ZAt@7NR[^ToPQAHZAcqVWL:[mYZSq< SNQHZSAlnTq[ ;PZOVQ[e[^YZ@JOH?P´¥At@7VQHZVWPRASNR@7l?YnTmAIcM[mSJKAIHZSAjnNnSY?@7AH,Tq[)¡At¡NQY?LXj®LOJ6RATeN
SLXVQ[e[mJ§]7Te<?A 6QA]_¡NQcqj?[¡[^NtTm<ZVWTiTm<?AM[m]n[gTeA@ Zcq[^T¡l?ceNQl%NR[mAI[¥Te<?Ao@7VQJKH´ZAILOj?[=NQSNQ@7l?YnTeAci[mSJKAIHZSARnAQPZO?VWLOPQNRcmJKTm<?@[I
j?VWTeVW`VQ[mAI[I,NRlAIceVWTmJOH?P[^]n[^TmAI@7[I?VWHj8Te<?AHTm<ZA[^Y?`?ZALXj?[I?AQPZOH?JKZh\JOH_Yn JKHjnN[
_N,NRH?AGH?AApj?[=[^NR@A#@7AIVWH[1§NRc¡[^TeVWTmJOH?PtTm<ZVWTi[mNQ@7AGVTmNR@7JOS#l?ceNQl%AcmTmJOAI[¡VWceAU@7NQceA#PRAH?AIceVQL?Te<ZVWHNWTe<?Acq[ ;:NTe<?JO[
VWJO@2)¥AY[^ATm<?A*EI.5G?´SNQ@7@VWHZjTeN´ScmApVTmAtV8<?JOAcqVWcqSq<_]¦NW1SNQHZSAlnTq[)VQ[#JOH©<?JOAcqVWcqSq<?JOSIVWLLKA[^]n[^TmA@2)`?YnTo[^JOHZSA
HZV¢_JOPRVTeJKNRH <ZVQ[tSq<ZVWHZPQAIj\ Tm<?JX[tj?N,Ap[HZNWT7cmA¤+JOH,TmceN_j?YZSATe<?A´j?JO[eVQjn¢VQHRTqVWPRAI[NQ<?JOAcqVWcqSq<?JOSIVWL£LKA2[^]n[^TmAI@7[I HZVW@7AILK]
ceJKPRJOjnJKTg]2NW1HV¢,JOPRVWTmJONQH\o HZj?AAIj\NQH?AH?AApj?[GH?NWTMSceAIVWTmA[^Y?`)jnJOcmApSTeNQceJKAp[TeN´A_lZcmAp[m[1 6:K\JKT[^Y)<8SAI[UTmN2jnN"EI5G?
:6)7!8 sEI5G?N:!<8oVWHZjTe<?AHW4!5S6)798;:!<8#NQc4!5 <Y8:6 798)
AUVQcmA=H?N VW`ZLKA=TeNSceAIVWTmAiVM<?JOAcqVWcqSq<_]MNW\SNRHZSAIlnTe[IRVQHZj
SceAIVWTmAGZLOAI[¡Te<ZVT`%ALONQH?PTeN@7VQH_]8SNQHSAl?Te[I
_NnTmN8[eV]Tm<VTUV7l?ceNQl%AcmTg] #JO[@NRcmAM[mlApSJKSGTm<VWH Q?NRH?A[mJK@7l?LO]¦A_ApSYnTeAI[ EI5G?"#K4!57:K9EI5G?
VQ[¥§NRc¥LKAp[£;=<?AIH\?VlZcmNRlAIc^Tg]7HZVQ@Ao<ZVR[=VLOJO[^T=NWVQLKL)JKTe[=lZVQcmAIH,T¥l?ceNQl%AcmTmJOAI[ I§J+AQOn@NRcmA#PQAIH?AcqVWL%l?ceNQl%AcmTmJOAI[NLdJOH´JKTe[
jnAp[mScmJOlnTmJONQH4AQOnjnNQJOH?P 45 ::"x:9&"EI5G? 7@7V6QAp[ 7Vt[mY?`)SNRHZSAIlnT¡NQ%nVWHZj NWTeAUTe<ZVT¡Tm<ZAG[mY?`)SNQHSAl?T
ceALXVTmJONQHJX[iV Wmq
P
Qo'
P O
_V =
U[Z JX[@7NQceA¦[mlApSJKSTe<ZVWH £JKTt@7ApVWHZ[Tm<ZVWTJUVQH NQ`?fgAIST
<ZVR[l?ceNQl%AcmTg] Te<?AH <?A8@Y[gT7VWLX[^N®<ZV¢RA
l?ceNQl%AcmTg] HZjnAIAIj V jnNnSY?@7AH,T7VW`%NQYnT H?JK JO[VWLX[^NxV jnNnSYZ@AIH,TVW`%NQY?TNQl%AcqVTeJKH?Px[^]n[^TmA@2£i<?JXSq< JX[VQPRVWJOH
VWLX[mN7V7jnNnSY?@7AH,TUVW`%NQYnTSNQ@7l?YnTeAcU[eSJOAHZSAQ£;=<?JX[i@7AIVQHZ[¡Tm<ZVWTA¢RAce]¦jnNnSY?@7AIHRTi<ZJOSq<JO[JKHTm<ZAMA_TmAIHZ[^JONQHNWTm<ZA
l?ceNQl%AcmTg]1#
@tYZ[gT#`AVWLX[^NJOH®Tm<ZAA_TeAHZ[mJKNRHZ[iNQ£Tm<?AlZcmNRlAIc^TeJKAp[ ]#%/W,2,xp) ,VQHZjC) ;pD, #C,
;:N¦VQSq<?JOA¢RAMTm<ZJO[UTmcqVWHZ[mJKTmJO¢,JKTg]Q%¡A=VWH,TmApjTm<ZVWT#JK &&'(1#
Tm<ZAH 0r'( #%/ 2,xp) ,RZ`_]®VQj?jnJOH?P¦VQH
VnJONQ@#
#%/ 2,p) ,G¡AMAHZ[mY?ceAUTe<?JO[I
_