38

1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

����������� ����������������������� �"!#��$��������&%����'���(%)%�������* ����+,�-�.+,+,���/�102�3!,+'���.��4�(���"!,��(5

687:9<;>=@?BA�?DC

E�FGEHF�IKJLJNM3OLIKJLJLP

QSR(TVUXWZY[U8\^]_Y[Ua`b\BY[US\Ncd]_\^],eS]_f^gh`bg[Uji_kb`Nl_g[iD]_mnUS\BYh`^cdUSkbkblofVg[`bmplofVlqg[Y[U@c^USkVeS]_grWZ]#cd`Ks�gh]qti_grlqmnmplquS`b]_\VU#U W[]_\^]vfNlqghuS`wlqkbm�UX\BY[U#YhghlqYZY[U�c^lqk�kb`yx^gh]>z�{�]_mnf^`bkyUXghWX|8s�gh`y\VeS`yfVkyU�WS}L~)U�er�^\^`yt� TVUXWX}_lq\Vcn~�]<]_kwW[�.cd`N�@k���ghUXc�� �_�a�^]N}D�al��<`V�<USY[�^`VUa�_US�KghUS�'� �D�@kykbmplq\3}B�@c^c^`bW[]_\dt���UXW[kyUX�s�T^x

Page 2: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

Page 3: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

� �����������

� ��� ��� ������� ������� �! ��

"$#&%')(�*+'-,.%/#0*1#&(2,.3)*+4�(�56(�#.78'9#&(�';:<'>=<,.?@5A?B4�';3-')(�C&4�,DC.C&'>EF#.GH%,.3-'JILKM58'$*+,DN<'9O@#DP3)'Q?B4�*+*158?B?B')RS'QR.58:�GH58%/#0:�'9R.5+GH?H'QET#.GH%6,.3)')?B%'UNV5+GW?@NV58*+'9X<*+,DGH3-'U5/O@GY,DO@O@5+GB58%/#Z,.(<*H[�5:�583)3),\39#.GB#/NV#.O@58(�78,58?@N�GB58?B?H'9R],^I

_M`H_ a�bdcfeYg\hji\klknmYeHg\hpo\q�hMhjer (sO@GB#^:�4�*+'),.%/#t,.3-*+4�(�50*1#&(sR.58(�78'9#&(�'j*H[�5u?B5+GBRS')GH,.(�(�#t:�,wvs4�'�'-(xNV#&'JI r O@5+GH%')(�'yDz {+y}|Y~+��� #u� z�y]�Y�+~��D� � y.��y.�J��~+�Y� :�58(�#.OB,.(�#/4�(�vs4<,.3)?B'),.?B'd')(�?H'958%/5;�;� �F��� :�'V?B')%�=d#&3-'JI� :�58?@58%N<'9#x3J��')(�?H'958%/5����^�8�]���5t3J��,.39E�,D=V5+O@#x=<')(�,DGH')#�I ��� " rBr 5t�p(�')*1#^:�5 ?@#&(�#58?@58%/N<'¡:�'¡,.3)EF,D=V5+OB'¡%/#&39O@#¢4�OB')3)'97+78,DOB'¡(�58'¡*1#&%/N<4�O@5+G8I r (�C.58(�5+GH5£4�?@5+GB58%#A¤¦¥F#6')(,.3)*+4�(�'dO@58?@OB'§58:L58?@5+GH*+'978'§¨ª©$NV5+G«:�58(�#.OB,DGB5£4�(L,.39E�,D=V5+O@#�I

�j(<, �1���Y� �s¬ yW�Y­/­ � yDz {+y}|Y~+��� �5«4�(�,j?@58vS4�58(�78,$�®� ����y :�'S?B')%�=d#&3-'&N�GB58?H'}:�,.3)3���,.39EF,]P=d5+O@#�I>Kj583)3J��,.%�=<'9O@#W:�583-3),pO@5+#.GH'),�:�58'�3)'-(�C&4�,DC.C&'�'^O@5+GH%'-(�'>¯�N<,DGB#&3),.°�#Z¯�ETGH,.?B58°W?@#&(�#?B')(�#&(�'-%'D:�'f¯@?@O@GH'-(�C&,.°^I � O@GH')(�C&[�5>C.58(�5+GH')*H[�5;R.5+GBGH,.(<(�#j(�583s?@5+C&4�'9O@#j')(�:�')*+,DO@5±*1#&(�395R],DGH'-,D=<')3)'«²}�H²8³F�H²�³ ³F�+´+´+´��H²¶µ]�H².·8�H²¶¸]�+´+´+´ª#.N�N<4�GB5u¹§�@ºd�B»��@¼£�+´+´+´]�@¹<³��@¹<³ ³��+´+´+´8�@¹dµD�@¹f·8�+´+´+´½ ,W3)4<(�C&[�5+7+78,W:�'<4�(�,W?@O@GY')(�C&,W²jR.5+GBG]�,�')(�:�')*+,DOB,�*1#&( ¾ ²^¾]58:u�5p')3�(s4<%/5+GB#£:�'<?B')%�=d#DP3)'¡*H[�5�*1#&?@OB'9OB4�'-?B*1#&(�#¢3-,?@58vS4�58(�78,6²}I � :058?B58%/N<'9#�¿�À<ÁDÂ<ÁDÂÃÁL�5�4<(�,?@O@GH'-(�C&,/3)4�(�C&,Ä I ½ , �Å���Å� �S¬ yuÆ�­��.��y �56:�58(�#.OB,DOB,0*1#&(wÇ¥F#�¿È')( ,.3)*+4�(<'UO@58?BOB'>58:É58?@5+GH*+'978';Êd©j5[�,3)4�(�C&[�5+7+78,Ë�^I r ?@5+C&4�58(sOB'�?@#&(�# ,.39O@GH'±O@5+GH%')(<'±4�?H,DOB'$'-(ÌvS4�58?@O@# *1#&(sO@58?@O@#w*1#&(x395GB583),DOB'9R.5W:�5+XÃ(�'978'9#&(�'�Í

ÎÐϪ�B~ � �H�1���D� ² �j(<,�?BO@GH')(�C&,�#.O@O@58(S4�OB,O@#.C&3)')58(�:�#\7+5+GB##/N<'B�4A?H')%£=V#&3)'d:�,.3)3-,X<(�5W:<'f²&I®Ñ±?+IÈÀ<ÁDÂÉ�5�N�GB5+X<?H?@#/:�'ÃÀ<ÁDÂÃÁ]ÂÃÁ�I

Î�Ò�­1Ó2�H�+���D� ² �j(�,6?@O@GH')(�C&,\#.O@O@58(S4�OB,6O@#.C&3)'958(�:�#/7+5+GH##/N<'B�4L?B'-%£=V#&3)'V:�,.3)3-,O@58?@OB,¢:�'fÔ.I;ѱ?+IÈÂÃÁ]ÂÃÁL�5£?H4�Õ6?B?@#:<'ÃÀ<ÁDÂ<ÁDÂÃÁ�I

Î�ÒÃ�.�J���D�Å���Å� �s¬ y��D� ² �j(�,Ì?@O@GH'-(�C&, #.O@O@58(S4�OB,ÌO@#.C&3)'958(�:�#Ì:�,2²É?B'),t4�(�?B4�#?B4�Õ¢?B?@#6*Y[�5�4�(u?B4�#6N<GB5+X<?B?@#�IªÑ;?8I�ÁDÂ<ÁZ�5�4�(�,?@#.O@O@#&?BO@GH')(�C&,¢:�'dÀÃÁ]ÂÃÁ]ÂÃÁ�I � '(�#.OB'¡*Y[�5W#.C&(�'VN�GH5+X<?B?@#\#?B4�Õ¢?B?@#/:�'¡²�5W,.(�*Y[�5£4�(<,�?B#.O@O@#&?@O@GH')(�C&,/:<'f²6¥�%,(�#&(L�5«R.5+GH#£')3�*1#&(sO@GH,DGH'9#s©YI � '�(�#.OB'�,.(�*H[�5M*H[�5p²«?@O@58?B?H,/�5M,.(�*Y[�5M?B4�#�N<GB5+X<?B?@#�¿?B4�Õ¢?B?@#/5W?@#.O@O@#&?@O@GY')(�C&,^I

Ö

Page 4: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

� ��������� � ������������������������ !�"#���$�

ÎxϪ�B~ � �Y�1�&%A�Y­1Ó2�H�+��~ �1�&�J���]�Å���Å� �S¬ y('Ã�@�)'Ã�Å�¢�D� ² �p(�,xvS4�,.3)?B'),.?H'j?@O@GY')(�C&,(�#&(xR^4�#.OB,ɹ *Y[�5u?B'),^¿±GH')?@NV5+O@OB'9RD,.%/58(sO@5.¿±4�(2N<GB5+X<?B?@#�¿±4�(x?B4�Õ6?H?@#É#t4�(�,?@#.O@O@#&?@O@GH')(�C&,6:�'f²£5�OB,.395£*Y[�5�²+*, ¹§I

Î ÒÃ�.�J���]�8~.-+­<~ �0/ yt�.� ² �p(�,uvS4�,.3)?H'),.?B'>?@O@GH'-(�C&,L#.O@O@58(S4�OB,Z*+,.(<*1583)3),.(�:�#u7+5+GB##uN<'B�4 *+,DGY,DO@O@5+GH'J¿Q(�#&(t(�58*158?B?H,DGH'),.%/58(sO@5¢*1#&(sOB'9C&4�'J¿È:�,u²}I¢Ñ±?+I/ÀÃÁsÁSÁ �5¢4�(�,?@#.O@O@#&?@58vS4�58(�78,A:�'ÃÀ<ÁDÂÃÁ]ÂÃÁ�I

r 3�O@5+GH%6')(�5 z � �s¬ ­�y ¬�¬ ��� :�58(�#.OB,w4<(Ðvs4<,.3)?B'),.?B'ª')(<?B'958%/5w¥FX<(<'9O@# #w')(�XÃ(�'9O@#s©�:�'?@O@GY')(�C&[�5p?B464�(A*15+GBO@#\,.39E�,D=d5+O@#�X<?B?H,DO@#/¤pI21�4�58?@OB,�:�5+X<(�'978'9#&(�5��5�%#&39O@#£C.58(�5+GY,.395.Í,.:Ì58?@58%/NÃ'9#Ë3���')(�?B'958%5RS4�#.O@#x¥43Z#��.�]©6�5�4<(�3)'-(�C&4�,DC.C&'9#2¥�*H[�'),.%6,DO@# z � �s¬ ­�y ¬¶¬ �J�ƶ­��&��� ©�?@58*1#&(<:�#uvS4�58?@OB,0:�5+XÃ(�'978'9#&(�5.I/�p(t,.39O@GB#03-')(�C&4�,DC.C&'9#LNÃ,DGBOB')*1#&3),DGB5L�5A')3>3)')(^PC&4�,DC.C&')# �¶Ç1�Z¥F# �]Ê¡�]©Y¿U*Y[�56*1#&(sOB'958(�54�(<,A?B#&3),L?@O@GH')(�C&,^¿f3),L?@O@GH')(�C&,¢R^4�#.OB,^I � 39O@GH'58?@58%N<'}NV#&?B?B#&(�#M58?B?B5+GB5.ͧOB4�O@OB'S'sN�GB#.C.GH,.%%6'65Q,.?B*+,.3^?B')(sOB,DO@OB')*+,.%/58(sO@5ª=d58(£ET#.GY%,DOB'#�,.:�:�'9GY'9O@OB4�GH,/OB4�O@O@5\3)5£EFGH,.?B'È')(u'9OB,.3-'),.(�#¢*Y[�5\?@#&(�#AC.GH,.%%,DOB')*+,.3-%/58(}O@5/*1#.GBGH5+O@[email protected] 4�O@OB,8R^'),Ë*D���50?B4�=<'9O@#Z:�,Z(�#.OB,DGB5A*Y[�5�vs4�58?BO+��4�39OB')%/#Z3)')(�C&4�,DC.C&')#t�5A%#&39O@#Ë:<'9Õ6*+')395:�,Z:�5+X<(�')GB5\N�GB58*+')?B,.%58(}O@5.¿>%/58(sO@GB5¢,.3)O@GH';3)'-(�C&4�,DC.C&'®(�#&(w=<,.(�,.3)'®Nd#&?H?@#&(�#058?B?B5+GB5:�5+XÃ(�'9OB'§%6,DO@58%,DOB')*+,.%/58(sO@5u¥�*1#&%/5/E�,DGB58%/#�(�#&'U*1#&(É'È3)')(�C&4<,DC.C&'U:�'UN�GB#.C.GY,.%%,]P78'9#&(�5£O@GH,.%')O@5�395�C.GH,.%%,DOB')*Y[�5¶©YI�"ª#&%/5�4<39OB')%,/*1#&?B,A?B'È(�#.OB'§*Y[�5\3),6:�5+XÃ(�'978'9#&(�5*Y[�5/,D=�=<'),.%/#A:�,DO@#L(�#&(ZGH')*H[<'958:�5�*Y[�5\?B'),A,.?B?@#^*+'),DO@#L(�58?B?B4�(Z?B'9C&(�')X<*+,DO@#¢NÃ,DGBOB')*1#DP3),DGH5£,.3)395W?@O@GY')(�C&[�5�:�583f3-')(�C&4�,DC.C&'9#�I ½ ,:�'-?B*+'9N<3)'-(�,£*Y[�5£?B'¡#^*+*+4�N<,6:�58'f%/5+O@#^:�'¡NV5+G:�,DGH5�?B')C&(�'9X<*+,DO@#A,.3)395�?BO@GH')(�C&[�5�:�'§4�(Ë3)')(�C&4�,DC.C&'9#R^'958(�5�*H[�'),.%6,DOB,¢C.58(�5+GH,.3)%/58(sO@5�8~98y � ��� � y I :>58:�GB58%/#¢4�(�#:�'¡vS4�58?@OB'f%5+O@#S:�'§(�583)3),\?@58*1#&(�:<,/N<,DGBO@5W:�583§*1#.GH?@#�I

; 5+X<(<'),.%/#Z,.3-*+4�(�5#.NV5+GH,D78'9#&(<';:�';=<,.?@5¢?H4�3)395?@O@GY')(�C&[�5.I � 56¹Ì5Aº ?@#&(�#É:�4�5?@O@GY')(�C&[�5.¿V,.3)39#.GH,¢3),Z� � �Ã� y.��~ � y / �J� � ~ :<'§¹É58:˺ÿV?B*1GH')O@OB,¢*1#&%/5\¹ÃºÃ¿È�5�4<(�,6?@O@GY')(�C&,#.O@O@58(S4�OB,w,DO@OB,.*+*+,.(<:�#wº2')(2EF#&(�:�#t,ɹ§IÐѱ?+Ix¹ , À=<?>DÂ25Lº ,A@CB >ED}Â?>ɹ<º ,À0<C>. @CB >ED}Â?>�I ½ � 583958%/58(sO@#Ë(�584�O@GB#ËNd5+G\3),Z*1#&(�*+,DO@58(�,D78'9#&(�5 �5L3),Ë?@O@GH')(�C&,0R^4�#.OB,^ÍÇY² , ²]Ç , ²MNV5+G±#.C&(�'Ã?BO@GH')(�C&,£²}I � 5MNV58(�?H'),.%/#£,.3)3-,W*1#&(�*+,DO@58(�,D78'9#&(�5�*1#&%5p,.:A4�(N�GH#S:�#.O@O@#�¿sNV#&?B?B'),.%/#W:�5+X<(�'9GB5�3J��,.(<,.39#.C.#£:�583)3�� 58395+R],.%58(}O@#£,WNd#.O@58(�78,W*1#&%/5j?B5+C&4�5.Í

Î ² µ , Ç«NV5+G�#.C&(�'f?@O@GH'-(�C&,²Î ²F , ²]²FHG · NV5+G«#.C&(�'f?@O@GY')(�C&,/²W5£Nd5+G�#.C&(<'JI KÐ�� :Z58?@58%/N<'9#L>EM0MN> µ , Ç+¿J>EM0MO> · , >EM0MO>�¿P>6M0MN>=Q , >EM0MN>0>6M=MO>=>6M0MN><I � '§(�#.OB'J¿

')(�#&39O@GB5.¿Ã*Y[�5\,.(�*H[�5\4�(�,¢?B')(�C.#&3-,6395+O@O@5+GH,u�5/4�(�,?@O@GY')(�C&,5\vS4�')(�:�'¡3�� 58395+R],.%58(}O@#�,NV#.O@58(�78,ZN<4U�#058?H?@5+GB5�4�?B,DO@#Z,.(<*H[�5�')(t58?BN�GB58?B?B')#&(�'®:�583;OB'9NV##R6SÃI � NV58*+'9X<*+,.(<:�#0')3RD,.39#.GB5£:<'UTË#.O@O@58(<'),.%/#¢4<(�,/?@O@GH')(�C&,�:<'VOB4�O@O@5VRA3)4�(�C&,�T>I

_j`XW Y�ZAk®c¡q�[®e.\pg/e^]Vo/eumHeYg\hjo\q�hjhje"ª'ª?@#&(�#É:<'9R.5+GH?@5�')%/NV#.GBOB,.(sOB';#.NV5+GH,D78')#&(�'±*Y[�5LNV#&?B?@#&(�#Ë58?B?@5+GH5�,DN<N<3)')*+,DO@5�,.'�3)')(^PC&4�,DC.C&'�I�5È5+GLvs4<,.(}O@#ÌGH'9C&4�,DGY:�,tvS4�58?@O@#2*1#.GH?@#2*+'p3-')%'9O@5+GB58%#t,�*1#&(�?H'):�5+GH,DGB5Ë395?@5+C&4�58(}OB'JÍ

Î`_ � �J� � ~ba ·dc a ¸ , �¶²\¾D²�e a ·�f�²�e a ¸¶�

Page 5: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

�����N�� ���2!b��� � � �����d������������������� �

Î>� �Ã� y.��~ � y / �J� � ~�a · a ¸ , �¶².·Y²¶¸W¾.²&·�e a ·��L²¶¸�e a ¸]�Î� $� '^� � ~ �0/ �Jy / ��� � ~ba µ , �¶Ç1�&¿ a F , a2a F G · ?B5 I KÐ�Î��}�F­S�Y­^��y�� �6�Å��~1zFz9y��¢�D����z)~H~ � ~�a�� ,����F�� µ a F , a µ c a · c a ¸ c a Q c�� � �Î��}�F­S�Y­^��y�� �6�Å��~1zFz9y�� '^�]�Å�F���FÆ]y0�.����z9~Y~ � ~ba�! ,����F�� · a F

"$#&%('*)�+-,�.0/1. Ò��Jy a z32 � � �Y��~986~ �&4£�65A�+´+´+´¶�87��.RÃ�:9¶�+´+´+´¶�B»^� ~<;!z=2 � � �Å�J~ 8~���^�8�D�+´+´+´¶�:>s�@? a ~$; '^�D�H�1� � �Z~1�H�+~+�@~\Æ��T�Å���®� � �D­<~V8�8�D�1A � � 86~/yDz {1y}|Y~+��� �®� �����$�� � 86~Mz � �s¬ ­�y ¬�¬ �B� �®� �����C� � � 8 '^�]�Å���Q�&y�'^yD�@�Dz9~ � �^~«�1� � ����­^�J��~Mz ­ �s¬ �^~M­ �A� yD�@y.�J��~1�B~ ?D ~B�D�Jy 8�ÐyDz � ­ � ��z � �s¬ ­�y ¬�¬ � � ��~ '^�]�Y�1� � ��~Å�Y�+~+�@~w�}~ �®� �F���/y '^yD�1���F�@~��&y a ~E;����y 8\����~�z)~�� '�~1�@y / �J� � � � �^~�y}|�|+��y 8�Ly)'6'�~ � yL� � ���@�8�&�&�J���FA

Î a c ; G~Wz=2 � � �Å�J~ 86~\�}~1zFz9~�z)~+�J��~+�@~/~��}~+zTz)~ � � {Å�@~Î aH; G~tz32 � � �Y��~986~w�.���­^�J��~tz)~É�1���Y� �s¬ ��~��.��z ­ �s¬ ��~ / / y�IË{+�D�)8y.��~Ì�&y�­ � yz)~+�J��~1�@y¢�+~ ¬ ­^����yA�}y6­ � y � � {Å��y

Î aKJ � � � ����~ � ~p��­^�J��~Mz)~«�Å���Å� �s¬ �^~��D�¡z ­ �s¬ �^~ / / y<L � �^~«�1� � �±{+�D� 8/y&��~��&y�z9~8�J��~1�B~Î a��MG~u­ � � � �Å�J~ 8~0� �8�®� �������.���Å���Å� �s¬ �^~Ë� ¬.� ­ � yÌ�s~1zFz9~ -+­�yDz �N�Syw­ � ytz ­ �PO¬ ��~ / / y �®� ����y6~H��G~ � � 8 '^�]�Å��yA�&y\z)~+�J��~+�@~ ?RQ ­<~Å�Å����z � �s¬ ­�y ¬¶¬ �J� � � � ���J~ � ~ %P'�~1��}~ �®� � / �J� � ~ %ªy �Ã� ��~�z�y¢�1���Y� �s¬ y¢Æ¶­��&��y ÇS?

Î a ¥ a c ; © � G~0z32 � � �Y��~986~Z�D����­^�J��~0z)~��1���Y� �s¬ ��~Z�.�pz ­ �s¬ ��~ / / y �1���@~8�J��y 86~ � ��~8y ¬�¬ ���.�@~A�D�UT % � ��~\� � � / ��y � � � � � ­ � y0z9~8�J��~1�@yË~\�1� � � � � 8 '^�]�Å��~9%p�&�)'��uz9y'Ã�Å� 8yAz)~+�J��~+��y&%��&y � � {Y�B~\�¢z9~8�J��~1�B~ ?

ÎV; ! G~�z=2 � � �Å�J~ 8~j�D�f��­��J��~«z9~«�Å���Å� �s¬ �^~p�D� � � {Å�@~§{+�D� 8/y&��~j�}y�yDz 86~ � ��­ � y � � {Y�@y� 'd(�#.OB'V*H[�5�3),�?@O@583)3),�:�'XWW395+58(�5.¿^')(¢58(}O@GY,.%£=V5�395�?B4�5pR.5+GH?B'9#&(�'�¿sN<4È�#�¿s5�39#\?B,DG]�,

?@NV58?B?@#�¿�58?B?B5+GB5�,DN<N<3)')*+,DOB,,.:Ë,.39E�,D=V5+OB'JIb1�4�')(�:<'J¿�?@58*1#&(�:�#A3),6:�5+XÃ(�'978'9#&(�5.¿�:<,DO@#A')(C.58(�5+GH,.39504�(2*15+GBO@#�,.39EF,D=V5+O@#t(�#&(2R^4�#.O@#�¤p¿�¤ � GH,DN�N�GB58?B58(}OB,ÉOB4�O@O@503)50?@O@GH')(�C&[�5:�'Q3)4�(�C&[�5+7+78,�XÃ(�'9OB,^¿§*1#&%/N<GB58?B,LvS4�583)3),AR^4�#.OB,^¿U*Y[�56?B'QNV#&?B?@#&(�#AEF#.GH%,DGH54�?B,.(�:�#'È?H')%£=V#&3)'U:�'®¤pI�¤ � �5?@58%/N�GH5\4<(Z')(<?B'958%/5\')(�X<(<'9O@#�¿d%6,A*Y[�5/*1#&(}OB')58(�5/N<,DGB#&395/:�'3)4�(�C&[�5+7+78,\XÃ(�'9OB,^I r (�#&39O@GB5£¤ ! , ¤ ��Y �¶Ç+�&I"$#&%('*)�+-,�.0/[Z Ò��Jy ¤ , ���^�8�]�@? Ò��\�Sy � ��~

¤ � , �¶Ç+�B�^�B�^�B�.�^�B���D�8�+�^�8�&�D�B�&�.���B�&���.�B���8�^�H���}�D�8�8�.���+´8´+´J�¤ ! , ���^�B�^�B�.�^�B���D�8�+�^�8�.�.�B�&�.���B�.���D�Y���8�^�B���.�.�8�8�.���8�+���D�8´+´8´J�

7 GY,.%'9O@5vS4�58?@O@5¢(S4�#¶R.5¢(�#.78'9#&(<'QNd#&?H?B'),.%/#0:�,DGH564�(�,L:�5+XÃ(�'978'9#&(�5\N�GH58*+')?B,0:�'3)')(�C&4�,DC.C&')#�I] %_^B`�+-a_+-,X`b%V.P/�ced=f�+g`�hji�kPh0hX+-,mlon y.����­ � yDz {1y}|Y~+��� � � � ƶ­��.��� ¤ %§­ � z � �s¬ ­�y ¬FO¬ �J�/�Å­ ¤ G~W­ � -+­�yDz �Y�Jy]�Å�>�1�.�J���.� � �Å�J~ 86~/�D� ¤ �pA aeq ¤ � ?� =�=Ã'),.%/#\C&' �,\R^')?@O@#'f3)'-(�C&4�,DC.C&'V=<,.(�,.3-'U3/5\�¶Ç1�&I±�p(0,.39O@GH#3)')(�C&4�,DC.C&')#�=Ã,.(�,.395W?B4¤ �5�¤ � I

Page 6: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

Ä ��������� � ������������������������ !�"#���$�

_j`�� � ]UZ\c¡k�] ]de \jg/e0c¡k;hb\jmHq�cfer ( vs4�58?@OB,Ð?@5+78'9#&(�5t:�5+X<(�'),.%#24<( EF#.GH%,.3-')?B%/#x*H[�5t*+'�NV5+GH%/5+O@O@5+G]�,x:�'�:�5+X<(�'9GB54�(�*15+GBO@#ÉOB'9NV#u:�'±3)')(�C&4�,DC.C&'�I � :�58?@58%/N<'9#ZNV#.O@GB58%/#Z:�5+X<(�'9GB5'-3;3)')(�C&4�,DC.C&'9#u*Y[�5*1#&(sOB'958(�5�OB4�O@O@5�3)5£?@O@GH')(�C&[�5W*H[�5�NV#&?B?@#&(�#658?B?@5+GB5�RS')?BO@5£*1#&%/5�'-:�58(}OB')X<*+,DO@#.GH'§:<'f4�(3)'-(�C&4�,DC.C&'9#/:�'¡N<GB#.C.GH,.%%,D78')#&(�5.I

½ ��')(�?B')58%/5£:�583)3)5W58?@N�GB58?H?B'9#&(�'¡GH5+C.#&3),DGH'È?B4u4�(Z*15+GBO@#L,.39E�,D=d5+O@#L¤¦�5 �}~ �;� �F���L� �PO�D­��J���FÆ]y 86~ � ��~ :�,.3-395�GH5+C.#&395?@NV58*+'9X<*+,DO@5/(�583Q?@5+C&4�')O@#�I��pC&(�'È58?@N<GB58?B?B'9#&(�5�GB5+C.#&3-,DGB5?B4Ф :�5+XÃ(�')?B*15�')(Ì%,.(�'95+GH,Ë4�(�')R.#S*+,É4�(23)')(�C&4�,DC.C&'9#É?B4ФpI ½ ,É:�5+XÃ(�'978'9#&(�5A')(^P:�4�O@OB'9R],�?@NV58*+'9X<*+,A¥�4�?B,.(�:�#�3J��'-(�:�4�78'9#&(�5«?B4�3)3),£?@O@GH4�O@OB4�GY,�:�583-395M58?@N<GB58?B?B'9#&(<'T©Q,.(�*Y[�5*1#&%/5£RS'958(�5�ET#.GH%6,DO@#6')3¡3)')(�C&4�,DC.C&'9#:�5+X<(<'9O@#/:�,\#.C&(�'¡58?@N<GB58?B?B'9#&(�5�GB5+C.#&3),DGB5.Í] %@^\`�+-a_+-,j`�%V.P/�� d6"$#&)�� %@#&#&+-,j`�+ %(h0,��-k �p+ l Ò��Jy ¤ ­ � y.z {+y}|H~8��� �®� ����� ?�� 2 � �0O�Å�J~ 8~j�}~+zTz)~�~Å� 'd�@~1�H�Y�J� � �¡�B~ ¬ �Dz9yD�Y�§�Y­ ¤ G~ � �D�Å������­S�����\�&y OB4�O@O@5ª5ª?B#&395 z)~j~1� 'Ã�B~Å�Y�Y�J� � �¬ ~ � ~+��y.��~/� � �D­��J���TÆDy 86~ � ��~ � � 86~\�+~ ¬ ­<~ ?�� �H�+� � �Jy 8�uy&�u� ¬.� �«~Å� 'Ã�B~Å�H�Å��� � ~6y �Ã� �^~�Fzfz � �s¬ ­�y ¬�¬ �����}~ � �.��y.��� ?� ?pÇ G~W­ � yL~1� 'Ã�B~Å�Y�Y�J� � ~��B~ ¬ �Dz�y.�@~ � �^~\�}~ � �.��yA�Fz¡z � �s¬ ­�y ¬�¬ �J� �¶Ç1�I ? Òd~ R G~�­ � �Å� 86|H�Dz��A�D� ¤ yDzFz��.��y R G~�­ � 2 ~Å� 'Ã�@~1�H�Å��� � ~��B~ ¬ �Dz�y.�@~ � �^~W�}~ � �.��y6�Tzz � �s¬ ­�y ¬¶¬ �J� � R��

� ? Ò���y � ���Z~B� ² �D­<~�~1� 'Ã�B~Å�Y�Y�J� � �;�B~ ¬ �Dz9yD�Y� � �^~��}~ � �.��y � �A�Qz � �S¬ ­�y ¬�¬ �$a ¥ � © ~H�a ¥J²D© �Å�-� '�~+�J���FÆ]y�8~ � ��~ ?�� zFz��D�@yFA���C� ¥ � ©+¾�¥J²D© G~W­ � y¢~1� 'Ã�B~Å�Y�Y�J� � ~��B~ ¬ �Dz�y.�@~ � �^~£�s~ � �.��y¢�FzVz � �s¬ ­�y ¬¶¬ �J��a ¥ � ©Pc

a ¥J²D©���F�C� ¥ � ©1¥J²D© G~±­ � yW~Å� 'Ã�@~1�H�Å��� � ~ª�B~ ¬ �.z�yD�B~ � �^~��}~ � �.��yp�Fz}z � �S¬ ­�y ¬�¬ ����a ¥ � © a ¥J²]©���F�F�C� ¥ � © � G~�­ � yL~Å� 'd�@~1�H�Y�J� � ~\�@~ ¬ �Dz9yD�B~ � ��~��s~ � �.��yL�Tz¡z � �S¬ ­�y ¬�¬ ��� a ¥ � © ����FÆ6� ¥ � © G~�­ � y�~Å� 'd�@~1�H�Y�J� � ~/�@~ ¬ �Dz9yD�B~ � ��~\�}~ � �&��yA�Tzfz � �s¬ ­�y ¬¶¬ �J��a ¥ � ©

_ � z � �s¬ ­�y ¬¶¬ �J�¢�}~ � �.��y.���u�&y¢­ � yA~1� 'Ã�B~Å�Y�Y�J� � ~��B~ ¬ �Dz�y.�@~/Æ���~ � ~ � �}�Jy 8y.��� '-(�?B'958%/5¥F#63-')(�C&4�,DC.C&'9#s©±GH5+C.#&3),DGB5_?"N# % ' )\+-,�.P/�� Ϫ�B~ � �.��y 8� ¤ , � R<�:9�� ~�'Ã�@�Dƶ��y 8�0y�Yƶ�Tz ­ 'E'^yD�B~�z9y¢�s~ �®� � / �J� � ~� � �D­��J���FÆ]y '�~1� � y)'Ã�F�@~ � � 86~ G~;{+y.�J���6z32 � � �Y��~986~��D�®��­��J��~�z)~\~Å� 'd�@~1�H�Y�J� � �;�@~ ¬ �Dz9yD�Å�>�Y­� RÃ�:9��@? ÏM~+��y&�}~1�H�1� � � �t� � � �Å���s~1�Å��y 8���Fzfz � �S¬ ­�y ¬�¬ ���A�}~ � �.��y.��� ?

Ï���� � ~B�.��y 8� � �]�1���Y­��J���FÆ]y 86~ � ��~ % � ���HG~ � �]�Å���Å­^��y�8/�Wz32 � � �Y��~986~$'^yD�1��~ � �&���}yDzTz=2 � �PO�Å�J~ 8~Æ�­��.���Ë~/­S�+y � �&�uz9~/�@~ ¬ �Dz)~ ?�� zTz=2 � � � / �J�0y}|¶|1�Jy 8�0z=2 � � �Å�J~ 86~/ƶ­��&��� ? _È���Fz � / O/ y � �&�\� � y]�Å�Q|ByD�+~ � ? ~<I ? �.�J��~ � ��y�8/�/z32 � � �Y��~986~��D�È~1� 'Ã�B~Å�Y�Y�J� � �È�@~ ¬ �Dz9yD�Å� �¶Ç8�.R<�:9��@?� � y]�Y�È� � �D­��J���Tƶ��� � ? � � � � �&y ��� �/z ­�� ¬ �6y � ~Å�Y�Y­ � y6~1� 'Ã�B~Å�Y�Y�J� � ~ '�~1� � ���~W�Å� � �}�J~H�&� O� �Ë�D�MyDÆ.~1�B~ ¬ �@GyZyË�D�T� '^�]�Å� / ��� � ~A­ � yË�Z�D­<~�~Å� 'Ã�B~Å�H�Å��� � �«�B~ ¬ �.z�yD�Å� '�~1��{+�D�)8yD� � ~�}~+zTz)~\yDz����@~ ?

ÏMyD�1��~ � �&�w�&yDzFz32 � � �Y��~986~ � �]�Å���Å­^�F���ty 'E'Ãz � � �}��y�8/�t�Tz$'^y]�Y�1� � � �D­��J���FÆ]� '�~+��y�8 O'Ãz �JyD�@~\z32 � � �Y��~986~ ? Ïj~1� � ��8/���D�F�(Gy � �}�Jy 8\��y�8/����� S z32 � � �Y��~986~ � �]�1���Y­^�����LyDzN'^yD�H�1�T � T G~�­ �Ë� ­N86~1�@� � y.��­^��y.z9~3� ? ÏM� � �Jy 8����� µ , �¶Ç8�.R<�:9��@?

Page 7: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

�����6� ���O�2! ���P�0� � �2! � �� ����!�� �� �u¬ ~ � ~1�@yDz)~ %�'�~1� � �D�Å���Å­S�F�B~ ��� S ! · %��}�}|�|+��y 8��'Ã�@~ � �}~+�@~z9~6~Å� 'd�@~1�H�Y�J� � � � �^~�1� � � ¬ �@Gyx� � ��� S ~B�Ð� � �8~1�Å�T�Åz)~ � � ��� S ! ·&? ÏM�D� %¢­S�Y�Jy 8�xz)~ �B~ ¬ �Dz)~ I:O I�� '�~1�

y ¬�¬ �T­ �s¬ ~1� � ~/�D� � ­��DÆD~ 'Ã�@~ � �}~ � �&� � � 86~A~Å� 'd�@~1�H�Y�J� � � �t~B� ² ��z)~\ÆDyD�Y�Jy}|+�Tz �±­S�+y.��~� ~1zFz�y �s~ �®� � / �J� � ~3�Ë��­��J��~Az)~ � � 86|1� � y / �J� � �2'^�]�Y�Y��|1�Fz �W�D� -+­<~1zFz)~ ¬ �@Gy � �]�1���Y­^����~ � ~+�'^y]�H�Å�J'Ã�B~ � ~B�}~ � ���<� � �J�HG~�-+­<~+zTz)~ � �^~����@�DÆ��Jy 8�A� � ��� S � ?

>yDz � �Dz ��y�8/� ��� ·S? _Q���Tz � / / y � �&�uz�yu�@~ ¬ �Dz9y ¥HI © ~6y]�H�8~ ¬.� y � �&�ÉyDzFz9~Æ]y.�Y�Jy}|1�Fz � �~B� ² ��­��J��~�z)~ � � 86|1� � y / ��� � �;�D�UÆDyDz9�D�Y� '��]�H�Å�J|+�Tz �®�.�J��~ � �Jy 8�¢z9~�~Å� 'Ã�@~1�H�Å��� � � ¥JÇY©+¾�¥JÇY© %¥JÇY©+¾�¥ R�© % ¥JÇY©+¾�¥19+© % ¥ R^©+¾�¥JÇÅ© % ¥ R�©+¾�¥ R^© % ¥ R^©+¾�¥19+© % ¥19+©+¾�¥JÇÅ© % ¥19+©+¾�¥ R^© ~ ¥19+©+¾�¥19+© ?

n y ¥HI I © %�y.zTz9yÉ�1��~Å�H�+y 8y � ��~1�@y&%��Y���.�J��~ �s¬ � � �tz9~Ë~Å� 'Ã�@~1�H�Å��� � � ¥JÇÅ©1¥JÇY© % ¥JÇÅ©1¥ R^© %¥JÇY©1¥19+© % ¥ R�©1¥JÇY© % ¥ R�©1¥ R�© % ¥ R�©1¥191© % ¥19+©1¥JÇY© % ¥19+©1¥ R�© ~ ¥19+©1¥19+© ?n y ¥HI I I�© �Å�¡�&�J��~ �s¬ � � ��z9~�~1� 'Ã�B~Å�Y�Y�J� � � ¥JÇÅ© � % ¥ R^© ��~ ¥19+© � ? n y ¥HI��^© �Y�§�.�J��~ �s¬ � � �

z9~\~Å� 'Ã�B~Å�H�Å��� � � ¥JÇÅ© % ¥ R^© ~ ¥19+© ?RQ ­^� � �.�gA

��� · ,���� Ç+�.RÃ�:9¶��¥JÇY©+¾�¥JÇÅ©Y��¥JÇY©+¾�¥ R�©Y��¥JÇY©+¾�¥ 9+©Y��¥4R�©+¾�¥�ÇY©Y��¥ R^©+¾�¥4R�©Y�¶¥ R�©+¾9¥19+©Y�¶¥19+©+¾9¥JÇY©Y�¥19+©+¾�¥ R^©Y��¥19+©+¾�¥19+©Y��¥JÇY©1¥JÇÅ©Y��¥�ÇY©1¥ R�©Å��¥JÇÅ©+¥19+©Y�¶¥ R^©1¥�ÇY©Y��¥4R�©1¥4R�©Y��¥4R^©1¥19+©Å��¥ 91©1¥JÇÅ©Å�¥19+©1¥ R^©Y��¥19+©1¥19+©Y��¥JÇY© � ��¥ R�© � ��¥19+© � ��¥JÇY©Y��¥ R�©Y��¥19+©

��

Ò�� � �.��� � �^~ Ç % R ~ 9 yDzFz32 � � � / �����}~1zFz=2 ~+z9~ �Ã� �W�1� � �Wz)~j~1� 'Ã�B~Å�Y�Y�J� � �È~+�@~H�D����y.��~��&y���� µ ?ÏM~+� � y.z � �Dz�y.�@~��� ¸ |ByD�Å��y��Å� '�~+��~+�@~«��'^yD�H�Y� I6OHI�� 'Ã�@~ � �}~ � �&��'�~1��G�&%�-+­<~1�Å��ypÆ]�.z ��y&%

��­^�J��~£z)~/~Å� 'Ã�@~1�H�Å��� � � � ��~\y}|�|+��y 8�A� � ��� ·\� � 86~�'^�]�H�Å�J|+�Tz �;�T�Å��y �0/ �Jy / �J� � ���D� �É~B�²@? G �{+y � �Fz)~��B~ � �}~+�H�Å� � � � ��� � �^~��Fzd'Ã��� � ~Å�Y�1�^'í$G�wy � �&yD�B~ÉyDÆ]y � ���WyDzTz=2 � �8�;� �F���2~'í$G� ¬ ~ � ~+��y.�@~��+~98 'Ã�B~ � ­��DÆ.~L~Å� 'Ã�@~1�H�Å��� � �j�B~ ¬ �Dz�y.�Y�j�Y­ � R<�:9��@?eQ ­S� � �D��~Å�Y�T�Å��� � �� �8�;� �F��~¢~Å� 'Ã�@~1�H�Å��� � ���@~ ¬ �Dz9yD�Å�ª�Y­ � R<�:9�� ~��1� � �0��­��J��~A~��1�.z9~+-+­<~1zFz)~ � �^~ '^�]�Y�1� � �ÆD~ � �T�B~ ¬ ~ � ~1�@y.��~ %J'd�Y�H8yL� '��D� %$� � -8­�~1�Å��� 'Ã�@� � ~1�H�1� ?

½ ,/?B*1GY'9O@OB4�GH,\:�583)3)5p58?BN�GB58?B?B')#&(�'dGB5+C.#&3),DGH'f?B58*1#&(�:�#3),/:�5+XÃ(�'978'9#&(�5�[�,/')3V:�')ET5+O@O@#:�'§C.58(�5+GH,DGB5�58?@N�GB58?B?H'9#&(�'È*1#&(ZO@GH#.N�NV5�N<,DGH58(}O@58?B'�¿d%/#&3)O@5�R.#&3)O@5\'-(s4�OB'-3)'JIb5È5+G�583)')%'9P(�,DGB5«vS4�58?@O@#£')(<*1#&(}R.58(�')58(}O@5«5+R^'9OB'),.%#£:�'�%/5+O@O@5+GB5jO@GH,�N<,DGH58(}O@58?B'<?B')(�C.#&3)'�?H')%£=V#&3)'S5,.?B?@5+C&(�'),.%#\4<(�,£N<GB58*158:�58(�78,\58:L4�(<,£GB5+C.#&3-,�:<'d,.?H?@#S*+'-,DOB'9RS')O¶�,�,DC&3-'Ã#.NV5+GH,DO@#.GY'¡*H[�5*1#&?@O@GH4�')?H*1#&(�#658?@N<GB58?B?B'9#&(<'¡GB5+C.#&3),DGH'�I r (Zvs4�58?BO@#A%/#^:�#NV#&?B?H'),.%/#¢?H*1GH'9R.5+GB5�58?@N�GB58?�P?B'9#&(�'Q*1#&(w%58(�#LN<,DGB58(sO@58?B'J¿È%,L*H[�5¢[�,.(�(�#0*1#&%�4�(�vS4�54�( ?B')C&(�'9X<*+,DO@#04�(<'9R.#S*1#�I½ ,\N�GB58*158:�58(�78,0�5£3),/?B5+C&4�58(}O@5.Í�DI ½ � #.NV5+GH,DO@#.GH5¢4�(�,DGY'9# � 395+C&,0%,DC.C&')#.GH%/58([email protected]^1�4�')(�:�'Q,.:w58?@58%/N<'9#^R 9 � ?@OB,NV5+G2¥ R�©1¥@¥19+© � ©Y¿�*+')#^�5x3),�?@O@583)3-,�?B'£GH'9EF5+GH')?B*15Ì?@#&39# , 9 523), R :�5+R.5Ì58?B?@5+GB5*1#&(�*+,DO@58(�,DOB,A, 9 � I

� I ½ ,6*1#&(�*+,DO@58(�,D78'9#&(�5��5�'-3f?@58*1#&(�:�#¢#.NV5+GH,DO@#.GB5�*Y[�5�3)5+C&,%,DC.C&'9#.GH%58(}O@5�58:w�5,.?B?@#^*+'),DOB'9RD,/,?B'-(�')?@O@GH,L¥�,.:L58?8I;?B*1GH'9R.58(<:�# R(9 ��?B'¡'-(}O@58(�:�56¥@¥ R^©1¥19+©@©1¥��8©@©

Ö I ½ � #.NV5+GH,DO@#.GH50*H[�5u3)5+C&, %/58(�# :�'ªOB4�O@OB'��503J� #.Gu¥B¾ ©\58:��50,.(�*H[¡� 58?H?@#w,.?B?@#^*+'),]POB'9R.#w,�?B')(�'-?@O@GH,^I � :Ð58?@58%/NÃ'9#�¿$vS4�')(<:�'J¿2R¡¾ R(9ARD,w'-(}O@58?@#�*1#&%/5 R¡¾�¥ R(9+©u¥ r (vS4�58?@O+��4�39OB'-%/#Z*+,.?@#t(�#&(Ì?B#&(�# ?@OB,DO@50%/58?B?@5L395�N<,DGH58(}O@58?B'ª')(sO@#.GH(�#É,.:2#.C&(�'?B')%�=V#&39#s©YI

Page 8: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

� ��������� � ������������������������ !�"#���$�

"ª#&(0vs4�58?@O@5£*1#&(sR.58(�78'9#&(�'J¿<Nd5+G�E�,DGB5£4<(L,.39O@GB#/58?@58%/NÃ'9#�¿�3J� 58?@N�GH58?B?B'9#&(�5¥ R�©+¾�¥@¥19+© � ¥��8©@©>NÃ4U�#£58?B?B5+GB5p?H*1GH'9O@OB,£*1#&%5�R¡¾ 9 � �¶I®Ñ±(}O@GY,.%£=V5j:�58(�#.OB,.(�#\')3<3)'-(�C&4�,DC.C&'9#:�583-395M?@O@GH'-(�C&[�5«*H[�5j#�?@#&(�#VR\#.N<N<4�GB5«?@#&(�#�4�(�,£?@58vs4�58(�78,^¿^5+R.58(}OB4�,.3-%/58(}O@5pR^4�#.OB,^¿:�' 9�?B5+C&4�'9O@5W:�,/4�(<, �¶I"N# % ' )\+-,�.P/�� D ~B�.��y 8�Ì�D�@yt­ � ~1�+~98 'Ã�J�w�.��yD�H�1� � �Jy / �J� � ~Ë�}~+z$z � �s¬ ­�y ¬¶¬ �J�t�}~ O� �&��y.���uy&�Ly.z � ­ � ~~Å� 'Ã�@~1�H�Å��� � �±�B~ ¬ �Dz�y.�Y� ? ÏM~+�£�����.Æ]yD�Åz��É|ByD�Å��y � y)'Ã�F�@~/z�y¢�1���Y­��J��­^��y�}~+zTz)~/~Å� 'Ã�B~Å�H�Å��� � �ª~�y)'E'dz � � yD�B~z9~£�B~ ¬ �.z9~/�s~1zFz�y��}~ �®� � / �J� � ~ ? Ò���y ¤ , � R<�:9��@?

Î RV¾ 9 �}~ � �&��yA�Tzfz � �s¬ ­�y ¬¶¬ �J� � RÃ�:9��Î ¥ RV¾ 9+©1¥ R¡¾ 91© �s~ � �.��yA�Fzfz � �S¬ ­�y ¬�¬ ��� � R0R<�.R 9¶�:9)RÃ�:9 9�� %�}~ � �&��y}|1�Fz9~y �Ã� ��~ � � �^R0RV¾ R 9.¾ 9 RV¾ 9 9

Î R �¢�}~ � �&��yA�Tzfz � �s¬ ­�y ¬¶¬ �J� �¶Ç8�.R<�.R0RÃ�.R=R0R<�.R0R0R=RÃ�+´+´+´F�Î ¥ RV¾ 9+© � �}~ � �.��y��Tz�z � �s¬ ­�y ¬¶¬ �J���.�§��­��J��~jz9~M�1���Y� �s¬ ��~U{1�D� 8y.��~��&y.zTz9y � � �d� y.��~ � y O/ �J� � ~��D�U­ �L� ­N8~+����-8­�yDz �Å��yD�Y�>�D� R ~ 9 86~Å�Y�+~p� � ­ � -8­�yDz �Å��yD�Y�È�.���D� � ~9%P'd�@G­z�y¢�1���Y� �s¬ y¢Æ¶­��&��y ? � ��~1�+~ 8b'd��� Ç+�.R0R 9��:9 R0R(9 R 9 R<�.RÃ�:9¶�:9�9 9 9¶�.R=R0R0R<�.R 9 R(9¶�+´+´+´ ?

� 5É:<4�5Z58?BN�GB58?B?B')#&(�'«GB5+C.#&3-,DGH'�:�58(�#.OB,.(�#x39#x?@O@58?B?B#23-')(�C&4�,DC.C&'9#2:�')*+'-,.%/#�*Y[�5?@#&(�# ~.-8­S�FÆ]y.z9~ � ��� I

_j`�� aVZ¢k��®e���>q�/k;e�mHeHg\hpo\q�hMhpeÐbVc¡q � e@bdk�k�]UZ\c¡k�]P]Ve.\pg/e�]VoeHg�]VeBk���e

r (Lvs4�58?@OB,/?@5+78'9#&(�5�R.58:<'),.%/#/,.3)*+4�(�'V%/#^:�'dNV5+G�?@NV58*+'9X<*+,DGB5�%,DO@58%,DOB'-*+,.%/58(}O@5�,.3�P*+4�(<'±3)'-(�C&4�,DC.C&'±ET#.GH%6,.3)'JI 1�4�58?@O@#ËOB'9NV#É:�'±(�#.OB,D78'9#&(�5L?B,DG]�,ËN�GB58?B58(}O@5L')(�OB4�O@O@# ')3*1#.GH?B#�I � =�=<'),.%#�C&' �,/RS'-?@O@#6*H[�5£395�58?@N�GH58?B?B'9#&(�'VGH5+C.#&3),DGH'f?@#&(�#64�(0%/#^:�#?@58%N<3)')*15NV5+G«?@NV58*+'9X<*+,DGH5�ET#.GH%6,.3)%/58(sO@5W,.3)*+4�(�'¡3)'-(�C&4�,DC.C&'J¿^OB4�O@OB,�RS'),58?B?@5£[�,.(<(�#4�(�NV#.O@5+GB558?@N<GB58?B?B'9R.#A3)')%')OB,DO@#5�%#&39OB'§3)'-(�C&4�,DC.C&'±¥�'U3)')(�C&4<,DC.C&'§(�#&(ZGB5+C.#&3),DGH'F©�(�#&(uNd#&?H?@#&(�#58?B?B5+GB5£?@NV58*+'9X<*+,DOB'¡'-(Lvs4�58?BO@#ET#.GY%,.3)')?B%#�I

r 3;%5+7+7+#ZN<'B�4 C.58(�5+GH,.395¢NV5+G�:�,DGB5A4�(�,0?BNd58*+')X<*+,LN�GB58*+'-?B,0:�'±%/#&39OB'®3)'-(�C&4�,DC.C&'�5ËGH,DN�N�GH58?@58(}OB,DO@#2:�,.3)3)5 ~Å� 'Ã�@~1�H�Å��� � �£�Å­�� � �Y��~98\� I�1�4�58?@O@#ÌOB'9NV#w:�'j(�#.OB,D78'9#&(�5��5(�,DOB4�GH,.395>NV#&')*H[��5.¿]5��V5+O@OB'9R],.%58(}O@5.¿&'.3)'-(�C&4�,DC.C&'DEF#.GH%,.3)'.(�#&(£?@#&(�#«,.39O@GB#j*H[�5 � � �Å�J~ 8��:�'VNÃ,DGB#&395.I

�p(¡� 58?@N<GB58?B?B'9#&(�5p?B4�')(<?B'958%'Ã(�#&(Ë�5�,.3)O@GB#/*H[�5�3),\*+3),.?B?H')*+,�(�#.OB,D78'9#&(�5W4�?B,DOB,�NV5+GGH,DN<N�GB58?@58(sOB,DGB5£,.(�,.3-'9OB')*+,.%/58(sO@5�C&3)'V583958%/58(sOB'§:<'¡4�(L')(�?B')58%/5.Í

�8¹ e�� ¾��6¥F¹V©H�:�#¶R.5�� �5ª4�(�4�(�'9R.5+GH?B#M:�'&#.C.C.5+O@OB'<:�,DO@#p,MN�GH'9#.GY'.5���4�(�N�GB58:�'-*+,DO@#�¿D4<(�,«N�GH#.N�GH'95+O¶�,^¿*Y[�5A*+,DGY,DO@O@5+GH'97+78,ÉOB4�O@OB'±5A?B#&3)'®C&3)';583958%/58(sOB'ª*H[�5AEF,.(<(�#uN<,DGHO@5A:�583-3J��')(�?B')58%/50¥�*+'9#^�5vS4�5+C&3)'V¹ËNV5+G«*+4�'��6¥F¹V©��5WR.5+GB#s©YI

Kj583$*1#&(}O@58?@O@# :�58'$3)')(�C&4�,DC.C&'>EF#.GH%,.3)'±3J��4�(�'9R.5+GY?@#�� �5A?@58%N�GB5A¤ � ¿>:�#¶R.5L¤ �53J��,.3)EF,D=V5+O@#�:�,.3^vs4<,.395$?H'sN<GB58(�:�#&(�#�'^?B')%�=V#&3)'}NV5+GQEF#.GH%,DGB5�395$N<,DGB#&395�:�583^3)'-(�C&4�,DC.C&'9#

Page 9: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

�����0�E�N�������X��� � ���N���J�$�X�����d�������2��!b� "^��\� ���N� ! ���0�0� ��b�X� � �X�N�N� ��"^� >

*H[�5�?B'V?@OB,\:�5+X<(�58(�:�#�I 5È#&')*H[��5�¤ �5W?@NV58?B?@#\?@NV58*+'9X<*+,DO@#�N�GB583)'-%')(�,DGH%58(}O@5«5�*Y[�'),DGB#:�,.3�*1#&(}O@58?BO@#�¿ª?BNd58?H?@# 3J��4�(�'9R.5+GY?@#ZR^'958(�5L?@#.O@OB'-(}O@58?@#w5u3),É?B*1GH'9O@OB4�GH,É:�'9R.58(sOB,Ì�8¹¦¾�6¥F¹V©H�&I

½ ,AN�GB#.N<GH'95+O¶�, � N<4U�#�R.58(�'9GH5\?BNd58*+')X<*+,DOB,AOB4�O@OB,L:�#.NV#L')3Q?B')%�=d#&3)#ɾ ¿§,.(�*Y[�5?@5?@NV58?B?@#�¿Q?@NV58*+'),.3)%/58(sO@5¢(�583$*+,.%/NV#Z:�583)3),0:�5+XÃ(�'978'9#&(�5¢:�';3)'-(�C&4�,DC.C&'J¿Q3),u?BO@GH4�O@OB4�GH,:�583)395�N<,DGB#&3)5�RS'958(�5W?@NV58*+'9X<*+,DOB,\N<,DGB78'-,.3)%/58(sO@5W,.(�*H[�5£N�GH')%,\:�583§?B')%�=d#&3)#L¾ I

5È5+G�?BNd58*+')X<*+,DGB5£3),¢?@O@GH4�O@OB4�GH,NV#&?B?B'-,.%/#¢4�?H,DGB5�'È?B')%�=V#&3)'f:�'Q¤p¿d3)5£#.NV5+GH,D78'9#&(�'?B4�?BO@GH')(�C&[�5.¿D395±58?@N�GB58?B?H'9#&(�'&GH5+C.#&3),DGH's5$:�')R.5+GH?@5;RD,DGH'),D=Ã')3)'JIJ:>58:�'-,.%/#p:<'9R.5+GH?B'}58?@58%/N<'*H[�5£'-3)3)4�?@O@GY,.(�#�'¡:<'9R.5+GH?B'¡%/#^:�'¡:�'¡4<?B,DGB5WvS4�58?@O@5£(�#.OB,D78')#&(�'JI

a , � R S 9 �£¾ T(Kx�S�r (Zvs4�58?@O@#A*+,.?B#A')(�ET5+GH'-,.%/#6*H[�5\¤ , � R<�:9¶� �¶�/5�*Y[�5�3)5WN<,DGB#&395�:�583§3-')(�C&4�,DC.C&'9#

?@#&(�#£OB4�O@O@5pvS4�583)395j*H[�5�')(�'978'-,.(�#W*1#&(�4�(�,W?@58vS4�58(�78,�:�'PR/3)4�(�C&,W,.3-%/58(�#¢�\¥HT(KÐ�}©5¢*H[�5ANV#&'±*1#&(}OB')(S4�,.(�#Ë58?B,DO@OB,.%/58(sO@50*1#&(24�(�,�9/?@5+C&4�'9OB,Ë:�,Z4�(�, �]IÉÑ;?@58%N<';:�'N<,DGB#&395«:�583<3)')(�C&4�,DC.C&')#�ÍdR 9 �]�.R0R(9 �]�.R0R=R 9 �¶�.R0R0R=R 9 �¶�+´+´+´JI>ѱ?@58%/N<'�:�'^NÃ,DGB#&395M*Y[�5M(�#&(,DN�N<,DGBO@58(�C.#&(�#6,.3f3)')(�C&4�,DC.C&'9#�Í®Ç+�:9 �]�.R=R 9 R �]�.R0R=R0R0R<�.R0R(9¶�+´+´+´

a , � R S 9 � � S ¾&T��Ð�S�r (wvs4�58?BO@#u*+,.?@#Z,D=<=<'),.%/#04�?H,DO@#Z,.(�*Y[�564�(¡� 58?BN�GB58?B?B')#&(�5/GB5+C.#&3),DGB5.I r 3;?B'9C&(�'9X�P

*+,DO@#É:�58';:�4�5¢58?@NV#&(�58(sOB'2T��5�vS4�583)39#Ë4�?B4�,.395.¿Q*+'9#��5L*H[�5�')( ��­^�J��~ 3)56N<,DGB#&3)5¢')3±(s4^P%/5+GB#2:�' RÐ5É:<' �Z:�5+R.5É58?B?@5+GB5 39#2?@O@58?B?@#25É%,DC.C&'9#.GB5É#x4�C&4�,.3)5Z,Ì7+5+GB# ¥HT���}©YI � 3)3���')(}O@5+GY(�#Ð:�583)395(R�5Ì:�583)395 � *D���5x4�(<,Ð?@58vS4�58(�78,�:<' 9É3)4�(�C&,Ð,.(�*H[�5w7+51PGB#�¥19 � ©YIlÑ;?@58%/NÃ'�:�'pN<,DGB#&395t(�583�3-')(�C&4�,DC.C&'9#�ÍÐÇ�¥�vs4�,.(<:�# T , �x5 9 � , ÇY©Y¿R �]�.R0R � �]�.R(9 �]�.R0R(9 � �]�.R=R 9 9�9 9 9 � �¶�:9¶�.R0R=R 9 � � �D�+´+´�´�Ñ;?@58%/NÃ'S:<'^N<,DGB#&395�*H[�5«(�#&(/,DN�N<,DG@PO@58(�C.#&(�#6,.3f3-')(�C&4�,DC.C&'9#�Í�R 9¶�.R=R0R 9 � �]�.R 9)R �]�:9 9�9 � � �]�.R(9 � � �¶�+´+´+´

a , � R S ¥19 9+©�� �/¾ T>��� �Ð�^���^KÐ�S�1�4�58?@O@#¢3)')(�C&4�,DC.C&')#NV#.O@GB5+=�=V5�58?B?@5+GB5�?B*1GH'9O@O@#¢,.(�*H[�5�*1#&%/5VR � ¥19 9+© � � ! #6*1#&%/5� R � 9 ¸ � � ¾�� �Ð�^��� K��S�&I ½ 5pR],DGY'),D=<')3)'CT>��� 5��¢(�#&(�?@#&(�#\395+C&,DO@5W3J��4�(�,�,.3)3J��,.3�P

O@GH,£:�,�(�58?B?H4�(R^')(�*1#&39#�I>ѱ?@58%/N<'Ã:�'�N<,DGH#&395.Í R=R0R(9 9 �]�:9 9 �]� �]� � � �¶�.R0R0R=R0R(9 9 9 9 � � �]�+´+´+´a , � R S 9 � � ¾&T>��� KÐ�^��� , ��� TQ�

r (�vs4�58?@O@#Z*+,.?@#É395RD,DGH'),D=Ã')3)'�T>��� ���t?@#&(�#Z')(sO@5+GH:�'9NV58(�:�58(}OB'JI r 3;RS')(<*1#&39#�� ,��� TÌ')(<:�')*+,6*Y[�53),A?@#&%%,AEFGH,A')3Q(s4�%5+GB#A:<'dRu5\'-3U(S4�%/5+GB#�:�'B9�:�5+R.5\58?B?@5+GB54�C&4�,.395�,.3�(S4�%/5+GB#�:�' �ª')(�#.C&(�'^N<,DGH#&3),�:�583^3)')(�C&4<,DC.C&'9#�IÈѱ?@58%/N<'�ÍdR0R(9 9 9 � � � �]�.R(9 � �]�R(9 9 9 9�9 � � � � � �]�+´+´+´¡Ñ;?@58%N<'¡:�'VN<,DGB#&3)5W(�#&(L:�583f3)'-(�C&4�,DC.C&'9#�Í �]�.R 9 �]�.R0R(9 9¶� � �]�+´+´+´

a · , � R S 9 � ! ¾ T(KÐ�S�a , ���®¹�R6S0¾]¹ e a ·+� T��Ð�S�

1�4�'s,D=�=<'),.%/#�4�?B,DO@#�4�(�?@#.O@O@#&3)'-(�C&4�,DC.C&'9# a ·ÈNV5+GQ:�5+X<(�'9GB5±4�(�,.3)O@GB#p3-')(�C&4�,DC.C&'9#N�GH')(�*+')N<,.395 a I r 3Ã3-')(�C&4�,DC.C&'9# a [�,£NÃ,DGB#&395j*Y[�5�*1#&%')(�*+'-,.(�#�*1#&(�4�(�,��/?@5+C&4�'9OB,�:�,

Page 10: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

�+� ��������� � ������������������������ !�"#���$�

4�(<,6vS4�,.3)?B'),.?H'¡N<,DGB#&3),A:�583U3)')(�C&4�,DC.C&')# a ·�?@5+C&4�'9OB,¢,¢?H4�,6R.#&3)OB,¢:�,¢4�(�,¢?@58vs4�58(�78,:�'�R0,.(<*H[�5/R^4�#.OB,^I � 'Q(�#.OB'Q*Y[�5/3),AR],DGH'-,D=<')395�Tx')( a ·�5/vs4�583)3),6'-( a (�#&( [�,.(�(�#(�58?H?B4�(�GH,DN<Nd#.GHO@#�O@GH,«:�'&3)#.GB#�¿�NV#&')*Y[ �5;[�,.(�(�# � � � '�~ :�'9R.5+GH?@#�¿]*+'9#^�5$'-3.39#.GB#«?B'9C&(<'9X<*+,DO@#�5«*+'9GY*1#&?B*1GH'9O@O@#�,.3)3J��'-(}O@5+GH(�#p:�583-395±NÃ,DGB58(}O@58?H'�C.GH,��V5«:�'S#.C&(s4�(<,p:�583)395ª:�4�5ª58?@N�GB58?H?B'9#&(�'')(<?B'958%')?BOB')*H[�5*Y[�5¢3)5¢4�?B,.(�#�I0Ñ;?@58%/NÃ'JÍ��=R=R 9 � � � �9R=R0R0R=R0R=R0RÃ� �6R 9 �]� �=R=R 9 � � �9RÃ�+´+´+´�IKj#&(u,DN�NÃ,DGBO@58(�58(sOB'JÍ;Ç+� �(9 �9R0R=RÃ� �6R0R 9��.R0R0R(9 �9R=R0R0R<�+´+´+´

a , �¶²&· �±²¶¸\� � �Y²��¾ � �Ð�^�H² F e � R<�:9¶� �¶� � � I�eË�}�D�+´+´+´¶���Ã�.�

� =�=<'-,.%/#L4�?B,DO@#�¿§')(ËvS4�58?@O@#L58?@58%/NÃ'9#�¿f4�(�,�?@58vS4�58(�78,�(S4�%/5+GH,DOB,L:�'Q?@O@GY')(�C&[�5¥J² F ©Q#.C&(s4�(<,�:�583)395�vS4�,.3)'SN<4U�#�58?B?B5+GB5«4�(�,�?@O@GH'-(�C&,�vs4<,.3)4�(�vS4�5ª:�'�4�(/,.39O@GB#W3-')(�C&4�,DCDPC&'9#�� RÃ�:9�� �¶� � ¥FNV#.O@5+R],.%/# 4�?H,DGB5¢,.(�*Y[�5�4�(w?@#.O@O@#&3-')(�C&4�,DC.C&'9#É*1#&%/5L(�583)3�� 58?@58%/N<'9#N�GH58*158:�58(}O@5¶©YI r 3§E�,DO@O@#L*H[�5 �uNd#&?H?B,58?B?B5+GB5�,.(<*H[�5/�A')(�:�')*+,6*H[�5\(�583È3)')(�C&4�,DC.C&')#0�5N�GH58?@58(}O@5�,.(�*Y[�5L3),u?@O@GY')(�C&,ZRS4�#.OB,^I � 5 ��K �Ë,.3)39#.GH,Z,.3)3),ZX<(�5¢:<'®#.C&(�'�² F :�5+R.558?B?B5+GB56N�GH58?@58(}O@5A4�(�, �<I�ѱ?@58%/N<'�Í�Ç+�.R0R(9 9 ���� �<� � � � ���.R0R ��=R=R 9 9 �(9 � R 9 �6R 9 R �����´+´8´Kj#&(u,DN�NÃ,DGBO@58(�58(sOB'JÍ�R(9 �9R �¶�:9 ��6R 9 R �]�+´+´+´�I

r (�X<(�5.¿sR.58:�GH58%/#*H[�5�?@NV58?B?B#\'V3)'-(�C&4�,DC.C&'d*H[�5W?@NV58*+'9XÃ*H[�5+GB58%#�?@#&(�#\:<'9RS'-?B'�NV5+G¯@*+,.?B'-°^¿&*+'9#^�5$')3s3)')(�C&4<,DC.C&'9#M*H[�5±R.#.C&3)'-,.%/#j:�58?H*1GH'9R.5+GB5±GH')?B4�3)OB,�:�,.3)3J� ­ � �J� � ~ :�'}:<'9R.5+GH?B'3)'-(�C&4�,DC.C&'¡*1#&%/NV#&(�58(sOB'¡#.C&(S4�(�#:�58'fvS4�,.3)'dGH,DN<N�GB58?@58(sOB,4�(L*+,.?@#�I r (LvS4�58?@O@#¢*+,.?@#�5£?H4�Õ6*+'958(sO@5W4�OB')3)')7+78,DGB5�3),/(�#.GH%,.3)5W4�(�'9#&(�5�')(<?B'958%')?BOB')*+,^I � :L58?@58%N<'9#�Í

a , � R S 9 �£¾ T(KÐ�S� cË�S9 S �URL¾ T ���S� cZ��� ! ¥��&¾ 9+©0R � ¾ � K��S�� '®(�#.OB';*Y[�5�3), T�:�583®N�GH')%/#0'-(�?B'958%/5/5A3), T�:�583;?@58*1#&(�:�#�¿È,.(�*1#.GY,Z4�(<,�R.#&3�P

OB,^¿;(�#&(�[�,.(<(�#Z(�58?H?B4�(tGY,DN�NV#.GBO@#�Í4�(�,Zvs4�,.3-?B'),.?B';Nd#.O@GH5+=�=V558?B?@5+GB5AGH')(�#&%')(�,DOB,?@58(�78,Ð*+,.%£=Ã'),DGB5w')3�3)'-(�C&4�,DC.C&'9#Ð:�5+XÃ(�'9O@#�I � '�(�#.OB'W'-(�#&39O@GB5 *H[�5w(�583)3J��4<39OB')%/#2')(^P?B')58%/5w,D=�=<'-,.%/#Ð4�?B,DO@#�3�� #.Gu:�583)395 58?BN�GB58?B?B')#&(�'�GB5+C.#&3),DGH'�InÑ;?@58%N<'�:�'W?@O@GY')(�C&[�5.ÍR 9 �¶�:9 �9RÃ� � RÃ� � �]� � �@9¶�+´+´+´

Page 11: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

� ����������� �

� ��� ��� � � ������� � � � ��� �

r (xvS4�58?@O@#w*+,DNÃ'9O@#&39#t:�5+X<(<'),.%/#ÉC&3)'�,.4�O@#&%'M,t?@OB,DOB'�X<(<'9OB'ª(�#&(Ð:�5+O@5+GH%6')(�')?@OB'-*+';5:�5+O@5+GH%')(<')?@OB')*+'JILѱ?B?B';?B#&(�#Z:�58'±GH')*1#&(�#&?B*+'9O@#.GH'±:�';?@O@GY')(�C&[�56:<';4�(Ì*15+GBO@#É3)')(�C&4�,DCDPC&'9#�I � '¡[<,*H[�5�OB4�O@OB'f'f3-')(�C&4�,DC.C&'¡GH5+C.#&3),DGH'J¿�*+'9#��5\vs4�583)3)'V:�58(�#.OB,D=<'-3)'¡:�,\58?@N�GH58?B?B'9#&(�'GB5+C.#&3),DGH'J¿VNV#&?B?@#&(�#A58?H?@5+GB5,.*+*15+O@OB,DOB';,.(<*H[�5:�,�4�(É,.4�O@#&%6,L,A?BOB,DOB'>X<(�'9OB'ª¥ �5R.5+GB#,.(�*H[�5�')3VRS'-*15+R.5+GH?B,}©YI ; #.NV#63),/:�5+X<(�'978'9#&(�5p:�5+C&3-'f,.4�O@#&%'¡R.58:�GB58%/#64�(L,.3)C.#.GH'9OB%/#')%/NV#.GBOB,.(sO@5.Í®3),/*1#&?@O@GH4�78')#&(�5£:�58'¡?@#.O@O@#&'-(�?B'958%'VNV5+G«O@GY,.?@ET#.GY%,DGB5W4�(0,.4�O@#&%,(�#&(:�5+O@5+GH%')(<')?@OB')*1#\')(L:�5+O@5+GH%6')(�')?@OB'-*1#�I

W�`H_ o�bU\ � eZg�\jg�/kQbVk®c � eYg/e.]<bVe �®e; 5+XÃ(�'),.%/#A3),¢*+3-,.?B?@5\:�5+C&3)'È,.4�O@#&%'ÈX<(�'9OB'U(�#&(Ë:�5+O@5+GH%')(<')?@OB')*+'UK� � ¥�:�,.3-3J��')(�C&3958?B5KM#&(^P�:�5+O@5+GH')%')(<')?@OB')*�Q')(�'9O@5 � 4�O@#&%,DOB,}©YI � '),6¤�4�(L,.39E�,D=V5+O@#X<(�')O@#�I] %_^B`�+-a_+-,X`b% Z /1. d� ���� l _ �¢K� � �Å­ ¤ G~£­ � y¢��­ 'Ãz�y���� �Y¤�� 8/�.ÆD~ �H²¶µ¶����� �&� OÆD~ A

Î�� G~�­ � � � �Y��~986~ �®� �������D� ?@OB,DOB'Î ¤ G~Wz=2 yDz {+y}|Y~+���0�}~+�Q�Y�H86|B�Dz �Î ²¶µ�e � G~�z9� ?@OB,DO@#¢')(<'978'),.395Î � q�� G~�z=2 � � �Y��~986~\�}~ ¬ z � ?@OB,DOB'f:<'¡,.*+*15+O@OB,D78'9#&(�5 � ?@OB,DOB'¡XÃ(�,.3)'Î 8�DÆD~ Í�¥ ��� ¤M© Y��! ¥ � © G~\­ � y�{Å­ �0/ �J� � ~ � �^~\� '�~ � � �±� y�'�~1�� ¬&� �±�Å��y.��� ²~b'�~+�� ¬.� �±�Y�H86|B�Dz9� ¹ �D� ¤ z)~ O@GY,.(�?B'978'9#&(<'¡5+OB')*H[�5+O@OB,DO@56¹ �}yDzTz9�A�1��y.��� ² y&�­ � � � �Å�J~ 86~ %$y �d� �^~�ƶ­��.���&%$�D�;�Å��y.���ª�D�±�}~1�Å��� � y / ��� � ~E� � 2 G~�­ � yA���@y � �Y� / �J� � ~'�~+��� ¬.� �®�Å��y&���L�D�;�}~Å�1��� � y / �J� � ~3� ?

�j(wK� � N<4U�#L58?B?B5+GB5/GH,DN�N�GH58?@58(}OB,DO@#ZC.GH,DX<*+,.%/58(sO@56O@GY,.%'9O@54�(t:<'),DC.GH,.%%,')(¢*+4<'d'V*15+GH*Y[�'¡?@#&(�#\C&3)'d?@OB,DOB'J¿�3)5jEFGB58*+*15�5+OB')*Y[�5+O@OB,DO@5£?@#&(�#/395pO@GH,.(�?H'978'9#&(�'J¿^39#\?@OB,DO@#')(�'978'),.3)5�[<,64�(�,ETGB58*+*+'-,58(sO@GH,.(}O@5/*1#&(Ë?B*1GH'9O@O@# �Å��yD�1� 5£C&3)'U?@OB,DOB'§XÃ(�,.3)'f[�,.(<(�#64�(�,

�.�

Page 12: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

� � ��������� � �N� �������"#� ��$�?�b��� �d�X� � ���

start a b1 2 30b

{a,b}

Q'9C&4�GH, � I)�DÍ;�p(0K� � I

:�#.N<N<'),*15+GH*Y[�'),DOB4�GY,^I��pC&(�'fEFGB58*+*+'),6N<4U�#58?H?@5+GB5£5+OB'-*H[�5+O@OB,DOB,L:�,¢4�(0?B'-%£=V#&39#6:<'U¤#É:�,u4<(�')(<?B'958%/5:�'$?B')%�=V#&3)'>:�'ª¤pI ½ 5¢O@GH,.(<?B'978'9#&(�';:�';vS4�58?@O+��4�3)OB')%/#0OB'9NV#Ë?@#&(�#4�(f��,D=�=�GB5+R^'),D78'9#&(�5¢*H[�5L:�58(�#.OB,Ë4�(Ì')(�?B')58%/56:�'±O@GH,.(�?B')78'9#&(�'J¿ÈOB4�O@O@5L*1#&(23),u?@O@58?H?B,?@#.GHC.58(}O@5�5�3),�?@O@58?B?B,/:�58?@OB')(�,D78'9#&(�5.¿s5+OB')*Y[�5+O@OB,DO@5W#.C&(S4�(�,\*1#&(L4�(A?B')%�=V#&39#�:�')R.5+GH?@#:�583-3J��')(�?B')58%/5.I

�p(�58?@58%/N<')#�:�'jK� � ?H'MO@GB#¶R],2')(�Q'9C&4�GH, � I)�DI � �5 3J��')(�?H'958%/5 ���^�8�D� � � Ö �&¿¤ , � R<�:9��&¿ª39# ?@OB,DO@#w')(<'978'),.395Z�5u�É503J��4�(�'-*1#Ë?@OB,DO@#wX<(�,.395Ë�5 Ö ¥ � , � Ö �]©YI ½ 5EFGB58*+*15/GH,DN�N<GB58?@58(sOB,.(�#L395�O@GY,.(�?B'978'9#&(<'JÍM,.:É58?@58%/NÃ'9#A3-,¢EFGB58*+*+'),A5+OB')*Y[�5+O@OB,DOB, � RÃ�:9��*Y[�5N<,DGBO@5:<,.3)39#L?@OB,DO@#u�L5/RD,L(�583)3)#�?BOB,DO@#u��GH,DN�N�GH58?@58(}OB,L:<4�5/O@GH,.(�?B')78'9#&(�'JÍp4�(�,5+OB')*Y[�5+O@OB,DOB, *1#&( R<¿®3���,.39O@GH,u*1#&( 9\58:Ì58(sO@GH,.%�=d5A*H[�5�N<,DGHO@#&(�#Ë:<,u�Z5¢GH')O@#.GH(�,.(�#')(Ì�x¥�vs4�58?@O@#ÉOB'9NV#Z:�'±O@GH,.(�?B')78'9#&(�'®R.58(�C.#&(�# *H[�'),.%6,DO@5�,.(<*H[�5 �+~+z { O z��8� ' ©YIwÑ;?H')?@O@54�(f��,.39O@GH,�O@GH,.(�?B')78'9#&(�5�4�?B*158(sO@5W:�,.3)39#/?@OB,DO@#6��58:L5+OB'-*H[�5+O@OB,DOB,¢*1#&( R<¿�%,��5W:�')R.5+GH?B,:�,.3-3),\N�GB58*158:�58(sO@5£NV#&')*Y[ �5�39#?BOB,DO@#A:�'¡:�58?@OB')(�,D78'9#&(�5/�5¢�DI�1�4�58?@O@5�:�4�5�O@GH,.(�?H'978'9#&(�'')(<:�')*+,.(�#u*Y[�5 8/�.ÆD~ ¥��^�.R�© , ���^�8�]�&I r (�#&39O@GB5 8/�.ÆD~ ¥��^�:9+© , ���S�&¿ 8�DÆ.~ ¥��D�.R�© ,�.�&¿ 8�DÆD~ ¥��D�:9+© , � � �&¿ 8�DÆ.~ ¥ � �.R^© , �.�&¿ 8/�.ÆD~ ¥ � �:9+© , � Ö �Z5 8/�.ÆD~ ¥ Ö �.R^© ,8�DÆ.~ ¥ Ö �:9+© , �.�&I

�p(0K� � NÃ4U�#/GH')*1#&(�#&?H*15+GB5W395W?@O@GH'-(�C&[�5�:�'¡4�(L*15+GBO@#A3)')(�C&4<,DC.C&'9#�I 5U5+Gp*H[�'-,DGH'9GB5')(6vs4�,.3)5«%/#S:�#W4�(K� � ,.*+*15+O@OB,�4�(�,�?@O@GY')(�C&,W:�5+XÃ(�'),.%/#�3),�(�#.78')#&(�5M:�'�*+,.%%6')(�#5+OB')*Y[�5+O@OB,DO@#�I] %@^\`�+-a_+-,j`�% Z /[Z d � k0' '*+g`�,�%��S+����b%����&k�S,ml Ò��Jy� , ��� �Y¤p� 8�DÆD~ �H²¶µD��� � ­ ��� � ? _ � � y 8�8\� � �0~+��� � �^~8�J��y.���L�D�®z ­ �s¬ �^~ / / y � �Ð� �Å­� G~£­ � y6�+~ -+­<~ �0/ y² µ����Y�� ² ·����Y � ² ¸����Y�� � � �Y²

G · ����� �Y�� ² �&�DÆ.~ A

Î ²�µ G~Wz9�¢�Å��y&���A� � � / �JyDz)~Î � I eË���^�8�D�+´+´+´D��� Y �]�&´^² F ! ·�e 8�DÆD~ ¥J² F �@¹ F ©� y¢�Å���Å� �S¬ y ¹ µ ¹ · � � �B¹ G · �Y� � �}��y�8/y ?@O@GH')(�C&,/,.?H?@#S*+'-,DOB,6,.3§*+,.%6%')(�# ~B��G~�� �¬ ~ � ~+��yDz)~0­ � yÉ�Å���Å� �s¬ yÌ�D� ¤ � ? ÒV~ � , � y.zTz9�D�@yw�Fz � y 8�8\� � � G~ � �]�1���F��­^����� �+�Dz9�

�&y.zTz9�¢�Å��y.���A� � � / �JyDz)~/~�z�y6�Å���Å� �s¬ y�y]�Y�1� � ��y.��y G~�z�y6�Å���Å� �s¬ y¢Æ�­��.��y ÇS?Ò<� � �&��� � �^~�­ �Z� y 8�8�� � �¢�D�Uz ­ �s¬ ��~ / / y � � � � �Y�T�Å��~��D�È­ � y��+~ -+­<~ �N/ y�D� � �Ì�

�1��y.���$�}~+zTz=2 yD­���� 8y0~B� �SyA­ � y6�Å���Å� �S¬ y�y]�H�+� � �Jy.��y�z ­ �s¬ y �m?] %@^\`�+-a_+-,j`�% Z /�ced���� �p+g`bhjkok����F%����&k��&k l Ò��Jy� , ��� �Y¤p� 8�DÆD~ �H²¶µD��� � ­ � �� � ?_ � yÐ�Å���Å� �s¬ y! e ¤ � G~wy �Y� ~8�J��y.��y �&yDzFz32 yD­���� 8y� # %%# , � , #&% ~Å�Y�T�Å��~t­ �

Page 13: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

�N� �����������"#���� � �N���\� ! "#��� �=����� ��� � Ö

a1

0start

a

b

a

b

2 c

Q'9C&4�GH, � I � Í$�j(uK� � I

� y 8�8\� � �¢~+��� � ��~+�J��y.��� ²¶µ����Y�� ²&·����Y�� ²¶¸����Y � � � �Y² G · � ��� �Y�� ²

�Å­ ��yDz9~ � �^~ G~pz9y�Å���Å� �s¬ y�yD�H�1� � �Jy.��yxyDz � y�8 8\� � �x~Lz9�t�Å��y.��� ² G~u­ � �É�1��y.��� �®� yDz)~*��� � {+�D� 8�­^z)~²e � � , ¹dµ1¹f·m� � �B¹

G · � ? Òd~0z��É�Å��y.���w� � � / ��yDz)~ G~0y �Ã� �^~Z�D�Wy �H� ~+�J��y / ��� � ~yDzTz9�D�@yLy �Ã� �^~�z9y�1���Y� �s¬ y6ƶ­��.��y Ç G~�y �H� ~8�J��y.��y0�&y.zTz=2 y.­^����8/y ?

5È#&?B?B'),.%/#/#.GY,')(sO@GB#S:<4�GBGB5�3),/(�#.78'9#&(�5W:�'¡3)')(�C&4<,DC.C&'9#/,.*+*15+O@OB,DO@#A:�,.3-3J��,.4�O@#&%,^I] %_^B`�+-a_+-,X`b% Z /�� d=f�+g`�hji�kPh0hX+-,*k�� �F% ���&k�&, l Ò���y� , ��� �Y¤�� 8/�.ÆD~ �H²¶µ¶����� ­ ��� � ? � zfz � �s¬ ­�y ¬�¬ �J��y �H� ~+�J��y.���u�&yDzFz32 yD­���� 8y G~�z32 � � �Y��~986~

a ¥ © , � eZ¤ � ¾ G~\y �Y� ~+�J��y&��yL�&y �"$#&%('*)�+-,*Zm/�� >� � �Y�J�}~1�Å��y�8/�Lz32 yD­���� 8yA� � � ¬ ­^��y I ? � ?

���Y�� ���Y � ���Y � � �Y�� ÖG~�­ ��� y 8�8\� � �Ì~+��� � �^~8�J��y.���Éz9y � ­^�M�Å���Å� �s¬ y y]�H�+� � �Jy.��y G~ R0R(9 9p? � �Ë�1��y.���É� ��� ­^��Tz � y 8�8\� � �t��~1� 8�� � y&% � % G~�y �Ã� �^~A­ � �Z�1��y.��� �®� yDz)~0~ -8­^� � �.� -+­<~Å�1��yu�Å���Å� �s¬ yG~y �H� ~+�J��y.��yL�&y.zTz=2 y.­^����8/y ?

$�Y�+~ � �&�Az32 yD­���� 8y � � � �s~+��~1� 8\� � �-�1��� � �&%$��­��J��yDƶ��y&%«~Å�Å�-�1��~�­ � yDz����@� � y 8�8\� � �~+��� � �^~8�J��y.��� � � � z9y6�Å���Å� �s¬ y�'Ã�B~ � ~H�}~ � ��~ A

� �Y�� � �Y � � �Y � � �Y�� �� � -+­<~1�Å��� � y]�1�Éz9�Z�Å��y&���*T � � � G~ �®� yDz)~u~ -8­S� � �D� -+­<~Å�1��� � y 8�8\� � � � � � '^�D�1��yyDzTz=2 y �H� ~+�J��y / ��� � ~\�}~1zFz�y�Å���Å� �s¬ y ? Ò�� � �.��� � ��~ % � � 8\­ � -8­�~9%®z�yA�}~ �®� � / �J� � ~£�Y� � �s�J~H�}~� �^~ � �ª�Y�Jy ,.3-%/58(�# ­ �Ð� y 8�8�� � �t~8��� � �^~+�J��y.��� � �^~¢��~1� 8\� � yË� � ­ � �u�Å��y.��� �®� yDz)~'�~1���s~+��~1� 8\� � yD�@~\�+~£z9y�1���Y� �s¬ yLy]�H�+� � �Jy.��y�G~\y �Y� ~+�J��y&��y0� � � ?

y � ~ � �}� yDz����Å�¢~Å�+~ 8 'Ã�6~ � � � �Y�J�}~+��y � �&��z�yx�Å���Å­��J��­S�@y��}~1zFz=2 yD­���� 8y G~/{+y � �Tz)~� � � ƶ� �d� ~1�Y�Y� � �^~��Fz¡z � �s¬ ­�y ¬�¬ �J��y �H� ~+�J��y.��� G~V-8­<~1zFz����}~ � �.��y.���L�&y¥ R¡¾ 9+© � R(9 9 , �¶²dR(9 9�¾.²VeÉ� RÃ�:98� � �

½ ,j*1#&?@O@GH4�78'9#&(�5;:�'}4<(W*+,.%%')(�#«5+OB')*H[�5+O@OB,DO@#�Nd5+GU4�(�,«:�,DOB,p?@O@GH'-(�C&,�N<4U�#M58?B?@5+GB5RS')?BOB,�*1#&%5£4�(L,.39C.#.GH')OB%/#:�'dGH')*1#&(�#&?H*+')%/58(sO@#:�'¡?@O@GH')(�C&[�5.I � :L58?B58%/N<'9#�¿�?B4�N�NV#DP(�'),.%/#2*H[�5 R.#.C&3-'),.%/#Ð*1#&(sO@GB#&3)3),DGB5 ?@5t3-,�?@O@GY')(�C&, R(9 R�EF,2N<,DGHO@5É:�583p3-')(�C&4�,DC.C&'9#

Page 14: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

� � ��������� � �N� �������"#� ��$�?�b��� �d�X� � ���

,.*+*15+O@OB,DO@#0:�,.3-3J��,.4�O@#&%,:<' Q'9C&4�GH, � I � I�5Q,DGBOB'-,.%/#A:<,.3)39#?@OB,DO@#�')(�'978'-,.395�5�%,.(sO@51P(�'-,.%/#u4�(t'-(�?B'958%/5/:�';?@OB,DOB'£¯@*1#.GBGH58(}OB')°^I � 3)3J��')(<'978'9#�vs4�58?BO@#Z')(�?H'958%/5��50���S��:�,DO@#*Y[�56� �53J��4�(<')*1#L?@OB,DO@#u')( *+4�'>%6'QNd#&?H?@#�O@GB#�RD,DGB56,.3)3���')(�'978'9#A%/58(sO@GB56?@O@#0*15+GH*+,.(<:�#:�'¡*1#&?BO@GH4�'9GB5W4<(L*+,.%%')(�#/5+OB'-*H[�5+O@OB,DO@#ANV5+GM3),/?@O@GH'-(�C&,�R(9 RÃI

"ª#&(�?B'):�5+GY'),.%/#«#.GH,j')3&N<GH')%/#M?H')%£=V#&39#«:�583)3),«?@O@GY')(�C&,^ÍdRÃI � vs4�58?BO@#jN<4<(}O@#jC&4�,DG@P:�'-,.%/#6vS4�,.3)'f?@#&(�#C&3)'f?@OB,DOB'È')(0*+4<'¡NV#&?B?B'),.%/#¢,.(�:�,DGB5£?B5+C&4�58(�:�#64<(�,/O@GH,.(�?H'978'9#&(�55+OB')*Y[�5+O@OB,DOB, R 4�?B*158(sO@5¢:�,u4�(�#uvS4�,.3)?B'-,.?B'>:�5+C&3)'±?@OB,DOB';*1#.GBGH58(}OB'JI ½ ��')(�?B'958%5:�5+C&3)'?@OB,DOB'±*H[�5¢NV#&?B?@#0GH,DC.C&'-4�(�C.5+GB56*1#&(�3),LN�GY')%, RÌ�50���^�8�]��Nd#&'-*H[¡�5¢:<,.3)39#L?@OB,DO@#É�0*+'?@#&(�#\:<4�5jO@GY,.(�?B'978'9#&(<'<4�?B*158(sOB'V5+OB')*Y[�5+O@OB,DO@5£*1#&( RZ¥ 8�DÆ.~ ¥��^�.R^© , ���^�8�]�]©YI�1�4�58?@O@#�5£'-3¡(s4�#¶R.#6')(�?H'958%/5�:�'¡?@OB,DOB'U*1#.GBGB58(sOB'JI

ѱ3)')%'-(�'),.%/#M'-3}N�GY')%/#j?H')%£=V#&39#p:�,.3)3),j?@O@GH')(�C&,j')(�58?B,.%/5�5�*1#&(�?H'):�5+GH'),.%#jvS4�583)39#?@5+C&4�58(}O@5.ÍB9¶I � N<,DGHOB'9GB5;:�,«#.C&(�'s?BOB,DO@#p')(/���^�8�]��*1#&(sO@GB#&3)3-'),.%/#j'-(Wvs4<,.3)'&?@OB,DOB'sNV#&?B?@#,.(�:<,DGB5�?@5+C&4�58(�:�#/O@GY,.(�?B'978'9#&(<'<5+OB')*Y[�5+O@OB,DO@5�*1#&( 9¶I � 'Ã[�,/*Y[�5 8�DÆD~ ¥��^�:9+© , ���^� � �5 8�DÆ.~ ¥��D�:91© , �.�&I r 3f(S4�#�R.#A')(�?B'958%5p:�'¡?BOB,DOB'§*1#.GBGB58(sOB'f?B,DGD�,vs4<')(�:�'§���^� � �&I

ѱ3)')%'-(�'),.%/#/')3U?B')%�=d#&3)# 9�5£NÃ,.?B?B'),.%/#A,.3U?H4�*+*158?B?B'9R.#A5�4<39OB')%/#�Í R<I ; ,DO@#L*Y[�58�DÆ.~ ¥��^�.R�© , ���^�8�]��5 8�DÆD~ ¥ � �.R�© , �.�&¿d?B'f[�,/*Y[�5�'-3¡(s4�#¶R.#¢')(<?B'958%/5�:�5+C&3)'§?@OB,DOB'*1#.GBGH58(}OB'®�5���^�8�]�&I

� vS4�58?@O@#ËN<4�(sO@#u3),Z?@O@GH')(�C&,0:�'®')(�N<4�O�5¢?BOB,DOB,Ë3)5+O@OB,0OB4�O@OB,Z5¢(�#&(Ì*+'®GY')%,.(�5*Y[�5j*1#&(sO@GB#&3)3),DGH5M?@5«(�583)3���')(�?B'958%5$:�'<?@OB,DOB'<*1#.GBGH58(}OB'�?H'),�N�GB58?B58(}O@5M,.3-%/58(�#W4�(�#W?BOB,DO@#X<(<,.395.I 1�4�58?@O@#Ë�5�R.5+GB#�NV#&')*Y[ �5��A�5\X<(�,.395�5�vS4�')(<:�'¡NV#&?B?B'),.%#¢*1#&(�*+3)4<:�5+GB5�*Y[�5/3),?@O@GY')(�C&,�R 9)RË�5£,.*+*15+O@OB,DOB,�:�,.3)3���,.4�O@#&%,^I

�p(¦*+,.%%'-(�#�5+OB')*H[�5+O@OB,DO@# *H[�5xNV#.GBOB,�,.3)3���,.*+*15+O@OB,D78'9#&(�5�:�583-3), ?BO@GH')(�C&, �5Ð')3?@5+C&4�58(}O@5.Í

� �Y � � �Y�� � �Y � �"ª#&(�?B'):�5+GY'),.%/#0')(sR.58*15¢3),L?BO@GH')(�C&,^R �]I � NÃ,DGBOB'9GB5:�,u4�(�#0:�5+C&3)';?@OB,DOB'±'-(2���S�

NV#&?B?B'-,.%/#w,DGBGH')R],DGB5.¿ª*1#&(�4�(�,(Rÿ«(�583)3J��'-(�?B'958%/5�:�'«?BOB,DOB'W���^�8�]�&I�ѱ3)')%'-(�'),.%/#É3),N�GY')%, R£5«*1#&(<?B'):�5+GH'-,.%/#�3), ��?@5+C&4�58([email protected] � vS4�58?@O@#�N<4<(}O@#W?B'�[<,�*H[�5 8�DÆ.~ ¥��^� �+© ,�.�\5 8�DÆ.~ ¥��D� �8© , �.�&IMÑ;(sO@GH,.%�=<'§?B#&(�#6R^4�#.OB'JI r (u4�(<,?B'9OB4�,D78')#&(�5�*1#&%/5�vs4�58?@OB,3J��,.4�O@#&%,?B'f:<')*15 |1z9� �H� y.��� NV#&')*H[��5£(�#&(LN<4U�#,.(�:<,DGB5£,8RD,.(sOB'§,6*1#&?BO@GH4�'9GB5W*+,.%6%')(�'NV#&?B?B')=<')3)';Nd5+G/OB4�O@O@#w3J��')(�NÃ4�O+I��j')*1#.GH:�,.(�:�#É3-, :�5+X<(�'978')#&(�5A:<'�?@O@GH')(�C&,É,.*+*15+O@OB,DOB,R.58:�'-,.%/# *H[�5L')(2vS4�58?@O@# *+,.?@#t(�#&(Ì58?B')?BO@5�(�58?B?B4�(Ì*+,.%%')(�#Z5+OB')*Y[�5+O@OB,DO@#wNV5+G\3),?@O@GY')(�C&,\5£*Y[�5£vS4�')(�:�'d3J��,.4�O@#&%6,(�#&(0,.*+*15+O@OB,^I

5;GB#^*158:�58(�:�#w*1#&(�,.39O@GB5ZN�GB#¶R.5Z?B'MN<4U�#w')(�ET5+GH')GB5L*H[�5É')3«3)'-(�C&4�,DC.C&'9#t,.*+*15+O@OB,DO@#:�,.3-3J��,.4�O@#&%,/')( Q'9C&4�GH, � I � �5¥ R¡¾ 9+© � ¥ R ! ¾ 9 � � © , �¶²dR S ¾.²VeÉ� RÃ�:98� � � T KÐ�S� cZ�¶²�9 � S ¾D²VeÉ� R<�:9�� � � T����S�

W�`XW o�b \�� e �6g/e�bVe /kQbdk;c � eHg/e ]�b¡e �®e½ ,W:�5+X<(�')78'9#&(�5«:�'�,.4�O@#&%6,£*H[�5j,D=�=<'-,.%/#£:�,DO@#6�5pvs4�583)3),�N<'B�4\C.58(�5+GH,.395.¿^*+'9#^�5jvS4�583)3),:�'s,.4�O@#&%,p(�#&(�:�5+O@5+GH%')(<')?@OB')*1#�I ; '),.%#j#.GH,p4�(�,j*+,DGH,DO@O@5+GH'97+78,D78')#&(�5�:�5+C&3)'},.4�O@#&%':�5+O@5+GY%')(�')?BOB')*+' ; � ¥ ; 5+O@5+GH%')(<')?@OB')* Q')(�'9O@5 � 4�O@#&%,DOB,}©YI

Page 15: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

�N���6����U����!��\� � �$� �N��� �$����b������0�3� "#� � �] %_^B`�+-a_+-,X`b% Z /��ed��Ei �&,X' k���% �S% �p'*+g`�+-# �S+��F,ml _ � yD­���� 8y �;� �F�����}~+��~+�)8\� O� �-�1��� � ��� n � �eG~�­ � y¢��­ 'Ãz�y ��� �Y¤p� 8�DÆD~ �H²¶µD��� � �&�DÆD~&A

Î�� G~�­ � � � �Y��~986~ �®� �������D�>�1��y.��� ?Î ¤ G~W­ � yDz {1ys|H~+��� �;� �F�����D�®�Y�H8|H�Dz � ?Î 8�DÆD~ Í�¥ � � ¤«© Y � ¥ � © G~j­ � y±{Y­ �0/ ��� � ~��D�§���@y � �Å� / ��� � ~���yDz)~ � �^~�'�~1��� ¬.� ��Å��y&��� ²Ve � ~�'�~+�£� ¬.� �Q�Y�H8|H�Dz9� ¹ eZ¤ z=2 � � �Å�J~ 86~£�}~ ¬ z �Q�Å��y.��� 8�DÆ.~ ¥J²&�@¹¡© �G~£Æ�­��.���L�)'6'í^�@~ � � � ����~ � ~�­ � �1�Dz9�¢�Å��y&��� ?

Î ²¶µ�e � G~�z9�6�Å��y.���A� � � / �JyDz9~ ?Î � q�� G~�z=2 � � �Y��~986~\�}~ ¬ z �>�Å��y&��� �®� yDz � ?r (Ë,.39O@GB5\N<,DGH#&395�4�(É,.4�O@#&%6,Z�5/:�5+O@5+GH%6')(�')?@OB'-*1#¢?@5\:�,¢#.C&(�'Q?@OB,DO@#0(�#&(Z58?B*1#&(�#

%,.'¡:�4�5�O@GH,.(<?B'978'9#&(�'d5+OB')*Y[�5+O@OB,DO@5\*1#&(u39#?@O@58?H?@#6?B')%�=V#&39#�I½ ,/(�#.78')#&(�5�:�'¡*+,.%%')(�#�5+OB'-*H[�5+O@OB,DO@#A5W:�'V,.*+*15+O@OB,D78'9#&(�5�NV5+Gª4<( ; � �5£,.(�,]P

39#.C&,\,�vS4�583)3-,£:�'d4�(�K� � I ; ,DO@#*Y[�5�')(A4�( ; � ¿�:�,DO@#4�(�#�?@OB,DO@#/5�4�(�?B')%�=d#&3)#�¿�5�NV#&?B?B')=<')395«,.3dN<'B�4A4�(�,£O@GH,.(�?B')78'9#&(�5p5+OB')*H[�5+O@OB,DOB,6*1#&(AvS4�583V?B')%�=V#&39#�¿s?H'Ã[�,�*H[�5pNV5+G#.C&(�'§?@O@GY')(�C&,6,.*+*15+O@OB,DOB,u:�,64�( ; � 58?B')?@O@5�4�(u4�(<')*1#¢*+,.%%6')(�#5+OB')*Y[�5+O@OB,DO@#0*1#&(3),/?@O@GH')(�C&,�5�*H[�5WO@5+GY%')(�,/')(L4<(�#?@OB,DO@#X<(<,.395.I

½ ��,.39C.#.GY'9OB%/#�:�'^GH')*1#&(�#&?B*+')%/58(sO@#�:�'�4�(�,�:�,DOB,�?@O@GY')(�C&,��5M4�C&4�,.395�,�vS4�583)39#�:�'^4�(K� � ¿^%6,�'-(¢vS4�58?@O@#/*+,.?@#,.:A#.C&(�'VN<,.?H?@#�3���')(�?B'958%5j:�5+C&3)'d?@OB,DOB'¡*1#.GBGH58(}OB'¡*1#&(sOB'958(�54�(�#\58:u4�(L?B#&39#?@OB,DO@#�I"$#&%('*)�+-,*Zm/�� >� � �Y�J�}~1�Å��y�8/� z32 yD­���� 8yt�D�T�+~ ¬.� y.���Ë� � � ¬ ­S�@y�I ? � ? ª�H�+� G~¢­ �yD­���� 8yL�}~+��~+�)8\� � �-�1��� � � � ��~\y �H� ~+�J��yAz9�¢�Å��~Å�Y�1�Az � �S¬ ­�y ¬�¬ �����}~+zTz=2 yD­���� 8y0�D� � ¬ ­ O��yEI ? � % � �J�HG~ ¥ R¡¾ 9+© � R(9 9p? � 2 ­ � � � � � y 8�8\� � �0�D�ªy �H� ~+�J��y / ��� � ~�'�~+��z9y¢�Å���Å� �s¬ y R0R 9�9G~ � �Y�� � �Y � � �Y � � �Y�� Ö� z � y 8�8\� � �0�D�±y �Y� ~8�J��y / �J� � ~b'�~1�£z9y6�Å���Å� �S¬ y R(9 R0R(9 9 G~ A

� �Y�� � �Y � � �Y � � �Y�� � �Y�� � �Y � Ö

W�`�� � \ ]�bVcfo�[®e.\jg\k /k;e^] \�bÃb \peHg�]VeBk���e��3)'f,.4�O@#&%6'§:�5+O@5+GH%6')(�')?@OB'-*+'Ã5�vs4�583)3)'¡(�#&(Z:�5+O@5+GH%')(<')?@OB')*+'V[�,.(�(�#639#6?@O@58?H?@#6NV#.O@5+GB558?@N�GB58?B?H'9R.#�I 1�4�58?@O@#/?B')C&(�'9X<*+,�*H[�5�?@5W4<(A3-')(�C&4�,DC.C&'9#�N<4U�#�58?B?@5+GH5W,.*+*15+O@OB,DO@#¢:�,\4�(K� � ,.3)39#.GH,�58?B'-?@O@5£,.(�*Y[�5£4�( ; � *H[�5£3)#,.*+*15+O@OB,^¿d5�R^')*15+R.5+GH?H,^I

Ñ«�>*H[<'),DGB# *H[�5L3J��,.3)C.#.GH'9OB%/# :�'±GH')*1#&(�#&?H*+')%/58(sO@#É:<'$4<(�,Z*15+GHOB, ?@O@GH')(�C&,É:�'$4�(; � �5ËN<'B�4Ð'-%%/58:�'),DO@#wNd#&'-*H[¡�5Z(�#&(�=<'-?@#.C&(�, O@58(�5+GAO@GH,.*+*+'),Ì:�'«4<(�')(�?H'958%/5u:�'?@OB,DOB'M¥�')3>*+,.%%6')(�#L:�'>,.*+*15+O@OB,D78'9#&(�5.¿>?@5/58?H')?@O@5.¿;�564<(�')*1#s©YI ; ��,.39O@GH,LN<,DGHO@5.¿U:�,�4�(N<4�(sO@#�:<'^RS')?BOB,�:�'^N�GB#.C.5+O@OB,D78'9#&(�5.¿S')3^(�#&(6:�5+O@5+GH%')(<')?B%/#pGB58(�:�5�NÃ'@�4�EF,.*+')3)5ª?H*1GH'9R.5+GB54�(£,.4�O@#&%6,M5��¶#�:�5+O@5+GH%6')(�,DGB5$*H[�5$OB'9NV#M:�'s3)')(�C&4�,DC.C&')#j,.*+*15+O@OB,^¿}#&3)O@GB5±,jNV5+GH%/5+O@O@5+GB5:�'¡?B*1GH'9R.5+GH5W,.4�O@#&%'¡N<'B�4L*1#&(�*+')?B'JI

Page 16: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

� Ä ��������� � �N� �������"#� ��$�?�b��� �d�X� � ���

b b

a b b 3210

a a

a

Q'9C&4�GH, � I Ö Í;�p(0,.4�O@#&%,¢:�5+O@5+GH%')(<')?@OB')*1#�I

� ,.?@OB,Z,.:t58?@58%N<'9#LC&4�,DGH:<,DGB56'>:�4�5,.4�O@#&%';:�583-395 È')C&4�GB5 � I)�5 � I Ö *H[�5A,.*ÅP*15+O@OB,.(�#É39#u?BO@58?B?@#É3)')(�C&4�,DC.C&')#�I r 3®N�GH'-%/#É�5¢(�#&(�:�5+O@5+GH%')(<')?@OB')*1#0(�583-39#0?@OB,DO@#É�05?@NV58*+'9XÃ*+,u')(Ì%,.(�'95+GY,u(�,DOB4�GY,.395¢*Y[�5L?B'®NV#&?B?@#&(�#ZGH'-*1#&(�#&?B*15+GB5 R #o9')(�vs4�,.3-?B'),.?B'(S4�%/5+GB#u58:w#.GH:<')(�5/N�GH'-%,L:�'®NÃ,.?B?B,DGB5A,.:w4�(�,u?@O@GH')(�C&,0X<(�,.395#.=<=<3)'9C&,DO@#.GH'-,^R(9 9¶Ir 3;?@58*1#&(<:�#Z')(sR.58*15�:�5+R.5658?@NÃ3)')*+'9OB,DGB5¢4�(�,0?@#.GHOB,u:�';=<,.*��SO@GH,.*��^')(�CÉ(�5+C&3)';?@OB,DOB'JÍ/3),N�GY')%, R6*H[�5�'-(�*1#&(}O@GY,�NV#.O@GB5+=<=d5p58?B?@5+GH5�vS4�583)3-,�:�583-3),�?BO@GH')(�C&,�X<(�,.395p#.=�=<3-'9C&,DO@#.GH'),5Avs4�'-(�:�'>3J��,.4�O@#&%6,058(sO@GH,Z(�583)39#0?@OB,DO@#2�DI � 56'-3®?B')%�=V#&39#u?@5+C&4�58(sO@5�(�#&(Ð�5�4�(�, 9,.3)3)#.GH,3J��,.4�O@#&%6,6*1#&(sOB')(s4<,6,6*+'-*+3),DGB5�(�583)39#?@OB,DO@#É�DI«KM583-39#6?@OB,DO@# � ¿d?B5£')3f?B'-%£=V#&39#?@5+C&4�58(}O@5£(�#&(É�5£3J��4�39OB'-%, 9j3J��,.4�O@#&%6,/GH'9O@#.GH(<,�(�583)39#\?@OB,DO@#u�W,.:L,.?@NV5+O@OB,DGB5�:�'¡395+CDPC.5+GB54<(¡��,.39O@GH,+R0NV#&?B?B'9=Ã')395W*+,.(�:�'-:�,DOB,�,.:Z58?H?@5+GB5/')3UN�GH')%/#A?B')%�=V#&39#¢:�583-3),6?@O@GY')(�C&,X<(<,.395M#.=�=Ã3)'9C&,DO@#.GH'),^I r (�X<(�5j(�583)39#�?@OB,DO@# Ö 3���,.4�O@#&%,�:�5+R.5�GH'9O@#.GH(�,DGH5j(�583)3)#£?@OB,DO@#/�#��M?@5p*+'Ã?B#&(�#�,.(�*1#.GY,�?B'-%£=V#&3)'P9ª#�Rÿ}GH')?BNd5+O@OB')R],.%/58([email protected]�4�58?@O@#�NV5+GH*H[¡�5p'Ã?H')%£=V#&3)'395+O@OB'MN�GB58*158:�58(sO@58%/58(sO@5uNV#.O@GB5+=�=V5+GB# 58?H?@5+GB5Z'-3ªN�GB5+X<?B?B#t:�'«4�(�, ?BO@GH')(�C&,t*Y[�50NV#&'O@5+GH%6')(�5+G]�,/*1#&(03-,/?@O@GH')(�C&,\XÃ(�,.395�#.=�=<3-'9C&,DO@#.GH'),^I

r ( vs4�58?BOB,�?@5+78'9#&(�5wEF#.GH%,.3)'97+78'-,.%/# 4�( ,.39C.#.GH'9OB%# (�#.O@#�*1#&%/5�� �]�Å���Å­ / �J� � ~�}~+�ª�1�.�J���.� � �Å�J~ 8\� ¥�?H4�=<?@5+OW*1#&(�?BO@GH4�*1OB'9#&(éj*Y[�56?@5+GBR.5/NV5+GW*1#&?@O@GY4�'9GB5.¿f,�N<,DGHOB'9GB5/:�,4�(2K� � :�,DO@#�¿;4<( ; � 58vS4�'9RD,.3958(sO@5L*H[�5L?B')%�4�3),Z')3$(�#&(2:�5+O@5+GH%')(<')?B%/#�¿>%,��5:�5+O@5+GY%')(�')?BOB')*1#�I

5È5+G�?@NV58*+'9X<*+,DGH5M3J��,.39C.#.GH')OB%/#�4�?B5+GB58%/#�4<(�#£N<?B584�:�#DP�*1#^:�')*15M')(¢*+4�'d395M?@O@GH4�O@OB4�GB5:�,DOB'^R.5+GH5«5�N�GB#.N�GY'95$(�#&(?B,DGH,.(�(�#�?BNd58*+')X<*+,DO@5£¥�')(\#.C&(�'�*+,.?@#�(�#&(��5M:�'9Õ¢*+')395±'-%/N<3951P%/58(sOB,DGB5«vS4�58?@OB'^,.39C.#.GH')OB%'^')(\4�(\3)')(�C&4�,DC.C&')#p:�'SN�GH#.C.GH,.%%,D78'9#&(�5.ͧ=<,.?@OB,�:�5+X<(�'9GB5395j#.N�NV#.GBOB4�(�5«?BO@GH4�O@OB4�GB5p:�,DOB'�5p395MRD,DGH'95MEF4�(�78'9#&(�' �¶N�GH#S*158:�4�GB5�*H[�5�?@NV58*+'9X<*Y[�'),.%/#s©YI� �-h0,�� + �S'*, Zm/g. d � i���# %�� �F,j`�# � �pi � �S+-,j`Kl "$#&?BO@GH4�78'9#&(�5�:�'d4�( ; � ,�NÃ,DGBOB'9GB5:�,/4<(0K� � I� � 'd­^� Í �j(uK� � , ��� �Y¤p� 8�DÆD~ �H²¶µD��� �� ­�� 'í�� Í �p( ; � ; , � n Ò<��y&��~Å� �Y¤p� n ���@y �Q�H² ³µ ��� ³ �j58vS4�'9RD,.3958(sO@5\, 5\OB,.395*Y[�5 n Ò<��y.��~1� q ¥ � ©YI� ~+���8�&� Í "$#&?@O@GH4�'-,.%/#«3),�E�4�(�78'9#&(�5Q:<'.O@GH,.(�?B')78'9#&(�5 n ����y �\?H')%�4<3),.(�:�#�¿�,DO@O@GY,8R.5+GH?@#

Page 17: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

�N���6����U����!��\� � �$� �N��� �$����b������0�3� "#� � �')(�?B'958%6';:�'ª?@OB,DOB'«:<' ¿±'ª*1#&%/NV#.GBOB,.%58(}OB'«:<' ¯@')(2N<,DGH,.3-395839#&°Ë:�#�R^4�OB'�,.3�(�#&(:�5+O@5+GH%')(<')?B%/#�I½ ��,.39C.#.GH')OB%/#\�5M4�(�#�:�58'�*+3),.?H?B')*+'^,.39C.#.GH'9OB%6'S:<'�*+,.3)*1#&39#W:�'�4�(�N<4<(}O@#�X<?H?@#¥�')3�*+,.3)*1#&39#:�'^4�(/')(�?B')58%/5�:�5+X<(�'9O@#�')(<:�4�O@OB'9RD,.%/58(sO@5¶©f5«[<,�3),�N�GB#.N�GY'95+O¶�,�:�'^O@5+GH%')(<,DGB5�?@58%/N�GB5')(x4�(x(S4�%/5+GB# X<(<'9O@# :�'ªN<,.?B?B'�I r (2N�GH,DOB'-*+,ÉN<,DGBOB'),.%/#t:<,t4�(x')(�?H'958%/5�:�'�?@OB,DOB'n ÒÃ��y.��~Å� *1#&(}O@58(sO@58(}O@5 ?@#&3)#�4�(�#Ì?@OB,DO@#2')(�'978'),.3)5�(�#&( %,DGY*+,DO@#�I � : #.C&(�'MN<,.?B?@#?@58395+78'9#&(�'-,.%/#M4�(�#p?@OB,DO@#�(�#&(£%6,DGH*+,DO@#�:�, n Ò<��y.��~1� 5$(�5±*+,.3-*1#&3)'),.%/#�395;O@GY,.(�?B'978'9#&(<'4�?B*158(sOB'®,DC.C&')4�(�C.58(<:�#u, n Ò<��y.��~1� ¿U(�#&(w%,DGH*+,DOB'J¿U5+R.58(}OB4�,.3-';(S4�#�R^'®?@OB,DOB';O@GB#�RD,DOB'JI5®GH')%6,w#2NV#&'J¿M:�,DO@#Ð*Y[�5t')3p(s4<%/5+GB#x:�'�?@OB,DOB'�NV#&?B?B'9=Ã')3)'��5 X<(�')O@#�¥�')3�(S4�%/5+GB#x:�'583958%/58(sOB'M:�' ¥ � ©@©(�#&(�*+'M?B,DGH,.(<(�#wN<'B�4Ð?@OB,DOB'p(�#&(�%,DGY*+,DOB'j:�,�*1#&(�?B'):�5+GH,DGB5053J��,.39C.#.GH'9OB%#�O@5+GY%')(�5+G]�,^I� '�~1�@y / �J� � �±­����Tz � /)/ y.��~ ÍÎ 8�DÆD~ Í�¥ ¥ � © � ¤«© Y�� ¥ � ©�OB,.395L*H[�5 8/�.ÆD~ ¥��M�@¹¡© , ������� 8�DÆD~ ¥J²}�@¹V©YIr (¢N<GH,DOB')*+,\?B'V%/5+O@O@#&(�#')(A4�(�#\?@O@58?B?B#')(�?B'958%5MOB4�O@OB'VC&3)'d?@OB,DOB'VGH,DC.C&'-4�(�C&'9=<'-3)'*1#&(u4<(�#/?@O@58?B?@#6?H')%£=V#&39#\¹É,\N<,DGBOB'9GH5W:�,/4�(�#?@OB,DO@#Avs4<,.3)4�(�vS4�5�:�'��£I

� z ¬ �D�Å�F� 8� Í,.3)3J��')(�')78'9#�¶²¶µ]��5£3J��4�(<')*1#/?@OB,DO@#¢:�' n Ò<��y&��~Å� 5£(�#&( �5£%,DGY*+,DO@#� ��+ �-% *D���5�4�(�#?@OB,DO@#¢(�#&(0%,DGH*+,DO@#�� ')( n Ò<��y.��~1� ��, �H%@hX+-`%,DGH*+, 7 ,�� %(k���� ?H')%£=V#&39#\:�'f'-(�N<4�O$¹ eZ¤ ��, �K%@hX+g`

� Í , 8�DÆD~ ¥��M�@¹¡©�+ �¦(�#&( �5£')( n Ò<��y&��~Å� � �b% `,DC.C&')4<(�C&' ��¿�(�#&(0%,DGH*+,DO@#�¿d, n Ò<��y.��~Å�

n ����y �>¥��j�@¹V©$Í , ��

%(` � %(` � 39#?@OB,DO@#6')(<'978'),.395�:�' ; �5/�¶²�µ]��C&3)'V?@OB,DOB'VX<(�,.3)'d:�' ; ?@#&(�#/OB4�O@OB'Vvs4�583-3)'Ã*Y[�5W*1#&(sO@58(�C.#&(�#6,.3)%58(�#�4<(�#/?@OB,DO@#/X<(�,.395:�' % ` �

"$#&%('*)�+-,*Zm/�� >� � �Y�J�}~1�Å��y�8/� � � 86~ÉyD­���� 8y �D� '�yD�Å��~ �0/ y -8­<~1zFz���� � � ¬ ­ O��y I ? � ? � zMz � �s¬ ­�y ¬¶¬ �J�xy �H� ~+�J��y.���&% � � 86~Z�+y)'E'Ã�Jy 8�&% G~ -+­<~1zFz9�Ì�s~ � �.��y&�����&yDzFz=2 ~ O� 'Ã�B~Å�Y�Y�J� � ~��B~ ¬ �Dz�y.�@~ ¥ RV¾ 9+© � R 9 9 ?�� 'E'dz � � �}�Jy 8�Lz=2 yDz ¬ �D�Å�F� 8�0�}~+zTz9y � �D�Å���Å­ / ��� � ~/�}~+��1�.�J���D� � �Å�J~ 8���~������Dƶ��y�8/�L�Tz n � ; ~ -+­^�TÆDyDz)~ � ��~ ?� �Ë�1��y.���É� � � / ��y.z9~u�D��; G~V'�~+���}~ �®� � / �J� � ~ ���S� '^�D� � ���~ T G~�z9�Ë�Å��y&���É� � � / ��yDz)~0�.� ? ��}�Jy 8\��y�8/� -8­�~1�Å���� � �Å�J~ 86~ % '�~1� � � � Æ.~ � ��~ �0/ y&% 4R?�4 G~W�Fz6'd�Y�H8�/�1��y.��� � � �8/y.� � y.��� � ��~±{1y '^yD�1��~�D� n Ò<��y&��~Å� ?

Page 18: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

� � ��������� � �N� �������"#� ��$�?�b��� �d�X� � ���

� zFz9y#'Ã�Y�H8y2����~1�@y / �J� � ~É�+~1z)~ / ��� � ��y�8/� '�~1��{+�D� / y2z9�Ì�Å��y.��� 4 ~Ëz9� 8yD� � �}�Jy 8� ?>yDz � �.z �Jy 8�FAÎ 8/�.ÆD~ ¥g4��.R^©@© , ���^�8�]� ��}��y�8��Jy 8�^-8­�~1�Å��� � ­��DÆD��1��y.��� 5 , ���^�8�]�Î 8/�.ÆD~ ¥g4��:91©@© , ���S� , 4

>� � ­ � y 9 �Å�F���D� � �Jy 8� � ~+zTz9���1��y.���\� � � / ��y.z9~W~ � � � ­ � y R y � �D�Jy 8�/­ � ­ � ���Å��y.���� ­��DÆD� 5 � � � � �Y�M���@�DÆDyty.�J��­�yDz 8~ � ��~�� � n Ò<��y.��~Å� � � ��~ %M�8~ ¬ ­�~ � �&�Ëz=2 y.z ¬ �D�Y��� 8�&%ÆDy6� � �8~1�Å�F��� � � � 8yD� � y&����� � n Ò<��y.��~1� ?

� �̬ ~ � ~1�@yDz9~9%£­ � y\{Å­ �0/ �J� � ~u�D�p���@y � �Å� / ��� � ~Ë�D�j­ � �� � �w�D�j­ � n � 'í$G�~1�H�+~+�@~��@y)'E'd�@~1�+~ � ��y.��yuy �d� �^~ � � � ­ � y6��y}|Y~1zFz�y¢� �É� ­^�>z9~£�Å� ¬ �^~£�1� � � ¬ z �Q�1��y.���$~£z)~� �Dz�� ��� ~j�+� � ���¡�Y�H86|B�Dz �U�}~+zTz=2 yDz {+y}|Y~+��� ? � y � ~1zFz�y\y&��­ � y��Å� ¬ y � ~py&��­ � y � �Dz9� ��� y¹ �}~+zTz9yA��y}|H~+zTz9y G~�z32 � � �Y��~986~\�D�>�1��y.��� � �^~��Y�T�Y­^z���y��&yL8�DÆD~ ¥��M�@¹¡© ?

� y\��y}|H~+zTz9y � ��~j��y)'6'Ã�@~1�+~ � ��yz9yb'^yD�1��~��D� n ����y �u� yDz � �Dz9y.��y �®� �/y�-+­<~Å�1����'d­ � ���G~£z9y¢�+~ ¬ ­<~ � ��~&A

Ò<��y.��� R 9 � yD� � y.������ � T � � � Ò������� T % � � � �

Ï���� � ~B�D�Jy 8�0� � ~ ¬ z �J~ � �&��­ � ���Å��y.��� � � � 8yD� � y.��� ? �p�Ã� ��~�-+­<~Å�1��yAÆ]�Dz���y�z9yA� � ~1z���y�}|¶|1z � ¬ y.��y�G~ 5 ~ � y.z � �Dz �Jy 8�FA

Î 8/�.ÆD~ ¥g5A�.R^©@© , ���^�8�]� , 5Î 8/�.ÆD~ ¥g5A�:9+©@© , ���^� � � ��}�Jy 8\��y�8/�#-+­<~Å�1��� � ­��DÆD�6�Å��y.����� , ���^� � �

�p�d� �^~�-8­<~Å�Å��ypÆD�Dz���y '�~1�$�Fz}�Å� 86|B�.z�� R6� � � G~$�Å��y.��� ¬ ~ � ~1�@y.��� � ~1�H�Y­ � ���Å��y.��� � ­��.Æ]�&%86~ � ���@~�'�~+� 9 G~«�Å��y&��� ¬ ~ � ~+��y&�����Tz � ­��DÆD���1��y.����� � �^~M� � �+~+�Y�Jy 8� � � � 8yD� � y.���\� �n Ò<��y.��~1� ? � y��y}|H~+zTz9yb'^yD� / �JyDz 8~ � ��~ � �]�1���Y­^����y �®� �/y�-8­<~Å�Å���b'd­ � ��� G~pz�y��8~ ¬ ­�~ � ��~ A

Ò<��y.��� R 9 � yD� � y.������ � T � � � Ò����� � T&% � � � Ò�� ��� T %�I � � �

>� � ��� � ­�y � �&��y&�6y)'6'Ãz � � y.�@~�z=2 y.z ¬ �D�Y��� 8�/�Å�®yD�Y�Å�FÆ]y6y ¬ ~ � ~1�@yD�B~W­ � ­^z���~1�Å���.�@~��Å��y.���; , ���^� Ö � �&�)'^�8�.� � � �~ � � � �Å� ¬ ~ � ~1�@y � ��'d�@G­ � ­��Dƶ�§�1��y.���±~pz=2 yDz ¬ �.�Y��� 8�¢��~+�)8\� � y ?� y���y}|H~+zTz9y �®� yDz)~VG~�z�y6�8~ ¬ ­<~ � ��~ A

Page 19: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

�N���0� "#��� �X"#�6� �U��� � ��<� �����d� � �N� � >

b b

a b b

a a

a

DA B C

È')C&4�GH, � I � Í ½ ��,.4�O@#&%, :�5+O@5+GH%')(<')?@OB')*1# GH'-?B4�39OB,.(sO@5n:�,.3)3-, *1#&?@O@GH4�78'9#&(�5 :�58'?@#.O@O@#&')(�?B')58%'JI

Ò<��y.��� R 9 � yD� � y&���� ��� T � � � Ò������� T % � � � Ò�� � � T %�I � � n Ò��n ��� T % � � n � Ò��

� 2 ­ � � � ���Å��y.��� �®� y.z9~*G~ ; '^�D� � ���~VG~�z32 ­ � � � � � �^~ � � � ����~ � ~W­ � �\�1��y.��� �;� yDz)~£�D� %� �J�KG~ � ?�� 2 yD­���� 8y G~¢�D�T�+~ ¬&� y.���u� � � ¬ ­S�@y I ? L ? Ò�� � �.��� � ��~ -8­�~1�Å��� G~/z9���1��~Å�H�+�yD­���� 8y��D� � ¬ ­^��y I ? � y(8~ � �w�.�p�Å�J�}~ � ��8�� � y / ��� � ~É�}~ ¬ z �p�1��y.��� � T � � % � � � %I � d% � � n � ?

ÏM~+� � � �Ã� z ­��}~+�@~��]�Y�+~1�ÅÆ��Jy 8� � �^~W� � ��­��J��~£z9~ � y]�8~1zFz9~��}~+zTz9y6��ys|H~1zFz9y¢�}~+zTz=2 ~Å�+~ 8 O'Ã���Ëy}|¶|1�Jy 8� �.�J��~ � ­����Z­ � � � �Y��~986~A�D���1��y.���M�&yZ� � �+~+�Y�F�@~ ? � ­��J��yDƶ��y -+­<~1�Å��� � � ��Y��ÆD~+�Y� �±� y �8~98 'Ã�B~ A��+~Ë�.�J��~ � �Jy 8�&% '�~1�u­ � y � ~1�1��y � y]�+~+zTz9y&%�8�DÆD~ ¥��M�@¹¡© , �.�yDzTz9�D�@yÉ�Å� ¬&� � �$� y � �^~ � ~+zTz=2 yD­���� 8y �Å�-�Å­Sz���y � ��~ ;#%WyL'^yD�1���T�B~Ë�&yDzFz�� �Å��y.��� � % � � �� 2 G~ � ~Å�H�Å­ � yA����y � �Y� / �J� � ~�­S� � ~ � ��~/~8��� � �^~+�J��y&��y � � ��¹�?

W�`�� � eYg/e ��e.[ [>q�[®e.\pg\k eZo/g���� ½ ,�EF,.*+')3-'9O¶�,£:�'d?B')%�4�3),D78')#&(�5j:�'d4�( ; � GH')?@NV5+O@O@#\,�vS4�583)3-,£:�'d4�(AK� � �5�*1#&%/NV58(^P?B,DOB,�:<,.3�E�,DO@O@#�*Y[�5p'-3 ; � ')(/C.58(�5+GH5p[�,�4�(6(S4�%/5+GH#�%,DC.C&'9#.GH5p:�'Ã?@OB,DOB'JI �Ñ23958*+'9O@#*H[�'958:�5+GH?B'J¿®')(xvS4�58?@O+� #.O@OB'-*+,^¿ª?B5É�5LNV#&?B?H'9=<')395.¿>:�,DO@#�')(2*15+GBO@# ; � ¿®O@GH#�RD,DGH(�504�(�#58vs4�')R],.3958(sO@5.¿§%,L*Y[�56,D=�=Ã'),�4�(É(s4�%5+GB#0%')(�#.GH5\:<'È?BOB,DOB'JI ½ ,�GH'-?@NV#&?@OB,Z�5¢? � �J¿f58:58?B')?@O@5«4�(6,.39C.#.GH'9OB%/#�*H[�5«O@GH#�RD,£4�( ; � 58vs4<'9R],.3)58(}O@5M,.:64�( ; � :<,DO@#£5«OB,.395j*H[�53J��,.4�O@#&%,LGY')?B4�39OB,DO@#Z[�,04�(t(S4�%/5+GH# 8\� � �H8� :�'®?@OB,DOB'JI^1�4�';%')(�')%#�?H'®GH'9EF5+GH')?H*15,DC&3)';?@OB,DOB'ª(�58*158?H?B,DGH'±Nd5+G�NV#.O@5+G�,.*+*15+O@OB,DGB50'-3;3)')(�C&4�,DC.C&'9#u,.*+*15+O@OB,DO@#w:<,.3)3J��,.4�O@#&%,:�'ÈN<,DGBO@58(�78,^I r (�#&39O@GB5?H'>[�,�*H[�563���,.4�O@#&%,L%')(<')%/#Ë�54�(�')*1#L,0%/58(�#0:�'ÈGH')(�#&%'9P

Page 20: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

� � ��������� � �N� �������"#� ��$�?�b��� �d�X� � ���

a

b

a

a

b

A B

C

EDb

a

b

a

b

start

È')C&4�GH, � I � Í;�p(0,.4�O@#&%,¢:�5+O@5+GH%'-(�')?@OB')*1#�NV5+G�¥ R¡¾ 91© � R 9 9¶I

(�,DGH5�C&3)'¡?@OB,DOB'±¥�'-(L,.39O@GB5�N<,DGB#&3)5W?@5�O@GB#�R.#A:�4�5W,.4�O@#&%6'f%')(�'-%'<58?H')?@O@5W?@58%/N<GB5�4�(�,E�4�(�78'9#&(�5p=Ã'9C.5+O@OB'9RD,/ETGY,\C&3)'¡?@OB,DOB'§:�58'¡:�4�5W*H[�5WGH')?@NV5+O@OB,�OB4�O@O@5�395�O@GH,.(�?B')78'9#&(�'T©YI

r (ÐvS4�58?@O@#w*1#.GY?@#w(�#&(xR.58:<'),.%/#tvS4�58?@O@#w,.39C.#.GY'9OB%/#�¿ª%,2�50=V58(�50?B,DNV5+GB50*Y[�558?B'-?@O@5W3),\(�#.78'9#&(�5�:�'V%'-(�')%,.3)')O¶�,W5�:�'V58vS4�'9RD,.3958(�78,�:�'V?@OB,DOB'JI � 'd#&?B?B5+GBRS'¡,.:�58?B58%\PN<')#É3���,.4�O@#&%, :�5+O@5+GH%6')(�')?@OB'-*1#Ë:�' Q'9C&4�GY, � I � I �Ñ EF,.*+')3)5�*1#&(sR^')(�*15+GH?B'�*Y[�50,.(�*Y[�5vS4�58?@O@#�,.4�O@#&%,�,.*+*15+O@OB,0')3U3)')(�C&4<,DC.C&'9#Z¥ R¡¾ 91©���R 9 9W*1#&%/5/vS4�583)39#6GH')?B4�3)OB,.(}O@5�:�,.3)3),*1#&?@O@GY4�78'9#&(�5�:�58'S?@#.O@O@#&')(�?H'958%'S')( È')C&4�GH, � I � I r 3^(s4<%/5+GB#�:�'s?BOB,DOB'�:�'svS4�58?@O+��4<39OB')%/#�¿NV5+G]�#�¿��5M%6')(�#.GB5�:�583�(S4�%/5+GB#W:<'S?BOB,DOB'�:�583)3J��,.3)O@GB#�I ½ ��,.39C.#.GH'9OB%#W:�'�%')(�'-%'97+78,D78'9#&(�5.¿N<,DGHO@58(�:�#¢:<,.3)3J��,.4�O@#&%,6*1#&(uN<'B�40?@OB,DOB'J¿V,8RSGB5+=�=V5WGH'-*1#&(�#&?B*+')4�O@#¢*H[�5�C&3)'f?@OB,DOB'È�5 �

?@#&(�#�58vs4�')R],.3958(sOB'S5«3)'^,8RSGB5+=�=V5�4�(�'9XÃ*+,DOB's')(/4<(�4<(�')*1#�?@OB,DO@#£:�')%#&?@O@GH,.(�:�#�¿&'-(�#&39O@GB5.¿*Y[�5£3J��,.4�O@#&%6,:�'�Q'9C&4�GH, � I � �5£%')(�'-%/#�I

Page 21: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

� ����������� �

� � �!� � ��� ����� � ���� �n�� �! � ��� ��� � � �

�pC&(�'<3-')(�C&4�,DC.C&'9#�:�'�N<GB#.C.GH,.%%,D78')#&(�5p[<,�:�583-395«GB5+C.#&395�*H[�5pN<GB58?B*1GH'9R.#&(�#�3),�?@O@GH4�O�POB4�GH,Ë?B')(sOB,DO@OB')*+,É:�58'$N�GB#.C.GH,.%%6';=V58(ÌET#.GY%,DOB'ª:�583±3-')(�C&4�,DC.C&'9#�I � :258?@58%/N<')#Ë')(5È,.?H*+,.3U4�(0N�GB#.C.GH,.%%6,6*1#.GBGB5+O@O@#Z�5�EF#.GH%,DO@#A:�,/=<3)#S*+*Y[�'J¿<'§=<39#^*+*H[�'f?B#&(�#6EF#.GH%,DOB':�,6?@OB,DO@58%58(}OB?+¿§C&3)'§?@OB,DO@58%58(}OB?W:<,658?@N<GB58?B?B'9#&(<'J¿<395�58?@N�GB58?H?B'9#&(�'f:<,.'§O@# �.58(É5\*1#&? � �RS'),^I

½ ,A?B')(sOB,.?B?B'È:�58'§3-')(�C&4�,DC.C&'È:�'fN<GB#.C.GH,.%%,D78')#&(�5�NÃ4U�#¢58?H?@5+GB5�58:��5/*1#&(sR.58(�'958(^PO@58%/58(}O@5 ?@NV58*+'9XÃ*+,DOB,wO@GH,.%6'[email protected],.%%,DOB')*Y[�5 3)'9=V5+GB5u:�,.3p*1#&(sO@58?@O@#�¥@� � � ��~ �&� O {Å�@~Y~¬ �@y 8�8/y.�H� ©YI ½ #Ë?BO@58?B?@#ËET#.GH%6,.3)')?B%/#uRS'958(�5¢,ZR.#&39O@5A*Y[�'),.%,DO@# ,.(�*Y[�5�(�#.OB,D78'9#&(�5� K� ¥ � ,.*��^4�?�P�Kp,.4�G �#.GH%¢©YI

½ 5AC.GH,.%%,DOB'-*H[�5�# �VGB#&(�#ËR],.(sOB,DC.C&'«?B'9C&(<'9X<*+,DOB'9R^'®?B'),Ë,.'±N�GB#.C.5+O@OB')?@OB'ª:�58'$3)')(�PC&4�,DC.C&'Ã:<'�N�GB#.C.GH,.%6%,D78'9#&(�5M*Y[�5j,.'Ã39#.GB#�')%/N<3958%58(}OB,DO@#.GH'�Id:>58:�'-,.%/#�'�N<GH')(�*+'9NÃ,.3)'JÍ

Î �p(�,6C.GY,.%%,DOB')*+,�:U�,A4�(�,¢?@NV58*+'9X<*+,A?B')(sOB,DO@OB')*+,6N<GB58*+')?B,¢5�E�,.*+')395\:�,A*+,DN<'9GB5:�'¡4�(L3-')(�C&4�,DC.C&'9#�IÎ 5È5+G$,.3-*+4�(�5M*+3),.?H?B'<:�'�C.GH,.%%,DOB')*Y[�5MNV#&?B?H'),.%/#£,.4�O@#&%6,DOB')*+,.%/58(sO@5�*1#&?BO@GH4�'9GB5:�5+C&3)'M,.(�,.3)'97+78,DO@#.GH'M5+Õ6*+'958(sOB'M*Y[�5Z:�5+O@5+GY%')(�,.(�#�?@5Z4�(�*15+GBO@#wN�GH#.C.GH,.%%,?@#.GBC.58(sO@5��5p?B'-(}OB,DO@OB')*+,.%58(}O@5�=V58(EF#.GH%,DO@#\5.¿^')(6*+,.?@#\NV#&?B'9OB')R.#�¿s(�5jGB58(�:�#&(�#:�')?BNd#&(<'9=<')3953-,Ë?BO@GH4�O@OB4�GH,ËC.5+GH,DGY*H[�')*+,w,.:x,.39=V5+GB#�I r (�#&39O@GH5.¿;')3$N�GB#^*158?B?@#t:�'*1#&?@O@GH4�78'9#&(�5 :�583)3J��,.(<,.3)'97+78,DO@#.GB5 ?@O@58?B?B#xGH'958?B*15 ,ÌGH')395+RD,DGB5É,.%£=Ã'9C&4�'9O¶�,2(�583)3-,:�5+X<(<'978'9#&(�5:�583-3),�C.GH,.%%,DOB'-*+,u#Ë,.:w')(�:<'9RS'-:�4�,DGB5\,.3)*+4�(�';*1#&?@O@GH4�O@OB'$*1GH'9OB')*+':�'9Õ¢*+')3)'p:�,x,.(�,.3)'97+78,DGH5.I 1�4�58?@O@#ÐOB')Nd#x:�'�N<GB#.=<3958%'pNV#&?B?@#&(�#ÌE�,.*+')3)%58(}O@5N<,.?B?H,DGB5u')(�#&?H?@5+GBRD,DOB'«(�583)3),ÉE�,.?@5u'-(�'978'),.395L:�'«N�GB#.C.5+O@O@#�:<'«4�(Ð3)'-(�C&4�,DC.C&'9# 5vS4�58?@OB,/NV#&?B?B')=<')3)'9O¶�,�5£4�(LRD,.3)'):�#/?B4�N�NV#.GBO@#\Nd5+G«'fN�GB#.C.5+O@OB')?@OB'�I

Î �p(�,�C.GH,.%%,DOB')*+,�=V58(AN�GB#.C.5+O@OB,DOB,'-%/NV#&(�5j4�(<,�?@O@GY4�O@OB4�GH,�,.3V3)')(�C&4�,DC.C&')#�5vS4�58?@OB,�?@O@GH4�O@OB4�GH,£�5�4�OB')3)5;NV5+G>3),MO@GY,.:�4�78'9#&(�5.¿.:�,jN<,DGBO@5�:�583S*1#&%/N<'-3),DO@#.GB5.¿&:�58'*1#&?@O@GH4�O@OB'¡')(L*1#S:<')*15�#.C.C.5+O@O@#Ë¥�?B'),/'-(}O@5+GH%58:�'9#\*H[�5W:�583-3),�%6,.*+*H[�')(<,\#&?@N<'9O@5¶©YI1�4�58?BO@#«N�GB#^*158?B?@#«:�'&O@GH,.:�4�78'9#&(�5>N<4U�#�58?B?@5+GH5®EF,DO@O@#p,.4�O@#&%,DOB')*+,.%58(}O@5ª:�,.(�:�#395W?@NV58*+'9XÃ*H[�5�C&')4�?BO@5£,.'¡C.58(�5+GH,DO@#.GY'f,.4�O@#&%,DOB')*+'U:�'¡,.(�,.3)')7+78,DO@#.GH'JI

� �

Page 22: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

� � ��������� � �6��� ! ��" " �b��� ���<� �$�����2! � ����� ������\���$��

Î �j(Ë3)')(�C&4<,DC.C&'9#6N<4È�#5+R.#&39R.5+GB5/(�583§O@58%/NV#A,.*+vS4�')?@58(<:�#6(S4�#�R^'U*1#&?BO@GH4�O@OB'È5��¶#58?@5+C&4�58(�:�#Ð(S4�#¶R.5t#.NV5+GH,D78'9#&(�'JI 1�4�58?BOB'p(S4�#¶RS'W*1#&?BO@GH4�O@OB'�NV#&?B?@#&(�#258?B?B5+GB5,DC.C&')4�(sOB'�N<'B�4�EF,.*+'-3)%/58(sO@5«?@5�')3^3)')(�C&4�,DC.C&')#��5M?BOB,DO@#£')%/N<3)58%/58(}OB,DO@#�?B4<3)3),j=<,.?@5:�'¡4�(�,\C.GH,.%6%,DOB')*+,^I

r (uvS4�58?@O@#�*+,DN<'9O@#&3)#¢')(sO@GB#^:�4�GBGB58%#\3)5£C.GH,.%%6,DOB')*H[�5�3)'9=V5+GB5W:�,.3U*1#&(}O@58?BO@#A5�395GB583-,DOB'9R.5£(�#.78'9#&(<'¡:�'¡,.39=V5+GB#/:�'¡:�5+GH')R],D78'9#&(�5.¿�:�5+GH'9RD,D78'9#&(�'J¿�,.%�=<'9C&4�')O¶�,^I

�W`H_ � c¡q � � q$bVe �Ui\k mHe��Ak®c¡k /q«m � \jgpbVk�]�bU\; '),.%/#6#.GH,4�(�,\:�5+XÃ(�'978'9#&(�5�N�GH58*+')?B,/:�'VC.GH,.%6%,DOB')*+,3)')=d5+GY,�:�,.3§*1#&(}O@58?@O@#�I] %@^\`�+-a_+-,j`�%ocm/1. _ � y �pGH,.%%,DOB'-*+,x3)'9=V5+GH,w:<,.3�*1#&(}O@58?@O@# G~ ­ � y���­ 'Ãz�y�� ,� ¤p��®� � � � � �&�.ÆD~ A

Î ¤ G~�­ � � � �Å�J~ 86~ �®� �����A�s~1�>�Å� 86|B�.z �ª�D�;yDz {1y}|Y~+���0� � '-%£=V#&3)' 7 5+GY%')(�,.3)'Î G~­ � � � �Y��~986~ �®� �����Z�.�±�Å� 86|H�Dz � � �^~��y)'6'Ã�@~1�+~ � ��y � � "�,DO@5+C.#.GH'95 � ')(sOB,DO�POB')*H[�5 �6�Y�H86|B�Dz � (�#&(0O@5+GH%')(�,.3-'Î � e G~u­ � �Y�H86|B�Dz9�x�D� � y.��~ ¬ �D�Y�Jy��Y� � ��y.�J��� � yÌ� � �D� � y&��� � � 86~ ')(�'978'-,.395 �N�GH')(�*+')N<,.395Î � G~£­ � � � �Y��~986~ �®� �����L�D�>�@~ ¬ �Dz)~ % � �}�Jy 8y.��~ 5;GB#^:�4�78'9#&(�' %>�}~+zTz9yj{1�.�)8y

4 ��� · � ¸\� � � � �&�DÆD~&A 4�e� G~�z�y O@58?@OB, ��'^yD�1��~��Y� � �T�Å���@yL�}~1zFz9y�'Ã�����D­ / �J� � ~ � I eË�}�D�+´+´+´]���Ã�&´ � F ew¥� c£¤M© ?� y��1���Y� �s¬ y � · � ¸\� � � � ew¥� c£¤«© ��Y� � �}��y�8/y *1#.GHNd# ��'^yD�1��~�}~1�Å���@yL�}~1zFz�y�'Ã�@�8�D­ / ��� � ~ ?

� z � �D� '^�Z�.�$­ � y 'Ã�����D­ / �J� � ~�'í$G�uy �Ã� �^~A~Å�Y�+~+�@~Æ�­��.��� ? � � -8­�~1�Å��� � y]�+�Lz9y'Ã�����D­ / �J� � ~Æ���~ � ~W� � �Y���J��y 4 � Ç&?� � yDz � ­ � ����~1�Å����z32 �)'�~+��y&���D�@~������ G~L­S�1y&���Ìy '^�]�1���Ì�s~1zFz�y6{Y�B~ �Y� �Jy � � ~1zFz9y� � �Å���J��­S�@yL�}~+zTz)~�'Ã�@�8�D­ / �J� � � ?�� ~��D­<~ � �.��y / ��� � �®�1� � �0~.-8­S�FÆ]y.z9~ � ��� ?

r 3ª*1#&%/N<'9O@#ÉN�GY')(�*+'9N<,.3)56:�'$4�(�,ZC.GH,.%%,DOB')*+,2�50vS4�583)39#Ë:�'$C.58(�5+GH,DGB5L?@O@GY')(�C&[�5:�'È?B')%�=V#&3)'¡O@5+GH%6')(�,.3)'JI r 3UN�GB#^*158?B?@#�:�'UC.58(�5+GH,D78'9#&(�5/:�583-395£?@O@GH'-(�C&[�5£NÃ4U�#¢,�RsR.58(�')GB5O@GH,.%6'9O@5«*1#&?@O@GH4�78')#&(�5«:�'�,.39=V5+GH'^:�'�:�5+GY'9R],D78')#&(�5ª#�¿}58vS4�'9RD,.3958(}O@58%58(}O@5.¿S:�5+GH'9RD,D78'9#&(�'JI

5;GH')%,A:�'ÈOB4�O@O@#0XÃ?B?B'),.%/#�,.3)*+4�(�5\*1#&(sR.58(�78'9#&(<'>:�'Q(�#.OB,D78'9#&(�5*Y[�5*+'QNV5+GH%/5+O�PO@5+GH,.(<(�#�:<'<')3)3-4�?@O@GH,DGB5�NÃ'@�46*Y[�'),DGH,.%/58(sO@5�'Ã*1#&(�*15+O@OB'¡*Y[�5�')(}O@GH#S:�4�GBGB58%/#�R^'),�RS'),�(�583?@5+C&4<'9O@#�I � ?B?@#^*+'),.%/# :�5+C&3)'ª')(�?H'958%';:<'±?B'-%£=V#&3)'±, *15+GBOB'$OB'9N<'$:�'$#.C.C.5+O@OB'�ET#.GY%,.3)'*Y[�5£O@GH,DO@O@5+GH58%/#L?@NV58?B?@#�I r (Zvs4�58?@O@#¢%/#^:�#5+R^'9O@5+GB58%#¢:�'f:�#�R.5+G�?@NV58*+'9X<*+,DGB5.¿<#.C&(�'R.#&39OB,6*H[�5£4<?@5+GB58%/#4�(u?B')%�=d#&3)#�(S4�#�R.#�¿d*H[�5�*1#&?B,vS4�583f?B')%�=V#&39#\?@OB,,.:0')(<:�')*+,DGB5.I

Page 23: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

�6� ����� ! ��" "#�b��� � �$� �$����� ! � ��� � �� ���\���$�� �.Ö�DI r ?@5+C&4�58(sOB'§?B')%�=V#&3)'d')(�:�')*+,.(�#\?H')%£=V#&3)' �&% � ' +g`bk��-+ :�583-3),�C.GH,.%%,DOB')*+,^Í

Î ½ 5+O@O@5+GH5�%')(S4�?B*1#&3)5�,.3-3J��')(�'978')#�:�583)3���,.39EF,D=V5+O@#�ÍR<�:9¶� �]�+´+´+´¶�.R ³ �.R ³ ³ �+´+´+´��.R · �.R ¸ �+´+´+´

Î � ')%�=V#&3)'d:�'V#.NV5+GH,DO@#.GH'JÍ �\¿ Y ¿ �&¿tI8I+IÎ � ')%�=V#&3)'}:<'sNÃ4�(}O@5+C.C&'-,DOB4�GH,�*1#&%/5«R^'9GBC.#&395.¿.NÃ4�(}OB's5�R^'9GBC.#&3),^¿&:�4�5$NÃ4�(}OB'�¿N<4�(sOB'J¿ÉI8I+IÎ ½ 5W*+')ETGB5W�^¿)�D¿9I¶I+I8¿C>SIÎ � O@GH'-(�C&[�5�')(�C.GH,.?B?B5+O@O@#¢*1#&%/5 +�� # + BI

� I r ?B5+C&4�58(}OB'§?B')%�=d#&3-'Ã')(<:�')*+,.(�#/?B')%�=V#&3)' `b,X` �&% � ' +g`bk��-+ :�583)3-,£C.GH,.%6%,DOB')*+,^ÍÎ ½ 5+O@O@5+GH5�%,.')4<?B*1#&395�,.3)3J��')(<'978'9#\:�583)3J��,.39E�,D=V5+O@#�Í

4��65A� � �+´+´+´��64 ³ �64 ³ ³ �+´+´+´��64£·8�64p¸D�+´+´+´Î ½ ,u395+O@O@5+GH, � *H[�5¢')( C.58(�5+GB5¢')(�:�')*+,L'-3>?B')%�=d#&3)#�'-(�'978'),.395/:�583-3),�C.GH,.%\P%,DOB')*+,Z¥�,%/58(�#*Y[�5�(�#&(L?H'),/?@NV58*+'9X<*+,DO@#6:<'9R.5+GH?B,.%/58(sO@5¶©Î � O@GH'-(�C&[�5�')(L%')(S4�?B*1#&3)#�5�')(L*1#.GH?B'9R.#¢*1#&%/5£,.:L58?@58%N<'9# ~ �9'Ã� # �Å� 8/� IÎ � O@GH'-(�C&[�5vS4�,.3)?B'),.?H'QO@GH, � 5 K *1#&%/5A,.:t58?@58%N<'9# � � 5`K #.N�N<4�GB5

� � � K�IÖ I ½ 5W3)5+O@O@5+GB5�%,.'-4�?B*1#&395�,.3)3),\XÃ(�5W:�583)3J��,.3)EF,D=V5+O@#�Í

� ���±�87«�+´+´+´¶� � ³ � � ³ ³ �+´+´+´8� � ·�� � ¸D�+´+´+´GH,DN�N<GB58?@58(sOB,.(�# 4�(�?B')%�=d#&3)# O@5+GH%6')(�,.395Ì# (�#&( O@5+GH%')(<,.395.¿�*+')#^�5 ?B')%�=d#&3-'(�583)3���')(�?B'958%5�¤(c I

� I ½ 5W3)5+O@O@5+GB5�%'-(s4�?H*1#&395�,.3)3),�X<(�5W:�583-3J��,.39E�,D=d5+O@#�Í� � �Ã�@¼£�@¹U�@ºÃ�B»��+´+´+´D� � ³ �@¹ ³ �+´+´+´8�@¹ · � � ¸ �+´+´+´

GH,DN�N<GB58?@58(sOB,.(�# �1���Y� �s¬ �^~ :�'j?@#&3)'p?B')%�=d#&3-'�O@5+GH%')(<,.3)'�¥�,.(�*Y[�5ÉRS4�#.O@5¶©Y¿j*+'9#��5583958%/58(sOB'f:�'§¤ � I� I ½ 5W3)5+O@O@5+GB5�%'-(s4�?H*1#&395�:�583)3J��,.39E�,D=V5+O@#\C.GB58*1#�Í

���®�����U�+´+´+´D� ³ � ³ ³ �+´+´+´8���¡·8�^¸D�+´+´+´GH,DN�N<GB58?@58(sOB,.(�#Z?@O@GY')(�C&[�5.¿Q,.(�*H[�5¢R^4�#.O@5.¿QET#.GY%,DO@5A:<,u?B')%�=V#&3)'QO@5+GH%'-(�,.3)'>#(�#&(�O@5+GH%6')(�,.3)'J¿^*+'9#��5W583958%58(}OB'¡:�'®¥� c�¤«© � I 7 GY,.%'9O@5W395�*1#&(sR.58(�78'9#&(�'¡R^')?@O@5X<(�#É,.:Ì#.GH,^¿®R.58:�'-,.%/#Ë*Y[�5L4�(�,ZC.58(�5+GH')*+,ËN�GH#S:�4�78'9#&(�56:�583-3),0C.GH,.%6%,DOB')*+,N<4U�#/58?H?@5+GB5£')(<:�')*+,DOB,\*1#&( 4 � I

Page 24: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

� � ��������� � �6��� ! ��" " �b��� ���<� �$�����2! � ����� ������\���$��

Ä I � 5 4 � ·1�64 � ¸D�+´+´+´8�64 � ?@#&(�#WOB4�O@O@5p395�N�GB#^:�4�78')#&(�'^*1#&(639#W?@O@58?H?@#

?B')%�=d#&3)#2,x?H')(�')?@O@GY,*4�¥�395t*H[<'),.%'),.%/# 4MP�N�GB#^:�4�78'9#&(<'T©Y¿j,.3)3)#.GH,ÌNd#&?H?B'),.%/#?B*1GH'9R.5+GB5�58vs4<'9R],.3)58(}O@58%/58(sO@5 4 � ·�¾ ¸�¾ � � �§¾ I ½ 5 F � I , �D� � �+´+´+´]���?@#&(�#6*Y[�'),.%,DO@5 y.z ��~+� � y&���TÆ.~ NV5+GU4�I

� I � %58(�#0*H[�5¢(�#&(t?B'®?BNd58*+')X<*H[�'Q:�')R.5+GH?B,.%/58(sO@5.¿U,.?B?H4�%/5+GB58%/#Z*H[�563-,�N<,DGBO@5?B')(�')?BO@GH,M:�583-3),«N�GY')%,«N<GB#S:<4�78'9#&(�5;:<,DOB,jNV5+G>4�(�,MC.GH,.%%,DOB'-*+,�?B'),p')3}?B'-%£=V#&39#')(�'978'),.3)5.I

�W`XW m �Ak®cfe e /k®cfe��ªq�[®e \jg\kr 3Ã%#S:�#�N<'B�4¢?@58%/N<3)'-*15M:�'�C.58(�5+GH,DGB5�4�(�,�?@O@GH')(�C&,�:�,£4<(�,WC.GH,.%6%,DOB')*+,¢�5�vS4�583)3)#£:�'*1#&?@O@GY4�'9GB5W4�(L,.3)=d5+GH#:�'¡:�5+GH'9RD,D78'9#&(�5.I] %@^\`�+-a_+-,j`�%ocm/[Z d � � �K% � , ��+ ��% �p+�� kPa_+-,j`�%Pl Ò��Jy � , � ¤p��®� � � � � ­ � y ¬ ��y 8 O8y.��� � y\z ��|H~1�@y�&y.z � � � ��~Å�1��� ? _ � y.z9|Y~1�@��D�È�s~1�Å�TÆDy / �J� � ~£�D� � G~p­ � yDz)|H~+���\� �u� ­^�f�� ���D�Q�1� � ��~8��� � �^~+�J��y&��� � � � �§�Å� 86|H�Dz �$�}~1zFz�y ¬ �@y 8�8y.��� � y ¤ c ~��+� � �6�Y�T� '�~+�J��y.��~z)~£�+~ ¬ ­<~ � ��� 'd���)'d�Y��~+�(GyFA

Î � yA�@y&�D� � ~/�}~+zTz=2 yDz9|Y~1�@� G~/~+��� � �^~8�J��y.��y � � � �Fz¡�Å� 86|B�.z��A� � � / �JyDz9~ �Î �®¬.� ��{+� ¬ z �JyL�}~1zFz32 yDz)|H~+����G~/~8��� � �^~+�J��y.��y � � � ­ � �Å� 86|H�Dz�����~+�)8\� � yDz)~Î �®¬.� � � �8�&�Ì� � ��~1� � �x�}~+zTz=2 y.z9|Y~1�@� G~ ~+��� � �^~8�J��y.��� � � � ­ � �Y�H86|B�Dz9� � � � ��~+� O8�� � yDz)~ 4 � � ­^� �U¬ z � %b'Ã�B~Å�Å���&yw�Å� � �T�Å���@yxyx�}~1�Å���@y&%/�1� � �Ð~+��� � �^~8�J��y.��� � � ����Y�H86|B�Dz � � · � ¸R� � � � S �}~1zFz�y#'�yD�Å��~w�}~Å�1����y��D�W­ � y -+­�yDz � ��~ 'Ã�����D­ / �J� � ~4 � � · � ¸R� � � � S � � � ?

� y\�1���Y� �s¬ y ¼ � ��~p�Y�>�.�J����~ � ~ � � �d� y.��~ � y � �&�6�U�Y�H8|H�Dz �Qy]�Y�1� � ��y&���;yDzTz)~Q{+� ¬ z ��~W�D�­ � yDz9|Y~1�@�/�D�U�}~+�Y�FÆ]y / �J� � ~ %>y � �&y � �&�/�&y��Å� � �T�Å���@y�ÆD~+�H�+���s~Å�Å���@y&%È�Y� � �}��y�8/y ?@O@GY')(�C&,,.?B?B#S*+'),DOB, yDzTz=2 yDz9|Y~1�@�¢�.�Q�}~+�Y�FÆ]y / �J� � ~ ? n � � �Jy 8�y �Ã� �^~ � �^~�­ � y.z9|Y~1�@�eG~�­ � yDz)|H~+����D�$�}~1�Å�TÆDy / �J� � ~ '�~1� ¼ �8~ ¼ G~£z�y6�Y­�y6�Å���Å� �s¬ yLy]�Y�1� � ��y&��y ?

� ~1z � � � ��~Å�1�����}~1zFz32 y � y.z �T�Y�\�Å� � ��y&�J��� � y�z=2 yDz9|Y~1�@���D��}~1�Å�TÆDy / �J� � ~�ƶ�J~ � ~ty �Ã� �^~� �}��y�8/y&��� N<,DGH?@5�O@GH5+5_?"N# % ' )\+-, cm/�c >� � �Å���}~+�Y�Jy 8��z9y¢�+~ ¬ ­<~ � ��~ ¬ ��y 8�8y.��� � yFA

� � � � � ¾ � � � ¾�¥ � ©«¾ Y � ¾ +��� �Y�H86|B�Dz �ª��~1� 8�� � yDz �±�1� � � ¥ �Y©Y� ��� �&� Y � +�� ? � 2 ­ � � � �¢�Y�H8|H�Dz9� � � � ��~+�)8\� � yDz � G~ �� �^~ G~ %$�DƶÆ��Jy 86~ � ��~9%$y �Ã� �^~��Fz¡�Y�H86|B�Dz9�A� � � / ��yDz)~ ?

� 2 y.z9|Y~1�@�6� � � ¬ ­^��y � ? � G~W­ � yDz)|H~1�@���D�®�}~1�Å�FÆ]y / ��� � ~�z9y � ­^�§�1���Y� �s¬ y¢y]�H�+� � �Jy.��yG~ +�� � +�� � +�� ?7 GH,.%')O@5¢C&3)'±,.39=V5+GH';:<';:�5+GH')R],D78'9#&(�565�3),u(�#.78')#&(�5¢:�'$?@O@GH'-(�C&,u,.?B?B#S*+'),DOB,ZNV#&?�P

?B'-,.%/#¢:�5+XÃ(�'9GB5�N�GH58*+')?B,.%/58(sO@5�*1#&?H,¢?B'È')(sO@58(�:�5WNV5+Gp3)')(�C&4�,DC.C&')#6C.58(�5+GH,DO@#�:�,¢4�(�,C.GH,.%6%,DOB')*+,^I

Page 25: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

�6���6� �N�2!b���N�N�U� � � � �

E

E + E

id

E * E

id id

Q'9C&4�GH, Ö I)�Dͱ�p(0,.39=V5+GB#/:�'¡:�5+GY'9R],D78')#&(�5�NV5+G + � � +�� � +�� I

] %_^B`�+-a_+-,X`b%ocm/�� d=f�+g`�hji�kPh0hX+-,*hj%(`�% � k�&, l Ò��Jy � , � ¤p��>� � � � � ­ � y ¬ �@y 8 O8/y&��� � yAz ��|H~+��yL�&y.z � � � ��~Å�1��� ? � zfz � �s¬ ­�y ¬¶¬ �J� ¬ ~ � ~+��y&���0�&y � G~�� � �.� � y.��� � � � a ¥ � ©~B� G~«z32 � � �Y��~986~j�}~1zFz9~��Å���Å� �s¬ �^~j�D� ¼ eu¤ � ��yDz � � �^~p~Å�Y�T�Å��~«­ � yDz)|H~+�����D�f�}~1�Å�FÆ]y / ��� � ~�D� �nz�y � ­S�Q�1���Y� �s¬ yAyD�H�1� � �Jy.��y G~ ¼ ?

��`�� � k;cfe ��q�[®e.\pg/e; 5+XÃ(�'),.%/#\#.GH,\')3V*1#&(�*15+O@O@#6:<' �s~1�Å�TÆDy / �J� � ~ :�'V4�(�,�?@O@GH')(�C&,�,\NÃ,DGBOB'9GB5�:�,\4�(�?B')%\P=d#&3)#¢:�'Q*+,DO@5+C.#.GH'),L?H')(}OB,DO@OB'-*+,^I 1�4�58?@OB,A(�#.78'9#&(�5A�54�(f��,.39O@5+GH(�,DOB'9RD,6,�vS4�583)3),A:�5+C&3)',.39=V5+GH'U:<'>:�5+GH'9RD,D78'9#&(�5.I � (<*H[¡� 58?B?H,LN<4U�#�58?B?@5+GH54�?B,DOB,�NV5+GW:�5+X<(�')GB5�'-3È3-')(�C&4�,DC.C&'9#:�583)395�?@O@GH'-(�C&[�5�C.58(�5+GH,DO@5�:�,/4�(�,\C.GH,.%6%,DOB')*+,^I

� '), � , � ¤p��®� � � � �64�(�,tC.GY,.%%,DOB')*+,Ì3)'9=V5+GH, :�,.3j*1#&(}O@58?BO@#�I � '-, 4�(�,?@O@GH')(�C&,É*Y[�5Z*1#&(sOB'958(�5u,.3-%/58(�#t4�(x?B'-%£=V#&39# (�#&(xO@5+GY%')(�,.395 4�¿$*+')#^�5 , �S4 UI5U#&?H?B'),.%/#W,DN�NÃ3)')*+,DGB5�,.: 4�( '^yD�H�1�6�D�È�}~+�Y�FÆ]y / �J� � ~ 4�OB')3)'97+78,.(<:�#�4�(�,pN�GB#^:�4�78'9#&(�5:�' � *Y[�5[�,E4 *1#&%5/O@58?@OB,^I r 3QN<,.?B?B#�*1#&(<?B')?@O@5/(�583ÈGH')?H*1GH'9R.5+GB5 ?@#&?BOB'9OB4�58(�:�#L,.3?B')%�=d#&3)#Z:�'$*+,DO@5+C.#.GH'), ?B'-(}OB,DO@OB')*+,�4 *H[�5L,D=�=<'-,.%/#Ë%58?B?@# ')(�5+RS'):�58(�78,É')3;*1#.GBNV#:�583)3),�N�GB#^:�4�78')#&(�5p?H*15839OB,^I] %_^B`�+-a_+-,X`b%ocm/�� d��<k0# # , ��+ ] % � +�� kPa_+-,j`�%0l Ò��Jy � , � ¤���>� � � ��� ­ � y ¬ �@y 8 O8/y&��� � y�z ��|H~+��y��&yDz � � � ��~Å�Å����~±�Y�Jy t­ � yp�Å���Å� �S¬ y � �^~ � � � ���J~ � ~«y.z 86~ � ��­ � �Y�H86|B�Dz9�� � � ��~1� 8\� � y.z9~ 4R? Òd~ 4 � � · � ¸ � � � � e � %$yDzFz9�D��y '^�]�H�Å��y�8/�L�Y�T� � �Y�FÆD~+�@~&A

, �S4 ���� � � · � ¸\� � � � � z��Y�H86|B�Dz9� � � ��y 'E'Ã�B~Å�+~ � ��yx­ �xN<,.?H?@#�:�'M:�5+GH'9RD,D78'9#&(�5 '�~1�Zz�y ¬ ��y�8 8y O

��� � y � ? Ò '�~1�H�+�&%��+~Az9y ¬ ��y 8�8y.��� � y � �^~ � � � �Y�J�}~1�Å��y�8/� G~ � �}��y.��y��&yDz � � � ��~1�Å���&%� 86~+�J��~1�B~98�A�FzN'�~H�D� � ~ � ?] %_^B`�+-a_+-,X`b%ocm/��ed ] % �p+�� kPa_+-,j`�%Pl Ò��Jy � , � ¤p��>� � � � � ­ � y ¬ ��y 8�8y.��� � ytz � O|H~1�@y0�&y.z � � � ��~1�Å��� ? _ � y0�}~1�Å�FÆ]y / ��� � ~6�D�$­ � yA�1���Y� �s¬ y ¼`et¤ ��yV'^y.�Å���F�@~A�&y � G~­ � y�8~.-8­�~ �0/ y_A

Page 26: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

�.Ä ��������� � �6��� ! ��" " �b��� ���<� �$�����2! � ����� ������\���$��

� , µ � � · ��� ¸�� � � ��� S , ¼�&�.ÆD~ %�'�~1�6� ¬&� � I ex���^�8�D�+´+´+´]� T Y �]� % F � � F ! · G~/­ � '�y]�H�+�Ë�.�M�}~1�Å�TÆDy / �J� � ~� �^~��Y�T� � �Y�FÆD~£­ � -+­�yDz � �^~£�Å� 86|H�Dz�� � � � ��~1� 8�� � yDz)~/�D� F ?Ò<� � �.��� � ��~p�+~ I � T yDzFz��D�@y F ew¥�¤ c �© � ? _ � y��Å���Å� �s¬ y6�D��-+­<~Å�1���/��� '^�&% ¬ ~ O� ~+��y&��y � �J�KG~ � � � ­ �0� ~1�1��� � ­N86~1�@���.�N'^y]�Y�Y�È�.�§�}~1�Å�TÆDy / �J� � ~Wy '^y.�Å���F�@~£�&yDz��Å� 86|H�Dz��� � � / �JyDz9~9%;Æ���~ � ~ � �}�Jy 8y.��y EF#.GH%,/?@58(sO@58(�78'),.395_?

_ � yÉ�}~+�Y�FÆ]y / ��� � ~¢z ­ �s¬ yoT�'�y]�H�Å��G~6z�yu�8~.-+­<~ �0/ y � ��8b'��]�Å��y �1�Dz9� �&yDz>�Å� 86|H�Dz��� ?

Ïj~1�$� � �D� � yD�B~�­ � yW�s~1�Å�TÆDy / �J� � ~j�D� / ~1�@�£��'Ã�(G­�'^yD�H�Y�f�&y��xy&��­ � y � ~1�1��y��1���Y� �s¬ y � � �Å�Tƶ��y 8� � ���� �%�86~ � ���B~ � !��� � � �D� � y¢­ � y6�}~+�Y�FÆ]y / ��� � ~�z ­ �s¬ y¢y.z 86~ � �� '^y]�Y�1�0�}y � y ?

5È#&?B?H'),.%/#L:�5+X<(�')GB5£')3È3)')(�C&4<,DC.C&'9#6C.58(�5+GY,DO@#0:�,.3)3),6C.GH,.%%,DOB')*+,L,.(<*H[�5/*1#&(É3),(�#.78')#&(�5¢:�'±:�5+GH'9RD,D78'9#&(�5¢:�')*158(�:�#Z*H[�5 a ¥ � © , �8¼Ae�¤ � ¾ � �� ��¼W�&I 1�4�58?@OB,:�5+XÃ(�'978'9#&(�5¢�5\58vs4�')R],.3958(sO@5/,�vs4�583-3),¢:<,DOB,A4<?B,.(�:�#AC&3)'Q,.39=V5+GH'§:<'È:�5+GH'9RD,D78'9#&(�5.¿¡(�583?@58(<?@#£*H[�5j3J��')(<?B'958%/5ª:�'�?@O@GY')(�C&[�5«:�5+XÃ(�'9O@#W*1#&(63)5«:�5+GH'9RD,D78'9#&(�'¡�5M3)#£?@O@58?B?@#�:�'�vS4�583)39#:�5+XÃ(�'9O@#�*1#&(�C&3-'Ã,.39=V5+GH'd:�'d:�5+GH'9RD,D78'9#&(�5.I 5È5+G«*1#&(sRS')(<*15+GH?B'd:�'ÃvS4�58?@O@#\=<,.?BOB,�(�#.OB,DGB5*Y[�5�3-,6*1#&?@O@GH4�78'9#&(�5\:�'§4�(<,6:�5+GH')R],D78'9#&(�5£')(�:�4<*15£')(u%6,.(�'95+GH,¢(�,DOB4�GH,.395�3),6*1#&?@O@GY4^P78'9#&(�5¢:�'±4�(w,.39=V5+GB#Z:�';:�5+GY'9R],D78')#&(�5.I 5®GB58(�:<'),.%/#u,.:�58?@58%/N<')#u4�(�,Z:�5+GH'9RD,D78'9#&(�5NV5+G«3),?BO@GH')(�C&, Y ¥ +�� � +�� ©$*1#&(Z3),\C.GH,.%%6,DOB')*+,:�583)3���Ñ;?@58%/NÃ'9# Ö I Ö Í

� � Y � � Y ¥ � © � Y ¥ � � � © � Y ¥ +�� � � © � Y ¥ +�� � +�� ©��C&(�'�N<,.?H?@#�:<'<:�5+GH')R],D78'9#&(�5M?B'�GY'���5+O@O@5.¿^(�583)3),W*1#&?BO@GH4�78'9#&(�5�:�583Ã*1#.GBGH')?@NV#&(�:�58(}O@5

,.39=V5+GB#«:<'&:�5+GH'9RD,D78'9#&(�5.¿](�583)3J��,DC.C&'-4�(}OB,�:�58'.X�C&3)'.,.3&(�#S:�#«*1#.GHGH')?@NV#&(�:�58(sO@5®,.3&?B'-%£=V#&39#(�#&(�O@5+GY%')(�,.395�*Y[�5£?B'V?@OB,/GY')?B*1GH'9R.58(<:�#�I 7 ,.3)'dX�C&3-'d?B#&(�#'¡?B')%�=V#&3)'V:�583V*1#.GBNV#:�583)3),N�GH#S:�4�78'9#&(�56*Y[�5A?H';?@OB,Ë4�?B,.(�:�#uNV5+G�')3;N<,.?B?@#É:�'±:�5+GH'9RD,D78'9#&(�5.I � 3)3J��'-(�'978'9#L')3±?@#&39#?B'-%£=V#&39# � ¿¡,.3§N<,.?H?@#67+5+GB#�:�'U:�5+GH'9RD,D78'9#&(�5.¿V*1#.GBGH')?BNd#&(<:�5W,.3)3),6GH,.:�')*15�:�583)3J��,.39=V5+GB#�I� 3;N<GH')%/#ZN<,.?B?@#ËRS')58(�5¢,DN�NÃ3)')*+,DOB,Ë3),0N�GH#S:�4�78'9#&(�5 � � Y � 5�vs4<')(�:�'>R.58(�C.#&(�#,DC.C&')4<(}OB'f:<4�5�X�C&3)'®¥ Y 58: � ©ª,.3)3-,\GH,.:�')*15.Í

E E

− E

7 4�O@O@5£3)5W,.39O@GB5WO@GH,.?BET#.GH%6,D78'9#&(�'¡?@#&(�#6GH'9NV#.GBOB,DO@5W')( Q'9C&4�GY, Ö I �

� '�(�#.OB'«*H[�5.¿ª:<4�GH,.(sO@503), :�5+GH'9RD,D78'9#&(�5L:�'�4<(�,É?@O@GH')(�C&, :<,.3�?B')%�=d#&3)#É'-(�'978'),.395:�583-3),ÉC.GH,.%%,DOB'-*+,^¿«,.:Ð#.C&(�'�NÃ,.?B?@#t#^*+*1#.GBGB5ZEF,DGB5Z:�4�5u?B*1583)[email protected] � 4�N�NV#&(�'),.%/#É:�',�R.5+GB5/4�(�,EF#.GH%,A?@58(sO@58(�78'),.395 � ¥�*+'9#^�5 � �� �Q©«*Y[�5�(�#&(Z?B'-,64�(�,¢?@O@GH')(�C&,6:�'U?@#&3)'O@5+GH%6')(�,.3)'JI r (�C.58(�5+GH,.395.¿<Nd5+GMEF,DGB5W4<(LN<,.?B?@#:<'¡:�5+GH'9RD,D78'9#&(�5 � � �§³F¿�=Ã')?@#.C&(�,^Í

Page 27: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

�6���6� �N�2!b���N�N�U� � � � �

E

− E

E

− E

( )E

E

− E

( )E

E E+

E

− E

( )E

E E+

id

E

− E

( )E

E E+

E

id id

È')C&4�GH, Ö I � Í ; ,4�(<,/:�5+GH'9RD,D78'9#&(�5W,/4�(u,.39=V5+GB#/:�'¡:�5+GH'9RD,D78'9#&(�5

Page 28: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

� � ��������� � �6��� ! ��" " �b��� ���<� �$�����2! � ����� ������\���$��

�DI r (�:<'9RS'-:�4�,DGB5\4�( ?B')%�=V#&39#L(�#&( O@5+GH%6')(�,.395')( � *H[�5A?B,DG]�,0')3>*+,.(<:�'):�,DO@#LNV5+G3),\GH')?B*1GY'9O@OB4�GH,^Í � , 4

� I � *15+C&3)'95+GB5j4�(�,�N�GH#S:�4�78'9#&(�5 4 � �&¿SEFGH,W395«5+R.58(sOB4�,.3)'<NV#&?B?B'9=<'-3)'s?H*15839O@5MNV5+G�4�¿*1#&(u3),/vS4�,.395�5��V5+O@OB4�,DGB5�3),\GH')?B*1GY'9O@OB4�GH, � , 4 � �

5È5+GL')3MN�GH')%/# OB')Nd#Ì:�'M?H*15839OB,tNV#&?B?B'-,.%/#wX<?H?B,DGB5Z4<(�, GB5+C.#&3),Ì*H[�5Ë'):�58(}OB'9XÃ*H[�'4�(<'9R.#S*+,.%58(}O@5\,.:u#.C&(<'fN<,.?B?B#¢')3U?B')%�=d#&3)#6(�#&(0O@5+GY%')(�,.395�:�,GH'-?B*1GH'9R.5+GB5.I 1�4�58?@OB,GB58?BO@GH'978'9#&(�5ªR.58:�GH58%/#W*H[�5«?H,DG]�,�%/#&39O@#W4�OB')3)5$(�583-3J��,.%£=Ã'9O@#�:�583SN<,DGH?B')(�Cp:�'^4�(<,p?BO@GH')(^PC&,AGH')?BNd5+O@O@#�,.:É4�(�,6C.GH,.%%,DOB')*+,^I ½ 5\:�4�5�GB5+C.#&395�N�GH')(�*+')N<,.3)'f*Y[�5�?H'È4<?B,.(�#�?@#&(�#395W?B5+C&4�58(}OB'�Í

Î ] % �p+�� k0a_+-,j`�%�f�% �S'*,0# � � :L#.C&(�'fN<,.?B?@#6?H'VGH')?B*1GH')R.5�'-3¡?B')%�=d#&3)#\(�#&(�O@5+G@P%')(�,.395 4 :�'§4<(�,EF#.GH%,¢?@58(}O@58(�78'),.395 �2*Y[�5\?@OB,6NÃ'@�40,A?B')(�')?BO@GH,^Í � , ¹X4 ¥FGH')*1#.GH:�'-,.%/#�*Y[�5�NV5+G±¹0?B'd')(sO@58(�:�5�4�(�,�?@O@GH')(�C&,�:�'d?@#&3)'d?B')%�=V#&3)'�O@5+GH%6')(�,.3)'T©YI½ 5EF#.GH%/5?@58(sO@58(�78'),.3-'>*H[�56?H'QO@GB#�RD,.(�#u3)4<(�C.#04�(�,�:�5+GH')R],D78'9#&(�5395+ETOB%#&?@OW?B'*H[�'),.%6,.(�# {1�.�)86~�+~ � ��~ �0/ ��y.z �ª�Å� � �T�Å���B~ I�5È5+GW')(�:<')*+,DGB5\*H[�5,.: 4�(ÉNÃ,.?B?@#L:�':�5+GH'9RD,D78'9#&(�5A?B'j�5L,DN�NÃ3)')*+,DOB,u3-,uGB5+C.#&3-,Z395+EFOB%/#&?@O\4�OB')3-'97+78'),.%/#Ë3),u(�#.OB,D78')#&(�5¹j4 ��� �¦¹ � · I r (�*+,.?@#É:�'>N<'B�4tN<,.?B?B'±:�'®:�5+GH')R],D78'9#&(�56395+EFOB%/#&?@O�4<?B'),.%/#���� � ¥ !��� � ©MNV5+Gp7+5+GH#L#ANÃ'@�4uNÃ,.?B?B'�¥FNV5+G�4<(�#¢#LNÃ'@�4uNÃ,.?B?B'T©YI � 'Q(�#.OB'Q*Y[�54�(�,A:�5+GH'9RD,D78'9#&(�56�5\395+EFOB%/#&?@O�?@5�5�?@#&3)#A?@5�OB4�O@OB'È'§NÃ,.?B?B'È:�'§*+4�'$�5\*1#&%/NV#&?@OB,?@#&(�#6395+EFOB%/#&?@O+I

Î ] % �p+�� k0a_+-,j`�% E+-h ���S'*,0#�� � :É#.C&(�'QN<,.?H?@#LGH')?B*1GY'9RS'-,.%/#¢')3Q?B'-%£=V#&39#A(�#&(O@5+GH%')(�,.3)5WN<'B�40,¢:�58?@O@GH,^I ½ 5£EF#.GH%/5�?B58(}O@58(�78'-,.3)'f?@#&(�#A:�5+O@O@5�ET#.GH%5£?@58(sO@58(^P78'),.3)'§:�58?@O@GB5W5�3),6(�#.OB,D78')#&(�5�4�?H,DOB,u�5 ��� � *1#&(Z395�?@O@58?B?@5�58?@O@58(�?B')#&(�'¡R^')?@O@5(�583f*+,.?@#63)5+ETOB%/#&?BO+Í � ���� � 4M¹ ��� � ��¹§I

�W`�� � �/eBhjo/e@b��q�p(�,�vs4�58?@OB'9#&(�5/')%/NV#.GBOB,.(sO@5\*H[�5/GH')C&4�,DGH:�,A395�C.GH,.%%,DOB')*Y[�53)'9=V5+GB5�:�,.3Q*1#&(}O@58?BO@#(�583§39#.GB#4�?@#*1#&%5£C.58(�5+GH,DO@#.GY'§:�'¡3)'-(�C&4�,DC.C&'¡:�'¡*+4�'fRS'958(�5�5��d5+O@OB4�,DO@#A')3VN<,DGH?H')(�C��53J��,.%�=<'9C&4<'9O¶�,^I

r (sOB4�'9OB'9RD,.%/58(sO@5WNV#&?B?B'),.%/#/R.58:�5+GB5£3),?H*1GH'9O@OB4�GH,/:<'¡4�(�,/C.GH,.%6%,DOB')*+,*1#&%/5�3),:�5+XÃ(�'978'9#&(�5ª:�'^4�(\,.39C.#.GH')OB%/#¥FGH')*1#.GH?B')R.#s©fNV5+G>C.58(�5+GY,DGB5«395ª?@O@GH')(�C&[�5ª:<'S4<(�3-')(�C&4�,DCDPC&'9#�I21�4�58?@O@#�,.39C.#.GH'9OB%/#W4<?B,�395ªN�GB#^:�4�78'9#&(�'}5«*1#&?@O@GH4�'-?B*15�4�(\,.39=V5+GB#�:�'^:�5+GH'9RD,D78'9#&(�5¥F#A4�(�,/:�5+GH')R],D78'9#&(�5¶©$NV5+GM4�(�,/*15+GBOB,¢?@O@GH')(�C&,/:�,DOB,^I �ÑÐE�,.*+')395WR.58:�5+GH5£*H[�5�:�4�GH,.(sO@53),�C.58(�5+GY,D78'9#&(�5�:�'V4�(�,�?@O@GH')(�C&,�3J��,.3)C.#.GH'9OB%/#L¥�*+'9#^�5£3),�C.GH,.%%6,DOB')*+,}©$')%/NV#&(�5p*15+GBO@5?B*1583)O@5A*Y[�56GH' ��5+O@O@#&(�#Z3-,0?@O@GH4�O@OB4�GH,u:�583-395/N�GB#^:�4�78'9#&(<'JI ½ ,uvS4�58?@OB'9#&(�5A:�583)3J��,.%�=<'�PC&4�')O¶�,LN<4U�#L58?B?B5+GB5R^')?@OB,L')(sOB4�'9OB'9RD,.%/58(sO@5(�583>?@5+C&4�58(sO@5¢%#S:�#�Í�3),�C.GH,.%%,DOB'-*+, �5,.%�=<'9C&4�,£?@5j395�N<GB#S:<4�78'9#&(�'SNV5+GH%/5+O@O@#&(�#�:�'�?@5+C&4<'9GB5«,.3)%/58(�#£:�4�5M?BO@GH,.:�5M:�' �d5+GB58(sOB'NV5+GªC.58(�5+GH,DGB5W4<(�,\*15+GBOB,?@O@GH'-(�C&,^I � 'V(�#.OB'¡*H[�5�=Ã,.?@OB,/*H[�5�58?H')?@OB,/4�(�,�?@#&3),\?@O@GY')(�C&,��� ���������� ������������������! #"%$&�'��(*)&��"+� ���-,�.�/ -�0����"1��"%$&�'�2������ � 3*���/(*)&�54768(:9;3*�1�2���<"+�/���

����.�=�>��?&?��/.���3&(*�@����(*"���.��.����A"$*� ���@,�.�/ -������"+�@ B��(C9;3&�1�2������(*�-�����@"$*����.�� �1(;��� ��?��1"1�EDF"+�0��(*�1�G"1�/(H�����2���&4

Page 29: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

�6���0��� " ������������ � >

Nd5+G±*+4�'�vS4�58?@O@#�5MR.5+GH#£5«OB4�O@OB,�3),�C.GH,.%6%,DOB')*+,£:<'9R.58(}OB,£,.%£=<')C&4�,^I ; ,�vs4�58?@O@#£,DN�PN�GB#^*+*+'9#p'-(}OB4�')OB'9R.#p?H'^N<4U�#�,.(�*H[�5�GY')*+,8RD,DGB5«4�(�,pC&')4<?@OB'9X<*+,D78'9#&(�5$:�583SE�,DO@O@#£*H[�5�EF,DGB5�')3N<,DGH?B')(�CW:�'�C.GH,.%6%,DOB')*H[�5p,.%�=<'9C&4�5MGH')?B4�3)OB,�%/#&39O@#\:�'9Õ6*1#&39O@#&?B#�ÍÈ')3<N<,DGH?@5+G$*H[�5�*15+G@P*+,£:�'�,.(�,.3-'97+78,DGB5j4<(�,�?@O@GH')(�C&,W*H[�5jN<4U�#�58?B?B5+GB5MC.58(�5+GY,DOB,�')(/:<4�5�¥F#£NÃ'@�4éU%/#^:�'�(�#&(?B,�:�58*+'):�5+GB5/vS4�,.395/?@O@GH,.:<,L?@5+C&4�'9GB5.¿¡EFGH,�395\NV#&?B?B'9=Ã')3)'J¿<(�583)3),¢GH')*1#&?@O@GH4�78'9#&(�5/:�583)3J��,.39P=d5+GH#�I r (�#&39O@GH5p3),�?@O@GH4�O@OB4�GH,˯�O@GB#.N�NV#�3-'9=V5+GH,.°£:�583-395MN�GH#S:�4�78'9#&(�'�GB58(<:�5p:<'9Õ6*1#&39O@#&?B,3J��,.(�,.3)')?H'Ã,.(�*Y[�5�:�583)395�?@O@GH')(�C&[�5�*H[�5£[<,.(�(�#4�(L?@#&3)#,.39=V5+GB#:�'¡:�5+GH')R],D78'9#&(�5.I

; #.Nd#�vS4�58?@OB,ÐN<GB58%/58?B?B,�')(�EF#.GH%,.3)5t:�5+X<(�'),.%#�EF#.GH%,.3)%/58(sO@5�vS4�,.(�:�# 4�(�,C.GH,.%%,DOB')*+,L�5�,.%£=Ã'9C&4�,^Í] %_^B`�+-a_+-,X`b%ocm/�� d��E' ��+-hji�+ ���k l _ � y ¬ �@y 8�8y.��� � y�z ��|H~+��yÐ�}yDz � � � ��~1�Å��� ���Å��D� � ~£y�8|+� ¬ ­�y�8~�~��1�.z��6�+~\~1�Y�T�Å��~W­ � y/�1���Y� �s¬ y ¼�e a ¥ � © ��yDz)~ � �^~\~Å�Å�-�1��� � �A�D­<~yDz9|Y~1�Å�±�D�±�s~1�Å�TÆDy / �J� � ~ � ~ �M³ �D� � � � � z9~£�8~ ¬ ­�~ � ��� 'Ã�@�)'Ã�Å�J~8�(GyFA

Î � ~ � ³ �1� � �L�D�TÆ.~1�Y�Y�Î � ~ � �Sy ��� � ¼n� ��8~£�1���Y� �s¬ yLy]�H�+� � �Jy.��yn � � � � ÆD~1�Y�1� % � � � � G~/y 86|1� ¬ ­�yA�8~b'�~+��� ¬&� �;�1���Y� �s¬ y ¼ e a ¥ � © ~Å�Å�-�1��~�­ � �

~B�¢­ � �+�Dz��Ly.z9|Y~1�@�L�D�±�}~+�Y�FÆ]y / ��� � ~/�D� � � �^~ �Sy ¼n� � 86~£�1���Y� �s¬ yLyD�H�1� � �Jy.��y ?½ ,/*+,DGH,DO@O@5+GY'97+78,D78'9#&(�5\:�583)3J��,.%�=<'9C&4<'9O¶�,¢�5�?@OB,DOB,6:�,DOB,¢4�?B,.(�:�#�C&3-'f,.39=V5+GH'V:�'¡:�51P

GH'9RD,D78'9#&(�5.I r (A5��V5+O@OB'J¿�R^')?@O@#/39#\?@O@GB5+O@O@#/GH,DN�NV#.GBO@#/*Y[�5�*D���5£O@GH,�C&3)'V,.39=V5+GH'<:�'V:�5+GY'9R],]P78'9#&(�5�5W395W:�5+GY'9R],D78')#&(�'J¿^,.(�*H[�5�vs4�58?BO@5£4�39OB')%5jNV#&?B?@#&(�#/58?B?@5+GB5£4<?B,DO@5�NV5+G«:�5+X<(�'9GH53J��,.%£=Ã'9C&4�'9O¶�,^I ½ � #&?B?@5+GHR],D78'9#&(�5«ET#&(<:�,.%/58(sOB,.395��5M*H[�5j?@5«?B'^X<?B?H,p4<(�,pGB5+C.#&3),�NV5+G>?B*151PC&3)'95+GB5p')3Ã?H')%£=V#&39#�:�,�GH')?B*1GH')R.5+GB5j,.:A#.C&(�'dN<,.?B?B#�:�'d:�5+GH')R],D78'9#&(�5p,.3)3)#.GH,£:�4�5p:�5+GY'9R],]P78'9#&(�'�:�')R.5+GH?@5M*1#.GBGY')?@NV#&(�:�#&(�#�,.:¢,.39=V5+GH'�:�'�:�5+GH'9RD,D78'9#&(�5«:�'9R.5+GY?B'�5j:<4�5«:�5+GH'9RD,D78'9#&(�'4�C&4�,.3)'V*1#.GBGH'-?@NV#&(�:�#&(�#/,.3)39#/?@O@58?H?@#¢,.39=V5+GB#/:�'¡:�5+GH'9RD,D78'9#&(�5.I

1�4�')(<:�'J¿.,.:/58?@58%/NÃ'9#WN�GB58(<:�58(�:�#�3),�GH5+C.#&3),W395+EFOB%/#&?@O�¥F#WGH'9C&[sOB%/#&?@OY©Y¿^?B'�[�,£*H[�54�(�,�C.GH,.%%6,DOB')*+,£(�#&(0�5j,.%�=<'9C&4�,W?B5«5M?@#&39#�?@5MNV5+G®#.C&(�'<?@O@GH')(�C&,W58?B')?@O@5M4<(�,�4�(�')*+,:�5+GH'9RD,D78'9#&(�5�395+EFOB%/#&?@O�¥F#6GH'9C&[sOB%/#&?@OY©YI"$#&%('*)�+-, c /�� >� � �Y�J�}~1�Å��y�8/�Lz�y6�+~ ¬ ­<~ � ��~ ¬ ��y�8 8y.��� � y_A

� � � � � ¾ � � � ¾�¥ � ©M¾ +��Q ­<~Å�Å��y ¬ �@y 8�8y.��� � y G~�y 86|+� ¬ ­�y�'^�.� � � �~2'�~+�«z�y£�1���Y� �s¬ y +�� � + � � + � ~Å�Y�T�Å��� � ���

�D­<~£yDz)|H~+�Y�;�.�>�s~1�Å�TÆDy / �J� � ~�8�]�Å���@y.���®� � � ¬ ­^�@y � ? � ? b-+­^�TÆDyDz)~ � ��~ 8~ � ��~�~Å�Y�T�Å��� � ��D­<~��}~1�Å�FÆ]y / ��� � �dz)~�{1� 8�]�Å� ? � yp�+~ ¬ ­<~ � ��~ � �D�Å�Å�-� '^� � �}~�y.zTz=2 y.z9|Y~1�@�W� � � ¬ ­S�@y � ? � � y��pA� � ��� � � � � ��� +�� � � � ��� + � � � � � � ��� +�� � +�� � � � ��� + � � +�� � +��

� y6�+~ ¬ ­<~ � ��~�� � Æ.~ � ~ � �D�Å�Y�T� '^� � �}~¢yDzTz=2 yDz9|Y~1�@�A� � � ¬ ­^��y � ? � ��| �pA� � ��� � � � ����� � � � � ��� + � � � � � � ��� + � � +�� � � � ��� +�� � +�� � +��

Page 30: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

Ö � ��������� � �6��� ! ��" " �b��� ���<� �$�����2! � ����� ������\���$��

E

E E

+

id id

E E

id *

E

E E

id id

E E

id+

*

(a) (b)

È')C&4�GH, Ö I Ö Í ; 4�5�,.39=V5+GH'V:�'¡:�5+GH'9RD,D78'9#&(�5�:�')R.5+GH?B'VNV5+G«3),/?@O@GH'-(�C&, +�� � +�� � +�� I

�p(2')(�:�')78'9#0*H[�5�')(�:<')*+,0?@NV58?B?@#É*H[�5A4�(<,0C.GH,.%%6,DOB')*+,��5L,.%�=<'9C&4�,w�5A'-3;E�,DO@O@#*Y[�5p'-(6,.3)%/58(�#�4�(�,WN�GB#^:�4�78'9#&(�5W�5�4�?B,DOB,�3),WGY')*1#.GH?B'9#&(�56¯@:�#.N�N<'-,.°^¿s*+'9#��5�')3�?B'-%£=V#&39#,0?H')(�')?@O@GY,¢:�583-3),6N<GB#S:<4�78'9#&(�5�#S*+*1#.GHGB56,.3)%/58(�#0:�4�5\R.#&39O@56(�583-3),AN<,DGBO@5:�58?@O@GY,^I �Ñ')(<:�')*+,DOB'9R.#/?@#.N�GY,DO@OB4�O@O@#¢?@5W3-,\C.GH,.%%,DOB')*+,C.58(�5+GH,4�(u3)')(�C&4�,DC.C&')#\*1#&(0#.Nd5+GY,DO@#.GH'=<'-(�,DGH'V*1#&%/5£vS4�583)39#:�583)3J� 58?@58%/NÃ'9#�N<GB58*158:�58([email protected]

r (¢C.58(�5+GH,.395��5�%/#&39O@#\:�'9Õ6*+')3)5M:�')%/#&?BO@GH,DGB5j*Y[�5�4�(�,�C.GH,.%%,DOB')*+,¢� � �L�5�,.%�=<'�PC&4�,�NV#&')*Y[ �5/=<')?@#.C&(<,¢:�'-%/#&?@O@GH,DGB5/3J��4<(�')*+'9O¶�,¢:�583)3J��,.39=V5+GB#A:�'Q:�5+GH'9RD,D78'9#&(�5�NV5+G ��­��J��~395/?@O@GY')(�C&[�5\:�583>3)')(�C&4�,DC.C&'9#�I ; ')%#&?@O@GH,DGB5/')(sR.58*153),L(�#&(É,.%�=<'9C&4�'9O¶�,É�5?@58%N<3)')*15.Í=<,.?BOB,/58?B'9=<')GB5�4�(L*1#&(}O@GH#s58?@58%N<'9#�¿<*+'9#��5�4�(�,\?@O@GH')(�C&,\Nd5+G«*+4<'¡58?B')?@O@#&(�#:�4�5W,.39=V5+GH':�'U:�5+GH'9RD,D78'9#&(�5£#.N�N<4�GB5�:�4�5£:�5+GH'9RD,D78'9#&(�'f395+EFOB%/#&?@O/¥F#AGH'9C&[sOB%/#&?@OY©YIb5È5+G�*+,DN<'9GB5�?@54�(<,�C.GY,.%%,DOB')*+,��5W,.%�=<'9C&4�,\#.N�NÃ4�GB5�(�#A�5�=V58(�5�')(<(�,.(�78'9OB4�O@O@#\*15+GH*+,DGB5W:<'d*+,DNÃ'9GB5')3M3)')(�C&4�,DC.C&')# C.58(�5+GH,DO@#�:<,.3)3), ?@O@58?B?H,t50NV#&'«*+,DN<')GB5�� ��8~ R.58(�C.#&(�#ÌC.58(�5+GH,DO@5Ë395?@O@GY')(�C&[�5.ÍQ?@5j*D�9�5�4�(¢,.39C.#.GH'9OB%/#�*H[�5�')%/NV#&(�5«:�583-395M?B*15839O@5jNV5+G;#.C&(�'<OB'9NV#£:�'�?@O@GY')(�C&,C.58(�5+GY,D=<')395«#.N<N<4�GB5«?@5j395«N�GB#^:�4�78')#&(�'^3),.?B*+'),.(�#�,D=�=<,.?@OB,.(�78,�3)'9=V5+GBO¶�,pOB,.(sO@#�:�,£*1#&(^P?@58(sOB'9GB5*Y[�564�(<,L*15+GBOB,0?@O@GH'-(�C&,�#u4�( *15+GBO@#ZC.GH4�N�NV#�:�'>?@O@GH'-(�C&[�5/NV#&?B?B,.(�#�58?B?B5+GB5C.58(�5+GY,DO@5�?@5+C&4�58(<:�#:�'9R.5+GH?B5W?@O@GH,.:�5.I

Kj583)3),ÐN�GH,DOB')*+,^¿£?B5w?B'�R^4�#&395w?H*1GH'9R.5+GB5w4<(�,xC.GH,.%%6,DOB')*+,�(�#&( ,.%£=Ã'9C&4�,xNV5+G4�( *15+GBO@#23)')(�C&4�,DC.C&')#�¿��5Ë4�OB')395uN�GB#.C.5+O@OB,DGB5 3950N<GB#S:<4�78'9#&(�'�')( %/#^:�#tOB,.395É*H[�5Ë3),C.58(�5+GY,D78'9#&(�5Z:<'ª#.C&(�'«?@O@GH'-(�C&, :�583«3)'-(�C&4�,DC.C&'9# :�5+=�=Ã, ?@5+C&4�'9GB504<(�,É58:�4�(<, ?@#&3),?@O@GY,.:�,^I

� 5$4�(<,«C.GH,.%%6,DOB')*+,MGY')?B4�39OB,«58?B?@5+GB5ª,.%£=Ã'9C&4�,«5ª:�5+R.5$58?B?@5+GB5ª4�?B,DOB,jNV5+GUC.58(�5+GH,]PGB5�4�(AN<,DGY?@5+G��5p=V58(�5�*H[�5W?B'),�:�')?B,.%�=<'9C&4�,DOB,^I r (�E�,DO@OB'V%/#&39OB'V%/5+O@#^:�'dNd5+GªC.58(�5+GY,DGB5N<,DGY?@5+G£¥FO@GH,/*+4�'dOB4�O@OB'¡vS4�583)3)'d*H[�5�R.58:�GB58%/#/(�#&'T©;E�,.3)3)')?H*1#&(�#�?B5�3-,�C.GY,.%%,DOB')*+,/*Y[�5R^'958(�5W*1#&(�?H'):�5+GH,DOB,L�5£,.%�=<'9C&4<,^I

½ ,j:<')?B,.%�=<'9C&4�,D78'9#&(�5®:�'}4�(<,«C.GH,.%%6,DOB')*+,j*1#&(<?B')?@O@5$(�583)3),�GY')?B*1GH'9O@OB4�GH,�:�583)395±?B4�5N�GH#S:�4�78'9#&(�'U¥�,.(<*H[�5�')(sO@GB#^:�4�*158(�:�#�#\O@#.C&3)'958(�:�#�?B'-%£=V#&3)'Ã(�#&(AO@5+GH%')(�,.3-'T©>')(A%/#^:�#OB,.395A:�,03),.?H*+'),DGB56')(<,.39O@5+GH,DO@#Z'-3®3)')(�C&4<,DC.C&'9#LC.58(�5+GH,DO@#Ë5¢:�,u,8R.5+GB5�4�(t?@#&3)#Z,.39=V5+GB#:�'§:�5+GH'9RD,D78'9#&(�5�NV5+G«OB4�O@O@5�395W?@O@GH')(�C&[�5.¿�,.(�*H[�5£vs4�583)395�NV5+G«395£vS4�,.3)'V58?B'-?@O@5+R],.(�#N<'B�4,.39=V5+GH'V:�'§:�5+GH'9RD,D78'9#&(�5�,.?B?@#^*+'),DOB'f(�583)3),�C.GH,.%%,DOB'-*+,6:�'VN<,DGHO@58(�78,^I

Page 31: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

�6���0��� " ������������ Ö �

stmt

if expr then stmt

if expr then stmt else stmtE 1

E2

C2C1

Q'9C&4�GH, Ö I � Í;�p(0,.39=V5+GB#:�'¡:�5+GY'9R],D78')#&(�5�NV5+G«3),/?@O@GH')(�C&,stmt

if expr then stmt

expr then stmtE 1

E2

C1

if

else stmt

C2

È')C&4�GH, Ö I � ͱ�p(0,.39O@GH#6,.39=V5+GB#/:�'¡:�5+GH')R],D78'9#&(�5�Nd5+G«3-,/?@O@58?B?B,?BO@GH')(�C&,

��������� ���� ������������� ��������! "��

r (\vS4�58?@OB,�?@5+78'9#&(�5ª*1#&(<?B'):�5+GH'-,.%/#p4<(\58?@58%/N<'9#�*+3),.?B?H')*1#�:�'^,.%£=<')C&4�'9O¶�,p5«?B4�*+*158?B?H'9R],:�')?B,.%�=<'9C&4�,D78')#&(�5.I r 3<*1#&?BO@GH4�O@O@#\*H[�5pN�GB#^:�4�*15«')3<N�GB#.=<3)58%,\�5p4<(�#£:�58'<N<'B�44�?H,DOB'Ã')(OB4�O@OB'f'¡3)')(�C&4�,DC.C&'¡:�'VN�GB#.C.GY,.%%,D78'9#&(�5.ͱ')3¡*1#&(�:�'978')#&(�,.395�'9ETP�OB[�58(^P�583)[email protected]

½ ��,.%�=<'9C&4�')O¶�,Ð(�,.?B*15Ì:�,.3WE�,DO@O@# *H[�5Ì4�(�*1#&?@O@GY4�O@O@#�*1#&(<:�'978'9#&(�,.3)5 N<4U�# ,�R.5+GB54�(�?@#&3)#�GH,.%#w#.N�N<4�GB5uN<4È�#w58?B?@5+GH5Ë*1#&%/NÃ395+O@#�5É,8R.5+GH5É:<4�5uGH,.%6'JI 5;GB58(�:�'),.%#')3V?@5+C&4�58(sO@5�?@NV5+7+7+#&(�5£:<'VC.GH,.%%,DOB')*+,6:�583$5Q,.?B*+,.3JÍ

�Å� 8/� � + ~ � 'd� � �b% ` �1� 8/�¾ + ~ � 'd� � �b% ` �1� 8/� % �-# % �Å� 8/�¾ k�� � � + �_,j'*k0` �\+"$#&(�?B'):�5+GH'),.%/#0')3;*1#&%,.(�:�# + � · � ��%(` + � ¸ � �b% ` � · % � #&% � ¸ :�#¶R.5A?B4�N�NV#DP(�'),.%/#w*Y[�5 � ·+� � ¸D� � ·A5 � ¸Z*1#.GBGH')?BNd#&(<:�#&(�#t,Ì*1#&?@O@GH4�O@OB'p*1#.GBGB5+O@OB'/¥F58?@N�GH58?B?B'9#&(�'5¢*1#&%,.(�:<'T©YIL5È#&?B?H'),.%/#Z'-(�:�'9R^'):�4�,DGH5�:�4�56,.39=V5+GH'>:�'®:�5+GH'9RD,D78'9#&(�5NV5+G�'-3®*1#&%,.(^P:�#Z:�,DO@#�It"ª' �#w�5A:�#¶RS4�O@#Ë,.3±EF,DO@O@# *Y[�5A3-,0C.GH,.%%6,DOB')*+,uNV5+GH%5+O@O@5A:�'±?@NV58*+'9X<*+,DGB5*1#&%,.(�:�'¡*1#&(�:<'978'9#&(�,.3)'V*1#&(u5£?@58(�78, % �-# % ?@58(�78,(�58?H?B4�(�R^')(�*1#&39#�I

KM583-395 Q'9C&4�GH5 Ö I � 5 Ö I � ?@#&(�#Ì%/#&?@O@GH,DOB'�:�4�5Z,.39=V5+GH'M:�'j:�5+GH'9RD,D78'9#&(�5Z:�'9R.5+GH?B'Nd5+Gj3),?@O@GH'-(�C&,:�,DOB,A*H[�5�?@#&(�#A:�')%/#&?@O@GY,D78'9#&(�5W:�583§EF,DO@O@#�*H[�5�3),/C.GH,.%6%,DOB')*+,A*H[�5,D=�=<'),.%/#/*1#&(�?H'):�5+GH,DO@#0�5�,.%£=<')C&4�,^I

Page 32: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

Ö � ��������� � �6��� ! ��" " �b��� ���<� �$�����2! � ����� ������\���$��

� '),.%/#Z'-(}O@5+GB58?H?B,DOB';,Z:�')?B,.%�=<'9C&4�,DGH563),LC.GH,.%6%,DOB')*+,^I r ( 5Q,.?B*+,.3±5�,.(�*H[�5A')(,.39O@GY'M3)')(�C&4�,DC.C&'M:�'«N�GB#.C.GH,.%%6,D78'9#&(�5Z?H')%')3)'�?H'«X<?B?H,w4�(�,tGB5+C.#&3),Ì*H[�5ËNV5+GH%/5+O@O@5:�'j')(sO@5+GBN�GB5+OB,DGB5Z395Z?@O@GY')(�C&[�50*1#&%/5ÉvS4�583)3),t*Y[�5Z,D=<=<'),.%/#Ì*1#&(�?B'):�5+GY,DO@#�?@#.N�GY,t')(4�(<,%,.(�'95+GY,64�(�')R.#S*+,^I ½ ,GB5+C.#&3),¢*H[�5\?B'U?@5+C&4�5�:<')*15�*Y[�5£#.C&(�' % � #&% :�5+R.5£58?B?B5+GB5,.?B?B#S*+'),DO@#Ë,.3 � ��% ` (�#&(�,.?B?@#^*+'),DO@#uNÃ'@�4ÉRS'-*+')(�#�IL1�4<')(�:�'Q3J��,.39=V5+GB#L:�';:�5+GH'9RD,D78'9#&(�5¯�C&')4<?@O@#&°0�5£vS4�583)39#/:�'�Q'9C&4�GH, Ö I � I

1�4�58?@OB,GH5+C.#&3),6:�'§,.?B?@#^*+'),D78'9#&(�5WNÃ4U�#58?B?@5+GH5�')(�*1#.GHNd#.GY,DOB,:�'9GB5+O@OB,.%58(}O@5�(�583)3),C.GH,.%6%,DOB')*+,�:�')?B,.%�=<'9C&4<,.(�:�#&3),^I ½ ��'):�58,0�5/vS4�583)3),¢:�'§:<'9RS'-:�5+GB5£'È*1#&%,.(�:�'È')(Ë:�4�5OB'9NV#&39#.C&')5.Í�DIj'f*1#&%,.(�:�'M¯@%,DOB*H[�58:<°^¿<GH,DN�N<GB58?@58(sOB,DOB'f:�,.3)3),\*+,DO@5+C.#.GH'-,6?B')(sOB,DO@OB')*+,8/y&� � �^~H� �Å� 8/� ¿&*H[�5�?@#&(�#p'S*1#&%,.(�:�'^')(�*+4�'SOB4�O@OB'^' � �b% ` [�,.(�(�#j4�( % �-# % ,.?�P?@#S*+'-,DO@#p#.N<N<4�GB5$(�#&(�?B#&(�#p*1#&%6,.(�:�'S*1#&(�:�'978'9#&(<,.3)'<¥FC.58(�5+GH,DOB'�:<,.3)3),«*+,DO@5+C.#.GH'-,?B')(sOB,DO@OB')*+,L� � � � � � � ©

� Ij'f*1#&%,.(�:�'M¯@4�(�%,DOB*Y[�58:�°^¿�GH,DN<N�GB58?@58(sOB,DOB'f:�,.3)3-,�*+,DO@5+C.#.GY'),6?B'-(}OB,DO@OB')*+,­ � 8/y&� � �^~H� �Å� 8/� ¿�*H[�5�?@#&(�#�OB4�O@OB'V'Ã*1#&%6,.(�:�'d*1#&(�:�'978'9#&(<,.3)'<*Y[�5�[�,.(�(�#�?@#&39#')3®GH,.%# � ��%(` ?B5+C&4�'9O@#Z:<,uvS4�,.3)?B'),.?H'®*1#&%,.(�:�#Ë#.N�N<4�GB56*H[�5A[�,.(<(�#u,.(�*Y[�54�(0GH,.%# % �-# % ¿V%,¢')(uvS4�58?@O@#A*+,.?@#A'-3§*1#&%,.(�:�#6EFGH,6')3 � ��%(` 5\3J� % �-# % �5\4�(*1#&%,.(�:�#w¯@%6,DOB*H[�58:�°65£')3¡*1#&%,.(<:�#6:�#.NV#/3J� % � #&% �5u¯@4<(�%,DOB*H[�58:�°^I

r ( vS4�58?@O@#0%/#^:�#�#.C&(�'>*1#&%,.(�:�#�*Y[�5,DN�N<,DGH5/O@GH,�4�( � ��%(` 58: 4�( % �-# % (�#&(N<4È�#WX<(�'9GH5«*1#&(64�( � �b% ` (�#&(6,.?H?@#S*+'-,DO@#�?@5+C&4�')O@#�:�,W4<(,.39O@GB#�*1#&%,.(�:�#�vs4�,.3-?B'),.?B'JIѱ*+*1#¢3),/(S4�#�RD,/C.GH,.%6%,DOB')*+,^Í�1� 8\� � 8/y&� � �^~H� �Å� 8/� ¾ ­ � 8y.� � �^~H� �Å� 8/�8y.� � �^~B� �1� 8\� � + ~ �9'Ã� � �b% ` 8/y&� � �^~H� �Å� 8/� % �-# % 8y.� � ��~B� �Å� 8/�¾ � � � � � � �­ � 8y.� � �^~B� �Å� 8/� � + ~ �9'Ã� � �b% ` �Å� 8/�¾ + ~ �9'Ã� � �b% ` 8/y&� � �^~H� �Å� 8/� % �-# % ­ � 8y.� � ��~B� �Å� 8/�r (�Q'9C&4�GH, Ö I Ä �5W:�')?@5+C&(<,DO@#�3J��4<(�')*1#\,.39=V5+GB#�:<'Ã:�5+GY'9R],D78')#&(�5jNV5+G�3),�?@O@GH')(�C&,�*Y[�5

,D=�=Ã'),.%/#w*1#&(�?H'):�5+GH,DO@#w?B#.N�GH,^I 1�4�58?@OB, R.#&3)OB,w(�#&( ?B'�N<4U�#t*1#&?BO@GH4�'9GB5Z4�(Ð,.39=V5+GB#?B'-%')395p,/vs4�583-39#�:�' Q'9C&4�GY, Ö I � NV5+GH*Y[ �5�ETGY,�'-3ÃN<GH')%/# � �b% ` 5W3�� % �-# % (�#&(�Nd#&?H?B'),.%/#%/5+O@O@5+GH5�4�(L*1#&%,.(<:�#w¯@4�(�%6,DOB*H[�58:�°6*1#&%/5£4�(0*1#&(<:�'978'9#&(�,.3)5�?B58(�78,3J� % �-# % I

�W`�� ] ]P\ �®eHq$bVe���e�b��q k Z\c¡k �>k /k±g�[>q /k®hjmYe#\�Z¢k;c¡q$b \Mcfe½ ,A?BO@GH4�O@OB4�GH,�:�'Q4�(É,.39=V5+GB#�:�'Q:�5+GH')R],D78'9#&(�5�NV5+G�4�(�,A*15+GBOB,0?@O@GY')(�C&,u�5%#&39O@#0')%\PNV#.GBOB,.(sO@5¢(�583;*1#&(}O@58?@O@#É:�583>NÃ,DGH?B')(�CL5¢:�58'®*1#&%/N<'-3),DO@#.GH'®')(tC.58(�5+GH,.395.I r (�EF,DO@OB'J¿È?@54�(<,�ETGH,.?B56:�'>4�(t3-')(�C&4�,DC.C&'9#L:�'QN<GB#.C.GH,.%%,D78')#&(�5R^'958(�5?@O@GH4�O@OB4�GH,DOB,0')( %6,.(�'951PGH,2*1#.GBGH5+O@OB,2GH')?@NV5+O@O@#2,.3)3),Ì?B4�,Ì?@58%,.(sOB')*+,^¿p3-,wO@GH,.:<4�78'9#&(�5É:�583)3),�?@O@58?B?B,2GY')?B4�39OB,58?@O@GH58%,.%/58(sO@5�?@58%/NÃ3)')*15.I

5È5+G;*+,DNÃ'9GB5ª%/5+C&3)'9#�vS4�58?@O@#�,.?@NV5+O@O@#�EF,.*+*+'-,.%/#W3J� 58?@58%/NÃ'9#p*+3-,.?B?B')*1#�:�583)3)5±58?@N<GB58?�P?B')#&(�'§,DGH')OB%/5+OB')*H[�5.I 5È#&?B?H'),.%/#�NV58(�?B,DGB5�:�'U4<?B,DGB5�3���,.39=V5+GB#¢:�'È:�5+GH')R],D78'9#&(�5�:�'U4�(�,

Page 33: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

�6���6�����P�$����X�b��� �d�� ���� �2!<���\� �N�2���U� �N�����$�� �H� !b�b���!�� Ö.Ö

unmatched_stmt

if expr then stmt

matched_stmt

stmt

then matched_stmt else matched_stmtexprif

non_cond non_cond

E

E

C C

1

1

2

2

È')C&4�GH, Ö I Ä Í ½ ��4<(�')*1#�,.39=V5+GB# :�'A:�5+GH')R],D78'9#&(�5�NV5+Gx3),�?@O@GY')(�C&, *1#&( 3), (S4�#¶R],C.GH,.%%,DOB')*+,^I

*15+GBOB,£58?BN�GB58?B?B')#&(�5M,DGH'9OB%5+OB')*+,WNV5+G±*+,.3-*1#&3),DGH(�5�')3�RD,.39#.GB5.I � 'Ã*1#&(�?B'):�5+GH'�,.:¢58?@58%/N<'9#3J��,.39=V5+GB#L')( Q'9C&4�GH, Ö I Ö ¥�,}©�NV5+G£3),L?@O@GH'-(�C&, + � � + � � + � I ½ � #&?H?@5+GBRD,D78'9#&(�5EF#&(�:�,]P%/58(}OB,.3)50�5¢*Y[�56#.C&(�';(�#S:�#u')(sO@5+GH(�#05+OB')*Y[�5+O@OB,DO@# � *1#.GHGH')?@NV#&(�:�5/,.:�4�(�,0?@#.O@O@#S51P?@N�GB58?B?H'9#&(�5«')3�*+4<'�RD,.39#.GB5MNÃ4U�#W58?B?@5+GH5j*+,.3)*1#&3),DO@#/')(=<,.?@5j,.'ÃRD,.39#.GH'�,.?B?B#S*+'),DOB'd,.'<(�#S:�'X�C&3)'JI � :L58?@58%/NÃ'9#6?@5£'-3¡(�#S:�#[�,4�(L4�(<')*1#/X�C&3)'9#/5+OB'-*H[�5+O@OB,DO@# +�� ,.3-39#.GH,/')3VRD,.39#.GB5,.:Z58?H?@#0,.?B?@#^*+'),DO@#É�5')3UR],.39#.GH5\,.?H?@#S*+'-,DO@#0,.3)3J��'):�58(sOB'9X<*+,DO@#.GH5�')(Ë%/58%/#.GY'), ¥�?@OB'),.%/#N<,DGH3),.(�:�#A:�583-3),�?@58%,.(sOB')*+,L:�'Q58?@58*+4�78')#&(�5:�583QN�GB#.C.GY,.%%,}©YI � 5')3Q(�#^:�#L[�,�O@GB5X�C&3)'�5+OB')*Y[�5+O@OB,DOB'V*1#&( � � � GH')?BNd5+O@OB')R],.%/58(sO@5M,.3)3)#.GH,W')3�?H4�#WRD,.39#.GB5j?H,DG]�,£3),£?@#&%%,:�583<RD,.39#.GB5�,.?B?@#^*+'),DO@#/,.3ÃN�GH')%/#�X�C&3)'9# � *1#&(�')3�RD,.39#.GB5�,.?B?@#^*+'),DO@#/,.3V?@58*1#&(�:�#\X�C&3)')#� ¥�vS4�58?@OB'MR],.39#.GY'«?@#&(�#Ì*+,.3)*1#&3),DOB'«GY')*1#.GH?B'9RD,.%/58(sO@5¶©YI r (ÐvS4�58?@O@#Ì%/#^:�#w')3ªRD,.39#.GB5,.?B?@#^*+'),DO@#6,.3)3),\GY,.:�')*15\�5£')3VRD,.39#.GB5£:�583)3J� 58?@N�GH58?B?B'9#&(�5�,DGH'9OB%5+OB')*+,^I

� vS4�58?@O@#uN<4�(sO@#É�5¢*H[�'),DGH#LNd5+GY*H[��563),�?@O@GY4�O@OB4�GH,L:�583-3J��,.39=V5+GB#�?B'QGH'9R.583),AEF#&(�:�,]P%/58(}OB,.3)5.ÍÈ:�5+R.5�GY')?@NV58*+*H[�'-,DGB5$3)5$GH5+C.#&395�¥�?@58%,.(sOB')*Y[�5¶©Q:�'SRD,.3)4�OB,D78'9#&(�5�:�583-395ª58?@N�GB58?�P?B'9#&(�'^,DGH'9OB%5+OB')*H[�5j,DÕ6(�*H[��5p')3^RD,.39#.GB5M,.?B?B#S*+'),DO@#�,.3)3),�GH,.:�'-*15«?B'),�vS4�583)39#�C&')4<?@O@#�I>KM#&'*1#&(�#&?B*+'),.%/#LvS4�58?@O@5�GB5+C.#&395.Íp?@#&(�#AGB5+C.#&395/:�'È,.?B?@#^*+'),DOB'9R^'9O¶�,65\:�'UN�GB58*158:�58(�78,^I � :58?@58%/N<'9#�¿s3J��,.39=V5+GB#�:�' Q'9C&4�GH, Ö I Ö ¥F=d©>(�#&(\N<4U�#�58?B?B5+GB5«4�?B,DO@#WNV5+G>RD,.3)4�OB,DGB5«3�� 58?@N�GB58?�P?B'9#&(�5WNV5+GH*Y[ �5�3),¢?B4�,?BO@GH4�O@OB4�GH,¢(�#&(0GY')?@NV5+O@OB,3),/N<GB58*158:�58(�78,¢:�583)3J� #.NV5+GH,DO@#.GB5 ��:�'%/#&39OB'9N<3-')*+,D78'9#&(�5pGH')?@NV5+O@O@#,.3)3�� #.Nd5+GY,DO@#.GB5���:�'¡,.:�:<'978'9#&(�5.I

r (6vs4�58?BOB,£?@5+78'9#&(�5«R.58:�'),.%/#�*1#&%/5M58?@N<GH')%/5+GB5«3���,.?B?@#^*+'),DOB'9R^'9O¶�,�5M3),�N<GB58*158:�58(�78,ETGH,É#.NV5+GH,DO@#.GY'�=<')(�,DGY'�¥�*+')#^�5Ë*H[�5uN�GB58(�:�#&(�#É:<4�50,DGBC.#&%/58(sOB'T©/*1#&(�395LN�GB#^:�4�78'9#&(<':�583)3),$C.GH,.%%6,DOB')*+,^I ½ � 58?@58%/N<')#«*H[�5$4�?@5+GB58%/#�R^'),ªR^'),�?B,DG]�,Mvs4�583-39#�:�583)395Q58?@N�GH58?B?B'9#&(�',DGH'9OB%/5+OB')*Y[�5W*1#&(u3���,.:�:�'978'9#&(�5.¿^3-,?@#.O@O@GH,D78'9#&(�5.¿Ã3),/%/#&3)OB'9N<3)')*+,D78')#&(�5.¿�3),/:�'9R^')?B'9#&(�5j5395�NÃ,DGB58(}O@58?H'UO@#&(<:�5�EFGH,A(s4<%/5+GH'UET#.GH%6,DOB'È:<,¢4�(<,¢?@#&3-,A*+')ETGH,Ë¥FNV5+G�?B58%/N<3)'9XÃ*+,DGB5�3),

Page 34: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

Ö � ��������� � �6��� ! ��" " �b��� ���<� �$�����2! � ����� ������\���$��

O@GH,DO@OB,D78')#&(�5£5£(�#&(0')(sO@GB#S:<4�GBGB5�:�5+O@OB,DC&3)'f'-(s4�OB'-3)'T©YIr (�(�,.(�78'9OB4�O@O@#L*H[�'-,DGH'),.%/#A=V58(�5/*1#&?B,L')(sO@58(�:�'),.%/#ANV5+G�,.?B?@#^*+'),DOB'9R^'9O¶�,A5�N<GB58*151P

:�58(�78,^IÎ � ?B?B#S*+'),DOB')RS'9O¶�,^I�5;GB58(�:�'-,.%/#�,.:�58?B58%/N<'9#/3J� #.NV5+GH,DO@#.GB5 ��I r (�4�(�,�58?@N�GB58?H?B'9#DP(�5�*1#&%/5 Ö � � � � (�#&(¢�5�*H[�'),DGH#�,�vS4�,.395 � :�5+R.5ª58?B?@5+GB5�,.?B?@#^*+'),DO@#�')3S(s4<%/5+GB#

� NV#&')*Y[ �5p(�5p[�,�4�(�#�,�:�58?@O@GH,�5�4<(�#�,�?B')(�'-?@O@GH,6¥ � �5�4�(6#.NV5+GH,DO@#.GH5p=Ã')(�,DGH'9#5�vS4�')(<:�'�NV5+G±58?H?@5+GB5�,DN�N<3)')*+,DO@#\[�,�=<')?@#.C&(�#�:�'d:�4�5p#.NV5+GH,.(�:�'JÍÈ4�(�#\,.3)3),�?B4�,:�58?@O@GH,¢5�4<(�#6,.3)3),¢?B4�,¢?B')(�')?BO@GH,')(Z(�#.OB,D78'9#&(�5\')(�X<?H?B,}©YI ½ ,¢GB5+C.#&3),A:�'§,.?H?@#DP*+'),DOB'9R^'9O¶�,�?@NV58*+'9X<*+,jN�GB#.N�GY'9#pvS4�58?@O@#�NÃ4�(}O@#�ÍQ?@5«?B'^?@OB,D=Ã')3)')?B*15ª*H[�5M')3 ��,.?B?@#^*+'),,£?B')(<')?@O@GH,�,.3)3)#.GH,W')3 � RS')58(�5j,.?B?B#S*+'),DO@#�,.3 � ,.3)3),W?H4�,W?B')(<')?@O@GH,�5p3),W?@O@GH4�O@OB4�GH,?@#.O@OB')(sO@58?B,¢:�583)3J� 58?@N�GH58?B?B'9#&(�5�:�'¡*+4<'§?@#.N�GY,��5�3),?BO@58?B?B,:�'±¥ Ö � � © � � ¥�:�#¶R.53),�?@O@GH4�O@OB4�GY,Ë�5?BOB,DOB,�58?@N<3)')*+')OB,DOB,A*1#&(w3J��4�?@#�:�583)395�N<,DGB58(sO@58?B'T©YI\Kj583>*+,.?@#0:�',.?B?@#^*+'),DOB'9R^'9O¶�,,/:�58?@O@GY,3),/?@O@GH4�O@OB4�GH,/?B,DGB5+=<=d5�?@OB,DOB, Ö � ¥ � � � ©YI

Î 5®GB58*158:�58(�78,^I 5;GB58(�:�'),.%#u:�4�5#.NV5+GH,DO@#.GY'±*+3),.?H?B')*+';*1#&(ÌN�GH58*158:�58(�78,u:<'9R.5+G@P?B,^Í � 5 �&I r ( 4�(�,¢58?@N�GH58?B?B'9#&(�5\*1#&%/5 Ö � � � � ,.(<*1#.GH,�4�(�,AR.#&39OB,�(�#&(Ì�5*H[�'),DGH#¢,vS4�,.395W#.NV5+GH,DO@#.GH5�:�5+R.5�58?B?@5+GB5�,.?B?@#^*+'),DO@#¢')3 � *158(sO@GH,.395.I ½ ,/GH5+C.#&3),:�'fN�GH58*158:�58(�78,GY')?@#&39R.5WvS4�58?@O@#¢N<4�(sO@#6NV#&(�58(�:�#/C&3-'¡#.NV5+GH,DO@#.GH'§?H4u3)'9R.583-3)'¡:�'�PR.5+GH?B'§:<'¡N�GB58*158:�58(�78,^I � 5.¿<*1#&%/5¢�5�:�'f?@#&3-'9O@#�¿<')3 ��[�,/N�GB58*158:�58(�78,6%,DC.C&')#.GB5:�583 � ,.3)39#.GY,A'-3 � RS'958(�5\,.?H?@#S*+'-,DO@#u,.3 �56vS4�')(�:<'§3),L?@O@GY4�O@OB4�GH,A58?@N<3-')*+'9OB,DOB,:�583)3J� 58?@N<GB58?B?B'9#&(�5��5 Ö � ¥ � � � ©YI

5È5+GQ?B*1GH'9R.5+GH5;4�(�,�C.GY,.%%,DOB')*+,j395®*+4�'&N<GB#S:<4�78'9#&(�']GH'��<5+O@OB,.(�#M395;?H*15839O@5;:�'.N<GB58*151P:�58(�78,M5ª,.?B?@#^*+'),DOB'9R^'9O¶�,j=<')?@#.C&(�,j')(�(�,.(�78'9OB4�O@O@#M:�5+XÃ(�'9GB5;'sRD,DGH's3-'9R.583)3)'&:<'&N�GB58*158:�58(�78,^Ir (�#.C&(�'f3)')R.583)39#\:�'dN�GB58*158:�58(�78,=<')?@#.C&(�,\')(<?@5+GH'9GB5�4�(�#\#/N<'B�4¢#.NV5+GH,DO@#.GY'f*H[�5�[�,.(�(�#3),¢?@O@58?B?B,AN�GH58*158:�58(�78,É¥�,.:Z58?B58%/N<'9#A')3 � 58:Ë')3 Y (�583)395�58?@N�GB58?H?B'9#&(�'f,DGY'9OB%/5+OB')*Y[�5¶©5�NV5+Gª#.C&(�'¡3)'9R.583)3)#�?B'V')(�:<')*+,�?B5�3���,.?B?@#^*+'),DOB'9R^'9O¶�,�:�5+R.5�58?B?@5+GB5�,/:�58?@O@GY,�#/,/?B'-(�')?@O@GH,^I5È5+G«#.C&(�'§3)'9R.583)39#\:�5+X<(<'9O@#�?H'¡*1GB58,4�(�?B')%�=V#&39#\(�#&(LO@5+GH%'-(�,.395�:�583)3),�C.GH,.%%6,DOB')*+,^Ir 3)3)4�?BO@GH'),.%/#\')3dN�GB#^*158:�')%/58(sO@#:�'V*1#&?@O@GH4�78'9#&(�5W:�583)3)5pN<GB#S:<4�78'9#&(�'d*1#&(04�(�58?@58%N<'9#�I5;GB58(�:�'),.%#\'§?@5+C&4�58(sOB'f3)'9R.583)3-'d:<'VN�GB58*158:�58(�78,ETGH,\C&3-'V#.Nd5+GY,DO@#.GH'f,DGH'9OB%5+OB')*+'JÍ�DI��,DO@O@#.GH'\¥�?B')%�=d#&3)# ®©Y¿;*+')#^�5ZC&3)'ª#.NV5+GH,.(�:�'�I��p,.(�(�#t'-3�%,DC.C&'9#.GB5u3-'9R.583)39#É:�'N�GB58*158:�58(�78,Nd5+Gj:�5+X<(�'978')#&(�5.I

� I 7 5+GH%6')(�'¡¥�?B')%�=V#&39# 7 ©Y¿}*+'9#��5M,DN�NÃ3)')*+,D78'9#&(�5�:�' �j#��sI��p,.(�(�#�3),�?@O@58?B?B,�N<GB58*151P:�58(�78,^¿V')(�EF5+GH'9#.GB5�,6vS4�583)3-,/:�58'¡E�,DO@O@#.GH'JI ½ ��,.?B?B#S*+'),DOB')RS'9O¶�,0�5�,6?H')(�')?@O@GY,0¥�*1#&%/5�5£:�'¡?@#&3)')O@#(�58'f3)')(�C&4�,DC.C&'T©

Ö IjÑ;?@N�GH58?B?B'9#&(�'±¥�?B')%�=d#&3)#6Ñ$©Y¿V*+'9#^�5/,DN�N<3)')*+,D78')#&(�5£:�' � 5 Y I��p,.(�(�#A3),N<GB58*151P:�58(�78,/N<'B�4�=<,.?B?B,/:�'VOB4�O@OB'JI ½ ��,.?H?@#S*+'-,DOB'9RS')O¶�,A�5�,/?B')(�'-?@O@GH,^I5È5+Gp')3¡3)'9R.583)3)#�N<'B�4L,.39O@#6?B'¡?B*1GY'9R.#&(�#?@58%/NÃ3)')*158%/58(sO@5£395�N�GB#^:�4�78')#&(�'JÍ

� � �6¾^�£¾(� � �d¾ >¾�¥ � ©

Page 35: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

�6����� �\� ���b�� �$� � � � �N� � ���2! ��� �$��!b� ��� �d! � ����� !b� " " �b���� �$� Ö �

E

E + T

E +

T

F

F

4

3

T F*T

F

5

7

È')C&4�GH, Ö I � ͱ�p(0,.39=V5+GB#/:�'¡:�5+GH'9RD,D78'9#&(�5�NV5+G«3J� 58?@N�GH58?B?B'9#&(�5 Ö � � � � � � I� '^(�#.OB'�*H[�5M4�(�,p58?@N�GH58?B?B'9#&(�5ªO@GH,WN<,DGB58(sO@58?B'V�5M:�,�*1#&(�?H'):�5+GH,DGH?H'S*1#&%5M4�(\#.NV5+GH,.(�:�#Nd#&'-*H[��5j3)5MN<,DGB58(sO@58?B'ÃET#.GH78,.(�#�3���')(}O@5+GHN�GB5+OB,D78'9#&(�5p:�'<4<(�,�58?@N�GH58?B?B'9#&(�5jNV5+GH%/5+O@O@58(�:�#:�'V583)4�:�5+GH5�3)5�GB5+C.#&395£:�'VN<GB58*158:�58(�78,/5�,.?B?@#^*+'),DOB'9R^'9O¶�,/?@5�#^*+*1#.GBGB5.I

KM583È3)'9R.583-39#6?B4�*+*158?H?B'9R.#�3J��,.?B?@#^*+'),DOB'9R^'9O¶�,6,�?B'-(�')?@O@GH,L�5\58?@N<GB58?B?B,¢%/58:�'),.(sO@5�3-,GH'�P*1#.GH?B'9#&(�5 ,x?B'-(�')?@O@GH,Ì(�583)3)5ZN�GH#S:�4�78'9#&(�'JI �p(�,2N�GB#^:�4�78')#&(�5uGH'-*1#.GH?B'9RD,�,x?H')(�')?@O@GY,N�GB#�R.#^*+,Ë')(�E�,DO@OB'®3J��,.:�:�#&?H?B,.%/58(sO@#Ë,Z?B')(�')?BO@GH,L:�5+C&3)'®,.3)=d5+GY'®:�'®:�5+GY'9R],D78')#&(�56*H[�5A3),4�?B,.(�#�5«vS4�58?@OB,�?@O@GH4�O@OB4�GH,�*1#.GBGH')?BNd#&(<:�5;N�GH#.N�GH'9#�,.3)3),pGB5+C.#&3),�?B58%,.(}OB'-*+,W:�'^*+,.3)*1#&39#*1#&(03J��,.?B?@#^*+'),DOB'9R^'9O¶�,/,?H')(�')?@O@GY,^I ½ 5�N�GB#^:�4�78'9#&(<'Ã?@#&(�#�Í

� � � � � ¾�� � � ¾ �� 'Ã(�#.OB'Ã*Y[�5W4�(¢EF,DO@O@#.GB5�N<4È�#�58?B?B5+GB5�?@58%/N�GB5pR^')?@O@#\*1#&%/5�4�(6O@5+GY%')(�5/¥FN�GB#^:�4�78'9#&(�5� � ��©YI

5È5+GM')3¡?B4�*+*158?H?B'9R.#5£4<39OB')%/#/3)'9R.583-39#�?H'f[�,^Í� � � � ��¾ � Y ��¾ �

r (ÉC.58(�5+GY,.395#.C&(�'Q583958%58(}O@#Ë:�'Q4�( 3)'9R.583)3)#ANÃ4U�#�58?B?@5+GB5R^')?@O@#0*1#&%5583958%/58(sO@#u:�5833)'9R.583)39#p?B4�*+*158?B?H'9R.#6¥�')(\vs4�58?@O@#�*+,.?@#WN<,DGBOB'-*1#&3),DGB5ª?B'^C&4�,DGH:�'S3),pN�GB#^:�4�78')#&(�5 � � ��©YI

� O@O@GH,8R.5+GY?@#63J��')%Nd#&?H'978'9#&(�5M:�583)395pGB5+C.#&395�:�'dN�GB58*158:�58(�78,�5�:�'V,.?B?B#S*+'),DOB')RS'9O¶�,�,D=�P=<'),.%/#�#.O@O@58(S4�O@#�4�(<,jC.GY,.%%,DOB')*+,W(�#&(/,.%£=<')C&4�,�NV5+G®395ª58?@N�GB58?B?H'9#&(�'^,DGH'9OB%/5+OB'-*H[�5.Ir ( È')C&4�GH, Ö I � �5±%/#&?BO@GH,DO@#�4�(W,.39=V5+GB#M:<'}:�5+GH')R],D78'9#&(�5®NV5+GU3J� 58?@N<GB58?B?B'9#&(�5 Ö � � � � � � I��`�� �uk��®g/e �§i\k e �\q�]Ãk ZAk®c mBq ] �>cfe�bÃbVo\c¡q e¢hMc¡q � � q$b¡e��

�§i\kr 3^EF#.GH%,.3)'-?B%/#W:�583)3)5$C.GY,.%%,DOB')*Y[�5j3)')=d5+GH5$:�,.3<*1#&(}O@58?@O@#\%/5+O@O@5p,W:�')?@NV#&?B')78'9#&(�5$Nd#DP*H[�'<5p?@58%N<3)')*+'�?BO@GH4�%/58(sOB'�NV5+G±3-,£:�58?B*1GY'978'9#&(�5M:�58'Ã3)'-(�C&4�,DC.C&'J¿}%6,£vS4�58?@OB'd%/58*+*+,.(�'�P

Page 36: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

Ö.Ä ��������� � �6��� ! ��" " �b��� ���<� �$�����2! � ����� ������\���$��

?B%6'J¿<?@5�=d58(u4�?B,DOB'f5�*1#&%£=Ã')(�,DOB'J¿ÃNd5+GY%/5+O@O@#&(�#¢:<'f:�5+X<(�')GB5Wvs4<,.?B'fOB4�O@OB'U'§*1#&?@O@GY4�O@OB':�58'fOB'9N<')*+'V3)')(�C&4�,DC.C&'¡:�'VN�GB#.C.GY,.%%,D78'9#&(�5.I

r ( vS4�58?@OB,L?@5+78'9#&(�5,.(�,.3)'97+78'),.%#�:<,A4<(ZNÃ4�(}O@#0:<'UR^')?@OB,AN<'B�4Ë*1#&(<*1GB5+O@#uvS4�58?@OB'%/58*+*+,.(<')?B%'¡5�R.58:<'),.%/#6vS4�,.3)'¡?@#&(�#395�O@58*+(�')*Y[�5£:�'V=<,.?B5WNV5+G«4�?B,DGH3)'�I

r (�(�,.(�78'9OB4�O@O@#�*D���5j:�,�(�#.OB,DGB5j*H[�5«?@5«(�#&(�*+'<?@#&(�#�:�5+X<(�')78'9#&(�'sGH')*1#.GH?B')R.5�¥�:<'9GB5+O@O@5#')(<:�'9GB5+O@O@5¶©;(�583)395�N�GH#S:�4�78'9#&(�'<:<'d4<(�,�C.GH,.%%,DOB')*+,/,.3-39#.GH,\?B4�=<')O@#�NV#&?B?H'),.%/#\:�'9GB5*Y[�5�')3Ã3-')(�C&4�,DC.C&'9#�C.58(�5+GH,DO@#L�5W4�(A')(�?H'958%/5MXÃ(�'9O@#�I r (�EF,DO@OB'Q�5�C.GH,D78'95�,.3)3),�GH')*1#.GY?B'9#&(�5*Y[�5�NV#&?B?B'),.%/#�C.58(�5+GH,DGH5W4�(L(s4<%/5+GB#/')(�X<(<'9O@#�:�'ÃN<,DGB#&3)5�*1#&(u4�(�(s4�%5+GB#\X<(�'9O@#\:�'N�GH#S:�4�78'9#&(�'JI

� :L58?@58%N<'9#3),\C.GH,.%6%,DOB')*+,� � R@4/¾ 9�54 � R(9.¾ �5 � 9 RV¾ �

(�#&(2*1#&(sOB'958(�5�GH')*1#.GY?B'9#&(�5¢5�'-3±3)'-(�C&4�,DC.C&'9#ZC.58(�5+GH,DO@#Ð�5L?@58%/N<3-')*158%/58(sO@5A3J��'-(�?B'958%/5� R0R(9¶�.R �]�:9�9 RÃ�:9 ���&I

½ ,£GY')*1#.GH?B'9#&(�5MN<4U�#�58?B?@5+GB5�:�'9GH5+O@OB,£#\%�4�OB4�,^I ½ ,£GH')*1#.GH?B')#&(�5£�5�:�'9GB5+O@OB,�vS4�,.(�:�#')(�4�(�,ÉN�GB#^:�4�78')#&(�5L')3«?B')%�=V#&39# :�'�O@58?@OB,��5Z4�?H,DO@#w,.(�*H[�5Z,.3)3J��'-(}O@5+GH(�#t:�583«*1#.GBNV#,.3)%58(�#�4�(�,pR.#&39OB,^I®�p(\58?@58%/N<'9#�:�'SGH'-*1#.GH?B'9#&(�5ª:�'9GH5+O@OB,��5«vS4�583)3)#�(�583)3),jN�GB#^:�4�78'9#&(�54 � R(4 (�583)3),\?@5+C&4�58(sO@5£C.GH,.%6%,DOB')*+,^Í

� � R@4/¾ 9�54 � R@4/¾ �5 � 9 RV¾ �

½ ��')(}O@GH#S:�4�78'9#&(�5:�'±vs4�58?BOB,0GH')*1#.GY?B'9#&(�5[�,Z')(�*1GB58%58(}OB,DO@#Ë')3;3)'-(�C&4�,DC.C&'9#LC.58(�5+GY,DO@#:�'<4�(6(S4�%/5+GB#�')(�X<(�')O@#�:<'�N<,DGB#&395.I r 3<3)'-(�C&4�,DC.C&'9#�#.GH,6�5W�S9 9 R<�:9 �¶�Jc/� R S �£¾ T(KÐ�S�&I

r 3&N<GB58*158:�58(sO@5p�5ª4�(W58?B58%/N<'9#M*+3-,.?B?B')*1#\¥�*H[�'),.%6,DO@#pGY')*1#.GH?B'9#&(�5®?@58%/N<3)'-*15;,j:�58?@O@GH,#AGH')*1#.GH?H'9#&(�5£:�'È*1#^:�,}©«*1#&(É')3Uvs4<,.395�?B'§NV#&?B?@#&(�#¢C.58(�5+GH,DGB5\N<,DGB#&3)5�:�583§OB'9NV#6¹ R=S;º:�#¶R.5�TwN<4U�#658?B?@5+GB5�NV#&?B'9OB'9R.##�,.(�*Y[�5�7+5+GH#¢5�¹É5�º0?@#&(�#¢:�583)3)5�?@O@GH'-(�C&[�5WN�GH5+X<?B?@#5£?H4�Õ6?B?@#�I :>58:<'),.%/#OB4�O@OB'§'¡*+,.?B'JÍ

Î 5U#&(<'),.%/# T��x�^�@¹ , Ç+�@º , 9¶I ½ 5�N�GB#^:�4�78')#&(�'}*Y[�5ªNd#&?H?B'),.%/#�?B*1GH')R.5+GB5�?@#&(�#� � R � ¾ 9¶I r (�vS4�58?@O@#\%/#^:�#�')3d*+,.?@# T , �¢�5pC.58(�5+GH,DO@#/:�'9GB5+O@OB,.%/58(sO@5�*1#&(')3f*+,.?@#A=<,.?@5£:�583)3),/GH'-*1#.GH?B'9#&(�56¥ � � 91©�5�')3§*+,.?@#6GH'-*1#.GH?B'9R.#C.58(�5+GH,OB4�O@O@5�395,.39O@GB5£?@O@GY')(�C&[�5�*1#&(^T(Kx� R¢O@5+GY%')(�,.(�:�#\*1#&(u')3¡*+,.?@#6=Ã,.?@5 9¶I

Î 5U#&(<'),.%/# T Kl�^�@¹ , Ç8�@º , 9¶I ½ 5LN�GB#^:�4�78'9#&(<'±*Y[�5LNV#&?B?B'),.%/# ?B*1GY'9R.5+GB5?@#&(�# � � R � ¾6R(9¶I r (�?@5+GB58(�:�#(�583§*+,.?@#A=<,.?@5�4�(�, RA5+R^'9OB'),.%/#A:�'f?B*1GY'9R.5+GB5?@#&39#64�(<, 9M5£#.O@O@58(�'),.%/#6*Y[�5�T(KÐ�/'-(LOB4�O@O@5£395W?BO@GH')(�C&[�5�C.58(�5+GY,[email protected]

Î 5U#&(<'),.%/# T(KÐ�^�@¹ , 9¶�@º , Ç8I21�4�58?@OB,pR.#&39OB,�:�#.=�=Ã'),.%/#�')(�?@5+GH')GB5.¿],.3-3J��')(�'978')#:�583)395p?@O@GH')(�C&[�5.¿svS4�,.3)*1#&?B,�:�'<:<'9R.5+GH?@#�:�,.3)395bRÃI±"ª'Ã?@#&(�#\:�4�5j%#S:�'<NV5+G;E�,DGH39#�Í�DIj�MOB')3-'97+78,DGB5±4<(�,«GH'-*1#.GH?B'9#&(�5$,M?B'-(�')?@O@GH,�¥�*+'9#^�5ª'-3}?B')%�=V#&39#M:�'}O@58?@OB,�?B'sO@GB#�RD,,.3)3J��')(�')78'9#�:�583¡*1#.GBNV#:�583)3),�N�GB#^:�4�78')#&(�5¶©YÍ � � � RL¾ 9 RÃI r 3¡*+,.?@#+T(Kx�*+'f[�,/#.=�=Ã3)'9C&,DO@#,/')(�?B5+GH'9GB5�4�(�,�R�(�583¡*+,.?@#¢=<,[email protected]

Page 37: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

�6����� �\� ���b�� �$� � � � �N� � ���2! ��� �$��!b� ��� �d! � ����� !b� " " �b���� �$� Ö �� IM�jOB')3)'97+78,DGB5�4�(�?B'-%£=V#&39#�(�#&(�O@5+GH%')(<,.395p'-(6N<'B�4¢NV5+G�')(�?B5+GH'9GB5p')3<N<GB5+X<?B?@#5�NV#&'SC.58(�5+GH,DGB5.¿}*1#&(GH')*1#.GH?B')#&(�5$,�:�58?@O@GH,^¿}395�RÃÍ � � 9�4£¿_4 � R(4 ¾&R<IKj583§*+,.?@#+T����¢vs4�'¡%5+O@O@5+GB58%%/#�¿V*1#&%/5�*+,.?B#6=<,.?@5�:�583)3),\GY')*1#.GH?B'9#&(�5:�58?@O@GY,/?B4 4�¿<3),/?@O@GH'-(�C&,\RS4�#.OB,^Í � � 9�4�¿04 � R@4¦¾.Ç8I

Î 5È#&(�'),.%/# T � �^�@¹ , 9¶�@º , �]I\KM583>*+,.?B#0:�'Q4�(ËN�GB5+X<?B?B# ~ :<'È4<(Ë?H4�Õ6?B?@#?B'),.%# #.=�=<3)'9C&,DOB'ª,t4<?B,DGB5L4�(x?B')%�=V#&39# ')(2N<'B�4ÌNV5+G')3$N�GB5+XÃ?B?@#�Í � � 9�4£¿4 � R(4 ¾ �¶I � (�*Y[�56vS4�'J¿¡NV5+G T K��^¿È,8RSGB58%%/#u%58?B?@#0*1#&%/56*+,.?B#0=<,.?@5R �¶I

�j(f��,.39O@GH,É,DN�N<3)'-*+,D78'9#&(�5�%/#&39O@#t4�?B,DOB, :�583)3),ZGH')*1#.GH?B')#&(�5A:<'9GB5+O@OB,��5uvs4�583)3),Ë*H[�5Nd#.O@GH58%%/#\*H[�'),.%6,DGB5L¯@*158(}O@GH,.3)58°\5�*Y[�5�%/5+O@O@5W')3d?B')%�=V#&39#�*Y[�5�GH')*1#.GBGB5�,.3)3J��'-(}O@5+GH(�#:�'f:�4�5�?@O@GH')(�C&[�5£:�'¡O@5+GH%6')(�,.3)'J¿Ã')(0%/#^:�#¢:<,/C.58(�5+GH,DGB5.¿¡(�583-395W*H[�'-,.%,DO@5�GY')*1#.GH?B'9R.5.¿4�(Ð(S4�%/5+GB#w4�C&4�,.395Z:<'«?B')%�=V#&3)'�,w:�58?BO@GH,t5u,�?B')(�'-?@O@GH,^I ½ � 58?@58%/NÃ'9#w*+3),.?B?H')*1#��5.Í� � R � 9�¾ R 9¢*Y[�50C.58(�5+GY,t')3�3)')(�C&4�,DC.C&'9#Ì� R S 9 S ¾�T K �S�&I r 3�*+,.?@#w=<,.?B5.¿$')(vs4�58?BO@#�OB')Nd#�:�'V,DN�N<3)'-*+,D78'9#&(�5.¿SGH,DN�N�GB58?B58(}OB,�3),\?@O@GH')(�C&,�*Y[�5�R],\,�X<(�'9GH5j,.3)3J��'-(}O@5+GH(�#:�58'¡?B')%�=V#&3)'dC.58(�5+GH,DOB'f')(u(s4�%5+GB#4�C&4�,.395.I�,.*+*+'),.%/#�4�(\,.39O@GB#�58?@58%/N<')#�ÍU4�(�,pC.GH,.%6%,DOB')*+,�NV5+G>')3s3-')(�C&4�,DC.C&'9#�� R ¸ S�9 9 � SL¾

T����S���5 � � R=R � �2¾H9 9¶I ½ , GH')*1#.GY?B'9#&(�5x¯@*158(sO@GH,.3958°��5Ë4�?B,DOB,wNd5+G6C.58(�5+GH,DGB55+R.58(}OB4�,.3-'d*1#.NÃ'95j:�' R0R/5 �j')(A(s4�%5+GB#�4�C&4<,.395j5�')3Ã*+,.?@#\=<,.?@5�9�9«N<4U�#�R.58(�'9GB5�4�?B,DO@#?B4�=<'9O@#0¥HT , �}©ª#6:�#.NV#,.3)*+4�(�5�,DN�NÃ3)')*+,D78'9#&(�'V:�583-3),\N�GH')%6,�N<GB#S:<4�78'9#&(�5/¥HT(KÐ�}©YI

�pRSRS'),.%58(}O@5¢�5�NV#&?B?B')=<')395�4�?B,DGH5�')(�?H'958%/5W5\,.(�(�'):<,DGB5£'§:<4�5£OB'9NÃ'¡N�GH')(<*+'9N<,.3)'¡:�'GH')*1#.GH?B')#&(�5�:�'9GB5+O@OB,/*Y[�5£,D=�=<'-,.%/#/RS'-?@O@#�I � :058?@58%/N<'9#(�583)3),�C.GH,.%%,DOB'-*+,

� � R � 9�¾ � 55 � 9�5l¾�� �RS'958(�5;,.(�(�'):<,DOB,«4�(�,�GY')*1#.GH?B'9#&(�5;:�58?@O@GH,�¥�*1#&(�4<(WN�GB5+XÃ?B?@# �>5$4�(W?B4�Õ6?B?@# � �S©§,.3)3J��')(�PO@5+GH(�#\:�'<4�(<,WGH')*1#.GY?B'9#&(�5A¯@*158(}O@GH,.3)58°^I r 3ÃGH')?H4�39OB,DO@#6�5�')3Ã3)')(�C&4�,DC.C&')#/� R6S �m9 � � ��9)SL¾T>��� �Ð�S�&I � '�(�#.OB'Ã*H[�5p395<9$C.58(�5+GY,DO@5p:�,.3-3),�GH')*1#.GH?H'9#&(�5¯@*158(sO@GH,.3958°\?@#&(�#£'-(4�C&4�,]P395u(S4�%/5+GB#w:�583)395^Rÿ«%/58(}O@GH5ZvS4�583)3950')(sO@5+GH(�5Z[�,.(�(�#w4<(�(S4�%/5+GB#w:<'�#S*+*1#.GHGB58(�7+5')(�:�'9NV58(�:�58(}[email protected]

½ 5AR],DGY'),.(}OB'$:�'$vs4�58?@O@#Ë?H*H[�58%,ËNV#&?B?@#&(�#ZGH')C&4�,DGH:�,DGB5¢'$*+,.?H'±=Ã,.?@5¢5�'±N�GB5+X<?�P?B' �]?B4�Õ¢?B?B'JI � :�58?@58%/N<')#�¿jR.#&3958(<:�#x?@NV58*+'9X<*+,DGB5É39#x?@O@58?B?@# 3)')(�C&4�,DC.C&')#�¿j%,2*1#&(T K��^¿<?B,DGB58%%#*1#&?@O@GB5+O@OB'§,6')(�?@5+GH')GB5p?H'),\4�(�,�R¢*Y[�5£4�(<,R9p,.(�*Y[�5£(�583-3),\?@58*1#&(�:�,N�GB#^:�4�78'9#&(�5�')(LvS4�58?@O@#6%#S:�#�Í

� � R � 9�¾&R ��5�95 � 9�5 ¾ � �

r 3¡*+,.?@# � KÐ�^¿<')(sR.58*15£*+'f,�RsGH5+=�=V5�Nd#.GHOB,DO@#6,� � R � 9�¾ � 55 � 9�5l¾p9 � �

�j(0,.3)O@GB#*+,.?@#¢'-(}O@5+GB58?H?B,.(}O@5�5�vs4�583-39#')(L*+4�'¡395 9p')(sO@5+GH(�5W(�#&(0[�,.(�(�#?H4�Õ6?B?@#�Í

Page 38: 1023!,+' .4 ( !, (5computerscience.unicam.it › tesei › didattica › ProgrLab20042005 › m… · +,- .+,+, / 1023!,+' . 4 ( "!, (5 687:9=@?BA ?DC E FGEHF IKJLJNM3OLIKJLJLP

Ö � ��������� � �6��� ! ��" " �b��� ���<� �$�����2! � ����� ������\���$��

� � R � 9�¾ � 55 � 9�5 ¾.Ç��GH,w')3M3)')(�C&4�,DC.C&')#w?B'«NÃ4U�#w?B*1GH')R.5+GB5Z,.(�*Y[�5Z*1#&%5w� R S �m9 � ¾ � � T K �S�

NV#&')*Y[ �5�395 9�'-(}O@5+GH(�5W?B'f?@#&%%6,.(�#¢,vS4�583)3)5W,.3)3),\X<(�5�:�583)395W?@O@GY')(�C&[�5.I ; ,DO@#A*H[�5�3959ªXÃ(�,.3)'�?@#&(�#�?@58%/N�GH5M')(5+C&4<,.3<(S4�%/5+GB#�,.3)395bR\')(�')78'),.3)'�?B'�[<,£*H[�5j')3�R^')(�*1#&3)#�� � T58?@N<GH')%/5W58?H,DO@OB,.%/58(}O@5/3),¢?B'9OB4�,D78')#&(�5.I � 5£')3U*+,.?@#¢=Ã,.?@5£:�'�5 ET#&?B?B5 9�')(sR.58*15\*H[�5\Ç,.3)3)#.GH,£,�RsGB58%6%/#/*H[�5�*D���5�?@58%/N�GB5�,.3)%/58(�#�4�(�,R9�')(sO@5+GH(�,�5.¿�:�'<(S4�#¶R.#�¿�Nd#.O@GH58%%/#58?@N<GH')%/5+GB5�3),/*1#&?H,6*1#&(0')3VR^')(�*1#&3)# � K T>I

½ ,�%�4�OB4�,�GH')*1#.GY?B'9#&(�5£�5�%/58(�#�4�?H,DOB,�:�583-3),WGH'-*1#.GH?B'9#&(�5p:�'9GB5+O@OB,£NV#&')*H[��5��5�%/58(�#*Y[�'),DGH,/5�NÃ4U�#')(�:�4�GBGB5pEF,.*+')3-%/58(}O@5W'-(�5+GBGB#.GB5.I�:>58:<'),.%/#&(�5£?B#&39#4�(�58?@58%/NÃ'9#�Í

� � R(44 � 9�55 � 9�4�¾ �

"ª#&%/5u?B'ªR.58:�5Z(�#&(x*D���5uGH')*1#.GY?B'9#&(�5L:�'9GH5+O@OB, ')(x(�58?B?B4<(�,ËN�GB#^:�4�78'9#&(�5.¿±%, 3),N�GH#S:�4�78'9#&(�5�:�'m4�*H[�'-,.%, 5 5£4�(�,\N<GB#S:<4�78'9#&(�5�:�'m5 *H[<'),.%, 4�I r 3f*+,.?@#6=Ã,.?@5/�5?@#&3)#�(�583)395�N�GB#^:�4�78'9#&(�'U:�'\5AI r (ÉvS4�58?@OB'Q*+,.?B'>?B'ÈN<4È�#�?B58%/N<3)'9XÃ*+,DGB5£O@GH,.?BET#.GH%6,.(�:�#3),\C.GY,.%%,DOB')*+,'-(L4�(�,\58vS4�'9RD,.3958(}O@5W*1#&(uGH')*1#.GH?H'9#&(�5�:�'9GB5+O@OB,^I � ,.?@OB,¢?@#&?@OB'9OB4<'9GB5.¿�,NV#&?@O@#6:<'m4£¿�3),\NÃ,DGBO@5£:�58?@O@GY,:�583)3),\?B4<,/4�(�')*+,�N�GB#^:�4�78')#&(�5.Í

� � R 9�55 � 9 9�5l¾ �

r 3f3)')(�C&4�,DC.C&'9#A�5� R�9 ¸ S ! · �W¾&T��Ð�S�&I5È5+G�*1#&(�*+3)4�:�5+GB5£GH'-*1#.GH:�'),.%/#?B#&3),.%/58(sO@5�*Y[�5�:<'¡ETGH#&(}O@5\,.3)3),/GY')*H[�')58?@OB,:�'U:�,DGB5

4�(<,6C.GH,.%6%,DOB')*+,ANV5+G�4<(Z*15+GBO@#03-')(�C&4�,DC.C&'9#Z�5\=d58(�5�*15+GH*+,DGH5?@58%/N�GB5\:�'È:�'9R^'):�5+GB5395�?@O@GH'-(�C&[�5j:�583Ã3)'-(�C&4�,DC.C&'9#�')(¢:<'9R.5+GH?B'Ã*+,.?B'J¿^#.C&(s4<(�#\GH')*1#&(�:�4<*+'9=<')395�,\4�(�#�?B*H[�58%,(�#.O@#�ͱGH')*1#.GH?H'9#&(�5�:�58?@O@GH,^¿�?H')(�')?@O@GY,�#�¯@*158(}O@GH,.3)58°^I<,.*+*+'),.%/#¢4<(¢58?B58%/N<'9#/X<(<,.395.I � 4�N�NV#&(�'),.%#�:�'VR.#&395+G«:<,DGB5W4�(�,�C.GH,.%%6,DOB')*+,

NV5+G«')3¡?@5+C&4�58(}O@5�3)')(�C&4�,DC.C&')#�Ía , � R S 9 � � �2R � ¾ T��Ð�^��� KÐ�S� cZ�S9 R ¸ S ¾ �d��� �Ð�S�

r (�(�,.(�78'9OB4�O@O@#WNV#&?B?B'-,.%/#£(�#.OB,DGB5p*H[�5p')3�3)'-(�C&4�,DC.C&'9#�5jC&' �,W(�,DOB4�GY,.3)%/58(sO@5j:�'9R^')?@#')(A:�4�5p*+,.?B'V:�,.3)3J��4<(�'9#&(�5.I r 3ÃN�GH')%#�*+,.?@#A�5�GH')*1#&(�:�4<*+'9=<')395�,\4�(�,£GH')*1#.GH?H'9#&(�5j:�58?@O@GH,*1#&(�?B4�Õ6?B?B# ¥ R S 91©�?@5+C&4�'9OB,L:�,u4�(�,AGH')*1#.GH?H'9#&(�5*158(sO@GH,.395Z¥�� � �=R � ©p56')3Q?@58*1#&(<:�#*+,.?@#u�5£3),/?@58%/NÃ3)')*15�C&')4�?@OB,DN<Nd#&?H'978'9#&(�5�:�'¡:�4�5�GH')*1#.GH?B')#&(�'V:�58?@O@GB5.Í

� � 4¦¾p5 �4 � R(4�¾ 9 � ; R; � � ; RL¾ �5 � 9�5l¾DÇ� � R0R � ¾DÇ