z - columbia universityhgs/teaching/ap/slides/tools.pdf3 9-mar-02 advanced programming spring 2002...

13
1 9-Mar-02 Advanced Programming Spring 2002 9-Mar-02 Advanced Programming Spring 2002 2 ! " # $ % 9-Mar-02 Advanced Programming Spring 2002 3 & " 9-Mar-02 Advanced Programming Spring 2002 4 ( " ) # $ 9-Mar-02 Advanced Programming Spring 2002 5 " " * + * , ( ( * 9-Mar-02 Advanced Programming Spring 2002 6 )

Upload: others

Post on 24-Jan-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: z - Columbia Universityhgs/teaching/ap/slides/tools.pdf3 9-Mar-02 Advanced Programming Spring 2002 13 % ~ 3 1 1 ˆ ) ˙)ˆ ’ ˆ ˆ ˝ ˆ ˆ ˆ ˛ ˇ ˆ ˇ ˆ 9-Mar-02 Advanced Programming

1

9-Mar-02 Advanced ProgrammingSpring 2002

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

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

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

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

9-Mar-02 Advanced ProgrammingSpring 2002

2

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

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

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

� ���� �

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

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

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

� � � �� ��� � � �� �" �� � �� ��� � � ��� � �

� � � � � ��� � �� ��� �� �# � �� � � $

� % �� � ���

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

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

9-Mar-02 Advanced ProgrammingSpring 2002

3

# ���$���� �%�

� � � �� � � �� � ����� � ��� � �� � & ��� �� � � ���

� � � " ��' � � �� �� �� � ����� ��� � �� �� � �� � �� ��&('�)*,+ - . / 0 12 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 02 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2,32 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2,42 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 -2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2,52 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2,687 9;: < 72 2 2 2 2 2 2 2 2 2 2 2 2 2 2 28=,>2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2,68> ? / @ 0BA >2 2 2 2 2 2 2 2 2 2 2 2 2 2 C DE=GF 6 . /

9-Mar-02 Advanced ProgrammingSpring 2002

4

H �� �I��%�

� � � � � ����� � �� �� �� � � ���� � �� ������� � � � ��' ��� � � ���� � � ��

� � � � ( � � ��" �� � �� � ��� ��� ��� � � �� �� � � �) � �� �

� � ���# � �$

�&�JLKMKONQPSRUTLVW;X;Y;Z\[ ] ^�[ _L`;acbed ]Bf beW;X;Y beW;X;Y;Z\[ ] ^\[ _W;X;Y ghW\[ ] ^�[ _L`;aibed;]Bf beW;X;Y beW X;Y ghW\[ ] ^\[ _bed;]Bf bej;W k;l;m;^nf o bep q;r sut qhW lnf kevhw xe_ y beW;X;Y bhW;X;Y;Z xBj;]BfB[ ] ^�[ _

9-Mar-02 Advanced ProgrammingSpring 2002

5

# ���z���{�� ��|�}�~�����{� �O�\����������

� � � � � ������ � � �� � ����� ���" ���� � � � �� ���� �

� � �� � ��� � �� ���� " �����* ����� � � �

� � � �� ���� � � � �� ���� � �+ � �

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

� � ����� � � �� � �����* , ( � � ( � � �* �� � � �� ���

9-Mar-02 Advanced ProgrammingSpring 2002

6

# ���z���{�� ��|�}��� ���� �O�\����������

� � �� � ��� �� �� � � �� � ��� ��� �� � � � �� �����������S�G�������������u���������������������8�E�n�S�����e�� � ��� � � ��� � �� � �� � � � ���� ) ���� � � �

� � �� � �  �¡,¢� L£�¤M¥8¦!¥G§¨¢�©E¦¨ª~«

Page 2: z - Columbia Universityhgs/teaching/ap/slides/tools.pdf3 9-Mar-02 Advanced Programming Spring 2002 13 % ~ 3 1 1 ˆ ) ˙)ˆ ’ ˆ ˆ ˝ ˆ ˆ ˆ ˛ ˇ ˆ ˇ ˆ 9-Mar-02 Advanced Programming

2

9-Mar-02 Advanced ProgrammingSpring 2002

7

���z�~�{�� ��

� - � � � �� � � ���� �� �� ��� �� �� ��� � ����� � �� � �� � ��� ��� � � � � � � �� � �� �� �

� . �� �� � �� ��� �� � ���" ��� ����) / �� �� � �� �� �� ��� �� �� ��� �

� - � � � �� � �� �� � ���� ��� �� ��

� �� ������� � ( � � � � 0

� � � � � ���� � �� �# � �� � �� ��� � $

9-Mar-02 Advanced ProgrammingSpring 2002

8

����������� �{������� ��

operating systemkernel

libraries

user program

user space

kernel memory space

printf()

write()

9-Mar-02 Advanced ProgrammingSpring 2002

9

����������� �{������� ��

� ��� � ���� �� �����" �� ��� �� � �1 � � �� � � � �� ��� ��� �� �� � � � � ��� �� ���

����������

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

� ��, ��'

� � � �� ��� � � �2 � ��� ���� � �� � �� � ����� � �

� � � �� ��� � �� � 1 �� � � �� ��� ��� �� � ��� ��� �������������

� ��� " �� � ��� 1 ����� ��

� ��� " �� � � � ��� � ��' �� � ����� � ��� � �� �� �� � �G������� ������������� � �� ���1 � � �� � ��� � ��� �� � ����1 ���

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

9-Mar-02 Advanced ProgrammingSpring 2002

10

�{�����~� �����$�� �

� lnf d;];]¨k�[ ^hd l� !� Z " �$# % k�[ ^hd l % t8y '&(& )(*(& +!& , t8y '&(& )!*(& - y(.(/�kBf 0hZL`U_o;ohkhj # y y;y;y;y;y;y;y;y�t�1;_ 2!3 t�4 5 6 7;x'5 * 8:9�; 4 5 6 7;x;s'5(< 7 *=; 4 5 6 7;x * >$* , t? 8 4 x$4 5(< @ 8 7 *=; ? 8 4 x 8 r 6hr�tGv _\t8y(/¨`�y '&(& A 8 y;y;y;yf � ] ^hW " � j k;l!B # % bed;]Bf beW;X;Y beW g�[ ] ^�[ _ % t % bed ]Bf beW;X;Y bhW g�[ ] ^�[ _ % tG_ y!3 A /¨`U_ +^hj �!C'# % b("hknf beW g beW g�[ Z ^ C m;X 0 % t�6 x'5 9 6hr:D E:/ * f;f F:3 * r 6 * r 7^hj �!C'# % bh^hj l b , q , p lhZ;W beW;X Y beW;X;Y;Z\[ ] ^�[ _ % tG6 x'5 9 6hr:D E:/ * f;f F:3 * r 6 * r 7^hj �!C'# % bh^hj l b , q , p lhZ;W(1\[ A beW;X;Y b;beW;X;Y;Z\[ ] ^�[ _ % t�6 x'5 9 6hr:D E:/ * f;f F:3 * r 6 * r 7^hj �!C'# % bed;]Bf bh^hj �!C H X C beW;X Y beW;X;Y;Z\[ ] ^�[ _ % tG6 x'5 9 6hr:D E:/ * f;f F:3 * r 6 * r 7^hj �!C'# % bed;]Bf beW ^hZ khW beW;X;Y bhW;X;Y;Z\[ ] ^�[ _ % t�6 x:5 9 6hr:D E:/ * f;f F:3 * r 6 * r 7[;[;[X ^hZ lhW # _\tG7 ,(I'* 7 8 t8y '&(& )!*(& .Bw , / `�yJ � W;W ^Lse^nf W gH f X l �$# _\t % J � WMW¨^ sU^ f�W¨g K C!% tG_(3 / `U_(3W;W;] �(�:L:# y�t8y�tGp *(* M x , q!5 / `U_ 2(.(.(.x � X l # y(/

9-Mar-02 Advanced ProgrammingSpring 2002

11

�~�{�������

� � �� ��� �� � �� � � �� � �, ��'

� ) % �� � �� �� ���� N��O�G�\����������QP ����������R C$S T U'S V WE? + X / Y Z 1 ? ? Z([�\ ](^ _ \ ` a b=c \ ](a 9 ^ d e f g a e h�i�jGk 2 A 2 2 2 l R T mR C$S T U'S V W 1 @ 0 6 0(Y j:[�n @ 0 ] F ? 3 X i < ] g f ^ e doc 2 U C C [�@ 0 ];@ . p X i U [GA A A q h�i 2k 2 A 2 2 2 2 2 V mR C$S T U'S V W84 - r Y 2 s D 2(V l 2 2 2 h i 2 s D 2(V l 2 2 2 k 2 A 2 2 2 2 R R mR C$S T U'S V W - X 6 3 Y j:[�Z t X u u ? v / Z![�j T l U D hwi U k 2 A 2 2 2 2 R 2 mR C$S T U'S V WGx - . 0 X(Y R [�Z t X u u ? v / Z![ U t X u u ?h i U k 2 A 2 2 2 2 R V mR C$S T U'S V W - X 6 3 Y j:[�Z Z([�j T l U D h i 2 k 2 A 2 2 2 2 2(V mR C$S T U'S V W8> u ? @ X(Y j h i 2 k 2 A 2 2 2 2 R 2 mR C$S T U'S V W ] X s . 0(Y 2 h i 5

9-Mar-02 Advanced ProgrammingSpring 2002

12

y �% �����z���{���\�|{����{� �� ~}{����$

� �� 1 �� � � ��� �� � � � �� � �� ! � �� �� �� �� � �� � � �� � � � � � � � ��� � � � ��� � � � ��� � � � � � � � � � � �� � ��� � � � � � � � � ��� � �� � � � � � � � ����� � � � � � �Q��� � � � � � � ����� �� � �� �   � � � � � � ��¡ � � � ¢�� � � � �£� � � ¢�� � � � ��� � � � ¢G¤ � � � � � ��� � � ¢G� � ¥ � � � ��� � � ¢�� ¥ � �¦ � � � � § �Q� � � ¦ � � � � ��� ¡ ¦�¨ � � � �Q� � � ¦ � ¥ � �� �� � � �Q� � ¡ ¦ � ¥ � � ¨ � � �� © ª�  « ¬ ­ ® ¯ ¦ ¬Q° ± ­�� ­ ©® © � ¬²« © ³ ¬´­ ¬ «« ° ¯ ° ¬µ° © ¦ ¬¶� �  �� · ¦ ¦ ¯ ® ª� � �G� � � �w�¸� �¹��� � ¡ � º� � � ¡ º� � � � �»� � � � ± � � � � ¢�§ � � � � �� � � � �¼ � � �²� ¡¶��� � � � º� � � ¡ º� � � � �¶� � � �¸� � � � ¢�� � � ¼� � � � ��¼ � � �¸� �¹��� ¡ � � º� � � � º� � � ½ �z� � � �¸� � � � ¢�� � �� ¡ ��� � � �w�¸� ¡¶�� � � � º� � � � º� � � � �¸� � � � � �²� � � ¡ ¢�� � �� � � � �¤ � � � � � �¹�¸� ¡¶�»� � ¦ ¡ � � � º� � � � �¶� � � �¸� � � � ¢�� � � �� ¡ � ��§ ¾ ¼ �¿�¸� ¡¶��¡ � � ¡ º� � � ¡ º� � � � �¶� � � �À� � � � ¢�� � � � �� � � � �O§ ¾ ¼ �¿�¸� ¡¶��¡ � � � º� � � � º� � � � �z� � � �À� � � � ¢�� � � � �

Page 3: z - Columbia Universityhgs/teaching/ap/slides/tools.pdf3 9-Mar-02 Advanced Programming Spring 2002 13 % ~ 3 1 1 ˆ ) ˙)ˆ ’ ˆ ˆ ˝ ˆ ˆ ˆ ˛ ˇ ˆ ˇ ˆ 9-Mar-02 Advanced Programming

3

9-Mar-02 Advanced ProgrammingSpring 2002

13

� �%�~�������� ��

� 3 �� � � �� �1 �� �� � � � � �1 ���� �����

� � � �� ) � � ) � � �� ��' ��� �� �

� ��� � �� �� �

� � � �������

� � � ��� �

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

� �� ���� � � ��

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

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

9-Mar-02 Advanced ProgrammingSpring 2002

14

� �%�~�������� ��

� . �2 � �� ��� � � ��� �� � � � � " �

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

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

� �� �� � "� 0hZ;Z��(0��;^�W ^;^hjMW ^;^hj [ Z� 0;ghYMW ^;^hj# 0;ghY /�YBf � k L ohkhX C# 0;ghY / f d C m;^;^p l;knf lhX C 0�jBf ^(0nf k o��G]Bf Z bhl � ] l beW ^;^hj) f � k L j ^hX C l�_\tEohkhX C£# kBf 0hZ `:3\t8knf 0 ";`hy m;mhY � m + k;Z /Mk;l�W ^;^hj\[ Z�� ww m;^nf # XL`�y��8XU_ y��GX ���!/�

9-Mar-02 Advanced ProgrammingSpring 2002

15

�����

Y � 3 4 h,/U + - . / 0 1 Y Z . i � 3 v / Z![�. h��Y � 3 4 h x t X;- X� 2 u ? ? +�Y . i R h 6 0�u ? ? +eA >'S C�(RQ2 s R 2 V X > . / F 6 . /�Y 6 - � > i T [ 6 - � � i 2 s 1 1 4 X 1 U 6 C h 6 0�u ? ? +eA >'S R RY � 3 4 h,+E.� R i 2Y � 3 4 h 4 - X 6 r W: - X 6 r + ? . / 0 T86 0 2 s R 2(V X C$S 1 . u X�u ? ? +eA > [u . / X W AY � 3 4 h > ? / 0� ? / 0 . / � . / �BA. i 2. i RA A A: - X 6 r + ? . / 0 T [ F 6 . /�Y 6 - � > i R [ 6 - � � i 2 s 1 1 4 X 1 U 6 > h 6 0�u ? ? +eA >'S WW - X 0 � - / 2 �

9-Mar-02 Advanced ProgrammingSpring 2002

16

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

� 4 � � ��� ��� � �� � ���� ������ �� � �� �� �� �� � �� �5 � ���� �� � � �� ���

� � � �� ��� � �1 � � �� 1 ���� �� � � � � �� �� � �

� � � ��� ��� �� �� � �� �� ���� ��� � � � "6 ��� � �� � � � ��� �

7 8 ��8 ' 9 8 : 8 ; ����� � ���� � ��< 9 �� �� < 8 ' � � � �� : � �� �� � ��� � � � �" 9 ;

+ � �< �= > 8 = ?

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

6 9 �< �9 8

9-Mar-02 Advanced ProgrammingSpring 2002

17

������� � ��z� ���{� ��

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

� � 1 ��@

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

� �@

� � �� �@ � �� �� �� � � �� ��� �� ����' � �@

� � �� �@ � �� �� ���� � �� ��� �� ��� � �� �@

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

��� � � � � ��� �

9-Mar-02 Advanced ProgrammingSpring 2002

18

�������}�����z�I $U���� ����

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

� �� � �� � �'

� ���� ��� �� � �� � ��� �9� ���� ��9

� � 1 �� �� � � � ��� ���� � �� �� �

� ���� ��� �� � � � ������� �� � ��� �" 9 A

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

� �� �� �� � �� � ���� �� � �� � ��� �" 9 A

Page 4: z - Columbia Universityhgs/teaching/ap/slides/tools.pdf3 9-Mar-02 Advanced Programming Spring 2002 13 % ~ 3 1 1 ˆ ) ˙)ˆ ’ ˆ ˆ ˝ ˆ ˆ ˆ ˛ ˇ ˆ ˇ ˆ 9-Mar-02 Advanced Programming

4

9-Mar-02 Advanced ProgrammingSpring 2002

19

� ���$ � � ���� �� ���� ���!����� } � � �

9-Mar-02 Advanced ProgrammingSpring 2002

20

� ��~����\� ���{� ��

� % � � �� �� �� �"

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

� �� � � ���

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

� 3 �� � � �������

� , ��' �. ! 4

� �� �� �� �� � �

9-Mar-02 Advanced ProgrammingSpring 2002

21

������� ���� ���$���������� �

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

� � �� ��� ������ "� �� �� ���� ������ ���� �� ���� �� � ��� � � � �

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

� � � � �� ��� � �� �� ��� ) / � �) �� � � ���

� ��� � �� ��� � �� �� � � ) / � �) �� � � ���

� �' ��� � � ���� �� ��� � �� �� ��� 5 � �) / �����

� ��� � � �� �� ��� � �� ��� � �) / �� ��� �

� �� � �� �B

9-Mar-02 Advanced ProgrammingSpring 2002

22

�I��

�)UN��

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

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

� 4 � � �� ����� � �� �� � �� ��� � �

� � � G ���� ������������������� ��!���"�#$��!��� �� ��� � ����1 � �� � ������ � �� � � ����������&%� �� ������')( � +* ( +*��-,� ����� +* (� ����� +* (

tab!

9-Mar-02 Advanced ProgrammingSpring 2002

23

�I��

�����+.�������S���������0/�������0/+.��1��������e����������8�E�e�2.���������8�E�B�354&687 ���������8�E�e�:9�������S�L�e��������S�2. N5; 354&6=<N5;n��� < N5;n�$>=?A@0B0C < N5;�?ED5>=?A@0B0C < ��� N�F N5; 354&6=<

9-Mar-02 Advanced ProgrammingSpring 2002

24

�I��HG~�� � ���� �z�

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

� � ���I'J2K�L�L+MNJ2K�LPO$Q=R+S�T�MNJVU

� � ���� � ��� �� ���� � ��� � �� �� � � J=W � � � ���� � ��� � �� ��� �� � ���J5X �� � ��� � �� �� ��� ���� �� ���JVU ��� � �� � �� �� ��� ������ ���1 � �� � ��� � ���J5Y �� � ��� � �� ��� �� � ���JVZ

Page 5: z - Columbia Universityhgs/teaching/ap/slides/tools.pdf3 9-Mar-02 Advanced Programming Spring 2002 13 % ~ 3 1 1 ˆ ) ˙)ˆ ’ ˆ ˆ ˝ ˆ ˆ ˆ ˛ ˇ ˆ ˇ ˆ 9-Mar-02 Advanced Programming

5

9-Mar-02 Advanced ProgrammingSpring 2002

25

�I�� ��%$U�% ��

�������V/S�2. N5;n�$>S�V?���C < N5;��->S�V?���C <N5;n��� < N5;n�$>=?A@0B0C < ��� N5;n�$>S�V?���C <�� �n�O�������� �G��������G� B ��� 1���S���0/S� 4 C=D)1���S�� ������&/�����S��� �n�O������� �V/S������ �&/�����S�����G�n�O��������

9-Mar-02 Advanced ProgrammingSpring 2002

26

�I�� ��%$U�% �� � �� ���%�~ ����{� G~�

� �� ��� �� � �� ��)UN��¨K ��PU'�K

� � � � �

� � � � ��� � �� �� � �� �� ��� � ��� �� � � � ��������������� Q ������ �� �� C! u�0C 7 �������!"��B��������� � �B� ������$>=?A@0B0C 7$#�3%# D!��@�� & # �����('����������G� #*)�+!,�������V/S�2.1���S���������V/S� #�# N5;n�$>=?A@0B0C <-#�# N5;AC! u�0C <

9-Mar-02 Advanced ProgrammingSpring 2002

27

�I�� �% GQ������ � �% ��

� - �� � � �� ��� �� � �� � ��� �� ©E¦Mª «/. «�0�1324.5�6 2¨¥ ��� �� � �� ��� � � ��� � ���� � �&37 ©E¦Mª~«98 �

�� ��

� C �� � �� � � � �� �� � ��� � � � �� � ���� � � ��

� � � ��� �� � ����1 �� � �� � ��� �� �� � � �� " ;: �-� �� O �<�>= R9?A@ �5���CB ��

9-Mar-02 Advanced ProgrammingSpring 2002

28

D �~�%� �!�z�Q�������I � �~����{�����I{�� ��

� C � � � � � ��� ��� ��� � � ��� � � � �� �� � � ���� � � � � �� �

� �� �) � ������ ��� � �

� � �� � �� 0

� �� �� �@ �� � �� � ��% � �� � � ��

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

� � � � ��� ��� �� ���� �� �' ��

� �� � �� � � ��� 1 ���� � ��� � �� � ��

9-Mar-02 Advanced ProgrammingSpring 2002

29

�����|�{�����I{�� ��

� D ������

9-Mar-02 Advanced ProgrammingSpring 2002

30

� � G~�%� ��$� �% �� ����%� �

� 3 �� �� � � �� �� �� ��� � � ��� �- �� � � �� ��� �� 3 � - �

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

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

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

� E �� � ��� � �� �F � �� � � �G � � � �� � �

� � ��' �� � � ��

� ��� �� �� � ��� � � �� ��� � � � �� ) ����

Page 6: z - Columbia Universityhgs/teaching/ap/slides/tools.pdf3 9-Mar-02 Advanced Programming Spring 2002 13 % ~ 3 1 1 ˆ ) ˙)ˆ ’ ˆ ˆ ˝ ˆ ˆ ˆ ˛ ˇ ˆ ˇ ˆ 9-Mar-02 Advanced Programming

6

9-Mar-02 Advanced ProgrammingSpring 2002

31

� �~������� ������ � ������% �% ��

� � � � ��� " ��� � � �� � �� �� � ���1 � � ����� ��� ��� � � ��� � & ���� � � ����� � ��� � �! � � �� � � �

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

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

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

� � � � �� ��� ���� � �� �* � � ��� ��� ����� ���

� � � � � ���* � � � � �� � �� �� ���� � �� �� � � �� �� ��� �

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

� � �� � � ��� �� � 1 � ��� �� �H ��� � � �� ��

9-Mar-02 Advanced ProgrammingSpring 2002

32

� G~��}�� G~�%�+GQ� ���

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

� � ���� �� � �. � ��� ��� � �

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

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

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

� ��� 1 � � ) � 1 � �

� � ������� � � � � ��� � � �� I �� � � �� � � 5 � �J ��� �� ��� � �� ��� � � � ��� � ���

� � ���http://www.cs.columbia.edu/~hgs/cvs

9-Mar-02 Advanced ProgrammingSpring 2002

33

��� ����� G ��� �Q �� ��������z� �� �����

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

� � � & ��� �� � �� ��� ���

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

� �� ������ �� � �"

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

� � ��� �' �� � �� ���

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

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

� 1 � � �� �� 1 �� �� � ��� � �� � � ��

9-Mar-02 Advanced ProgrammingSpring 2002

34

� G~��}��~�z���{�� �� ��$ �O��� $U���Q� � �����

9 � � �� � ��� � ��� � � �� �� �� � ��� � � ��� � ) / �

��� � � �� ��� �� � �� � ���� �� (�� �������������������������� !����������"���!#�$�%�$&#

K � � �� � �� �L�'PT ? �<���

� � ��� � � �� � �� � ��� ��� ����� �����������"���!#(�)+*�,-�-&./ $��&#&�0�"1�23���!4!$�%�5&��2�6����!���&7!��238& !���:9��;2 � � #�7!�&#������/ 7!������ �;2 �< �=�7�5!$��&7� �;2 �

9-Mar-02 Advanced ProgrammingSpring 2002

35

� G~��}�������� ��|�O ��� ��� � ��� ����%$U���Q� �������

�� ���� ���� ����� �( � �� � �� �

9 � � �� ��� �� E �. H H % �L ( � �( �� � � � � ( �� � � ��> ��� � � � � � � � � � � � � � ? � � � � � � � � � � � � � � � � � � � � � ½ � ½ ¤ � � ½ ¼ � � ½ � � � ½ � � � � � � ��� � � � �� � ��� �����O����@E� � � �� � �1 � � ����� � ��� � �A � ��@E���E1 �S�G�=�CBEDGF�BIH�JEKEDELEBGM�N�OIBEJQP�JENEREJGM�N�O "

� �� � �� � � ��� � �6 � E �. H H % ( � �� � � �� � � �� � � �� ��� �� � ��� � � �1 �� �� � ��� ��� � � � ��� � �� � �� �� � �� ���� � �� � ��� � � ���� � ��� ���� � ��� �# � � � � $ � ? �� �� � �� �� � ���9 � 9 � 9 �1 �� ��� � � � � ( � �� � �� � ( ���� � � �

9-Mar-02 Advanced ProgrammingSpring 2002

36

� G~��}�������� ��|�O ��� ��� �

SUT"V�WT"V�WT"V�WT"V�WYXX XX&ZU[:\�]:^�_ ZZU[:\�]:^�_ ZZU[:\�]:^�_ ZZU[:\�]:^�_ Z`XX XX&\ba"c:d\�]efY]�_ ^g!_ d\�h\ba"c:d\�]efY]�_ ^g!_ d\�h\ba"c:d\�]efY]�_ ^g!_ d\�h\ba"c:d\�]efY]�_ ^g!_ d\�hiZ�f�W"Z�T"V�WZ�f�W"Z�T"V�WZ�f�W"Z�T"V�WZ�f�W"Z�T"V�W`W"d\�]efW"d\�]efW"d\�]efW"d\�]efW"Zd!_ ZW"Zd!_ ZW"Zd!_ ZW"Zd!_ ZrMl � ] lhZ "e] b:B � W;W ^�[ Zr;^�Z ^ C mhW;X;Z lh]MZBf � k;l � gMY j�l!B;X;]MX oej ^nf l9 � C � � �� � � ����� � ��� � ��� � � � � ( � E �. H H % ( � � � ���l � ] lhZ "e]¨l � ] lhZ "e]] ^ o � l!B;X C 0MghXBf � Z l;^nf j;be] ^ o � l!B;X C 0 x � W;] �A � � ��

T"V�WiTkfT�l"^�m:Z�� �� � ��� �� Z "e]MZ(B � Z L ^hd l , @Bp(5 6(6 7hb;oh^;ghd;W � ]� Z g , @Bp(5 6(6 7� "eXLoh^;ghd;W � ]� Z "e]MZ ^ o;oeX l¨oh^;ghd;W � ]� Z g![;[� Z "e]�f � W � kh] � �;g , @Bp(5 6(6 7»F�^ C W jUX m C ^�W ^ C 0 � f C �(� g � gEe^hd�B k " �Yn y"o¨khW l � f � g¨mhX;W � ]MX C l!B;X;]Uf � j ^h];X l ^nf j [8 f � jh^hdM];dBf � jh^hd H k C l¨l;^ f � W � kh] � # k C gMg � W � l � /MghXBf � Z l;^nf jp , @Bp(5 6(6 7�q��

Page 7: z - Columbia Universityhgs/teaching/ap/slides/tools.pdf3 9-Mar-02 Advanced Programming Spring 2002 13 % ~ 3 1 1 ˆ ) ˙)ˆ ’ ˆ ˆ ˝ ˆ ˆ ˆ ˛ ˇ ˆ ˇ ˆ 9-Mar-02 Advanced Programming

7

9-Mar-02 Advanced ProgrammingSpring 2002

37

� G~��}�������� ��|�¶���~�%�

� � , � ���� � ������ (��´� %�� � ������� A � � � � �� � ���� � �� � � � 6 ¥ 090Lª � �¨N ����� K

!��$&��7�� ����������7�����$���� �"!�� / 4!�K � � � � ���� � �� � �

� � %�� * �5� � � ����� � � ���� � ��#�7!�&#������`��������������#� < !$&�%$!�'& (+��)b !�&$&�&7*#���#

9-Mar-02 Advanced ProgrammingSpring 2002

38

� G~��} ���Q�� ��|�O���%$U���Q� � �����

� C � �� �� �� ��� � � ��� ������ �� �� �� � � ��� � � � "> � @�+ 3S + @ X;- � X;- S 6 u . > X S @ X > - X 0 , 0 � / XBA > @eA > ? u � F 4 . 6 A X 3 � S - � - r ? / - t � @ - @ - > - > � @ - ? ?0�u ? � . /

� H ��� ����� �� �� ����* � � � �� ����& «�0�132�� P�.0/1�>�¨N ���

9-Mar-02 Advanced ProgrammingSpring 2002

39

� G~��} ���Q�� ��|�O���%$U���Q� � �����

� � ��� �� � �� ��� � ����� � ��� ���� �� � � � �� � � �� � � "������� / 7��!=���&#�#&7!�&#������������� / 7��!=���&#��32!8&�� �#!$&%&4�#�7!��#������2�#�7!�&#������� / 7!����� ����%$ , 4�(�)+* � < �=7�5!$��&7 / 7!������ �(�)+* �5 %&#+�$&7!� , 7!8�����$�#&�0�"1 , ���!#

9-Mar-02 Advanced ProgrammingSpring 2002

40

� G~��}�������� ���{�� ��|� � �� ����z�

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

� � � � �� ������ ���1� Z "e]¨k;g;g ? k L � mhX;W �Z "e]¨k;g;g��G];Z(B � ghd;W;X C 0Mm;X;W � p ? k L � mhX;W � qEm;^nf�k;g ghX lhX ^ CZ "e]¨k;g;g��Gd;] � p Z "e]MZ ^ o oeX l!q8l;^Mk;g;gMl!B X;]¨mhX;W � j � f ohk C �!C lhW j

9-Mar-02 Advanced ProgrammingSpring 2002

41

� G~��}�������� ���{�� ��|� � �� ����z�

� �� � � �� ��� ���� �� � ���� ���� �� � � �� �� ��� � � �� ��� � �� ��� � � �� "6 �������&�&6�6�$&#, B � Z L X C 0�X C B � W;W ^�[ Z��b:B ^ o � b:B 0h] be]Bf Z beZ "e]Bf ^;^;l bhl � ] lhZ "e] b:B � W;W ^\[ Z\t " ev;v´B � W;W ^�[ ZC � H f � "eX;];X ^ C �G_\[ + �GjBf � "eX ^hd;]�f � "eX;];X ^ C �G_\[ wg;^ C �

9-Mar-02 Advanced ProgrammingSpring 2002

42

� G~��}�������� � �� �� ��$

� @ � ��� � �� ��� � �� ��� �� � �� ��� � ���

� C �1 � � � �� � � � ��� �� � ���� �� ���SiT"V�Wim]87dZ�fT"V�Wim]87dZ�f:9<;]87dZ�[�=:g'>? kfee:^@> T� � � ��� ��� ���� �� � � �� � � ����� �� ���� �

� � � � � "� �� ��� � � � � �� " �� ������ � ����1 � � ����� � ��� � �

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

4 �� ��� � � � �� ��� �� � ���

� �� ��� �� �� ���� �� �� ��� �� �� � � �� �� � �/ / / �� � � �M M M

0 �� ��� � � � � �� �������1 � � ����� � ��� � �

Page 8: z - Columbia Universityhgs/teaching/ap/slides/tools.pdf3 9-Mar-02 Advanced Programming Spring 2002 13 % ~ 3 1 1 ˆ ) ˙)ˆ ’ ˆ ˆ ˝ ˆ ˆ ˆ ˛ ˇ ˆ ˇ ˆ 9-Mar-02 Advanced Programming

8

9-Mar-02 Advanced ProgrammingSpring 2002

43

� G~��}���%� �z�{�� ��|� ��� �z�

� � ���� ��� � � � �� ��� �� � � ��� � � �� E �� - F / ? 0 X @eA 0 s 0� > � @�- X F ? � XG/ ? 0 X @eA 0 s 0> � @�- X F ? � X S @ > t X 3 � u . / ��� / ? 0 X @eA 0 s 0���1 ? -G- X F ? � 6 u> � @�- X F ? � X S � @ X�� > � @ > ? F F . 0���0 ? - X F ? � XG0 t . @81 . u XG+ X;- F 6 / X / 0 u �^ X F ? � . / �G/ ? 0 X @eA 0 s 0��- t ? F X - t � @ - @ - > - > � @ - ? ? 0 - 0 X @ 0 > � @ - / ? 0 X @eA 0 s 0'[ � k � � / ? 0 X @eA 0 s 0/ X x - X � . @ . ? / S�3 X u X 0 X���+ - X � . ? � @,- X � . @ . ? / SR A T3 ? / X� � � � �� " �

�� �¹� ��� � � � * � �� �� � �;:��� ��� � �� ����C � � �� ��� �� ��� ��� �� �� � � ��

9-Mar-02 Advanced ProgrammingSpring 2002

44

� G~��} GQ� ��� �� ��|��� �!�!�%��� ����z�

� � �� � � ������ �� 1 �������� �� �� � �� �� �1 � � ������ � � "� Z "e]¨ghX m;m�B � W;W ^�[ Z� Z "e]¨ghX m;m�B � W;W ^�[ Z� Z "e]¨ghX m;m�B � W;W ^�[ Z� Z "e]¨ghX m;m�B � W;W ^�[ Z< C g � ��B � W;W ^�[ Z`;`;`;`;`;`;`;`;`;`;`;`;`;`;`;`;`;`;`;`;` `;`;`;`;`;`;`;`;`;`;`;`;`;` `;`;`;`;`;`;` `;`;`;`;`;`;`5 , p¨mhX;W � �Eb:B ^ o � b:B 0h] be]ef Z beZ "e]Bf ^;^;l bhl � ] lhZ "e] b:B � W;W ^�[ Z\t "f � lnf X � "eX C 0 f � "eX;];X ^ C _ [ +ghX m;mUvef _\[ + B � W;W ^�[ ZA _ k A 3a jBf X C l;m # % � ^!B C 9 ^ � K C!% /��

9-Mar-02 Advanced ProgrammingSpring 2002

45

� G~��}���� GQ� �Q� �� ��

� �� �� �� �� �� ����� �� � �� � ��� � � � � ��� � � �� � �� ��" �9 � 9 �9 � A �� � �

� � � ��� � ��� ���� � �� � �) / �� � ����

� � � � �� �� �� � �� ����< �� E �� �� �� �� ��

� � ���� � �� � �� � � �� �� �� � �� � � � 1 � ��< �� E �� ���� � ��

� ��1 �� ������� � ����� � �� � � � �� ����

��������&��6�6!$&# $+�`�� �

" �� � � �� �� ��� �� �� �� �� �� � �A � 8

���������8&�� &#�7 �

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

9-Mar-02 Advanced ProgrammingSpring 2002

46

� G~��}���� GQ� �Q� �� ���������� U�

� � � ���� � �� � ��� � �� � �� �� �� �� �� �� � � � � 1 � �� ���� � ��� � � ��� � �G� � � > ��¼ � � � � � �° ¼ � � � � � ���� � �� � � � � � � ��¼ � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � ��¼ � � � � � � « � � � � � �   � > � � > � � � �� � � ¤ � � �G� � � � � � � � � � � � ° ¼ � � � �� �� � � � � � � �� � � �­ � � � � � � � � §G� � � � � � � � ��� � � ½ ¼ � � � ½ ¼ � � ½ � � � ½ � � � � � � � ½ � � � � � � � ½ ¼ � � � � � � � �« � � � ¤ § ° � � � � � � � � �« � � � ¤ § ª � � � � � � � � � �« � � � ¤ § · � � � � � � ��� � � � � �¬ � � � � � � � ° � � � �� � � � � � � � � � � � ¼ ��� � � � � �� � � > � � � � � � � � � � ��� � � �� � � � � � � � � � � � � � ��� � � � � � � �� � � � � � � � � � � � ¼ ��� � � � � �

9-Mar-02 Advanced ProgrammingSpring 2002

47

� G~��}������ �� � �z�

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

� � � ���� �� �� �� �� ��� ���� � � ���� � �� �� � � �� �T"V�W3ZdgYX��b_�fe��������[��T"V�W`_ ZdgYX��b_�fe����`_�fe��������[���f�W3Z�f�W"Z�T"V�W

9-Mar-02 Advanced ProgrammingSpring 2002

48

� G~��} � � �~�������

��� � +*�* � ����� � ���� �I� �¯ � � � � � � � � � � ¨ � �O¼ � � � � � �

� � � � � � � � � � � � � � �� � � � ¼ � � � ¡ > « � � > � � � ��� � �� � � � � � � �� � � � ��� ¼ � � � � � � ��� � �� � � � ¼ � � � ¡ > « � � > � � � �! � � � � ¼ � � � � > � � � > � � � � ½ � � ¼ � �� ��� ¼ �� � � � � � � � �¼ � � � ��¥ � � � �� � � � � �� ½� � � � ¼ � � � ¡ > « � � > � � � � � � � � � ¨ � " ¼ � � � ��¥ � � � �# $ � " � %� � � � ¼ � � � � > � � � > � � � � � � � � � ¨ � " ± � � � � � � « � ¼ � � � � � � � � $ � " � %� � � � ¼ � � � � > � � � > � � � � � � � � � ¨ � " & � ¼ � ª � � $ � " � %� � � � ¼ � � � ¡ > « � � > � � � �� � � � ¼ � � � � > � � � > � � � � � � � � � � � %� � � � ¼ � � � ¡ > « � � > � � � �!'

Page 9: z - Columbia Universityhgs/teaching/ap/slides/tools.pdf3 9-Mar-02 Advanced Programming Spring 2002 13 % ~ 3 1 1 ˆ ) ˙)ˆ ’ ˆ ˆ ˝ ˆ ˆ ˆ ˛ ˇ ˆ ˇ ˆ 9-Mar-02 Advanced Programming

9

9-Mar-02 Advanced ProgrammingSpring 2002

49

� G~��}� ����{� � � �����{� �� U�

�.0/1� �LVMNMV�T �

�� � � � �� � � � �f . u X S t X u u ? A > < 0 6 0 � @ S * + � 0 ? � 3 6 0 X� ? - r . / ��- X � . @ . ? / S T A R = t ��f X 4�T R�T 2$S C U'S V U�T 2 2 T^ X + ? @ . 0 ? - ��- X � . @ . ? / ST A R- t ? F X - t � @ - @ - > - > � @ - ? ? 0 - 0 X @ 0 > � @ - t X u u ? A > [ �< 0 . > r � = 6 � S Y / ? / X h< 0 . > r ��_ 6 0 X S Y / ? / X h< 0 . > r ��\ + 0 . ? / @ S Y / ? / X h

� 1 � � ���� � � ���� ���� �� � �� � � �� ��� � �� �� "N ��@E� ������ �0/��������S�L�B�) / � ��@E�������O���������S�L�B� ���� ��

N ��@E� ������ �������������S�L�B�9-Mar-02 Advanced Programming

Spring 200250

� G~�� ����{�;� � �����{�;�� ��

��� � � ���� � (�(�� � � ���� � (�(�� � � ���� � (�(�� � � ���� � (�(

��� � � ���� � ������ � � ���� � ������ � � ���� � ������ � � ���� � ���� " ���� � �� �� � ���1 � � ����6 �����`9� &#�� / 7+��6 �����`9� &#�� / 7+��6 �����`9� &#�� / 7+��6 �����`9� &#�� / 7+��/ 7!������ � / 4!� 7��!$&# ��%�7��!$&# �&�&6�6�$&#

� �� � ��� �� � � " �� ��� ���� � �� � ��� �� � ���� � �� � � � � � ���� � �� � � � � � ���� � �� � � � � � ���� � �� � � � � � �¼ � � � � � �¼ � � ° ¼ � � � �� �� � � � � � � �� � � ��� ¦ ° � � � � � � � � � � � � � � � � � � � �¶½ � � � ½ � � � � � � �

9-Mar-02 Advanced ProgrammingSpring 2002

51

� � � �%� � �~������� � ������ � ������% �% ����~���~���% �

� 3 D 4 E �� � �C �� � � �F � � � "

� 3 � - �1 �� �� ��� � � ��� �� �� ��� ��� �� �� �� �� E ��� ��� ���

� 4 �� � � � � � �E �� � ���� ���� � �

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

9-Mar-02 Advanced ProgrammingSpring 2002

52

��� � � � � ��� � � � � � � �~"

� � ��� �� � ����� ��� � �1 ���� � � �� ��1 � � �� ��

�J�Q � % J

����������� � � �� X � ( @��&ZK � MNJ�� ( J�

� ��� � �� �� ������ � �@ 0 6 0 . >G> t 6 - 7 . 3 i(Z ,!Y � h � g 3:S t X u u ? A > [ � T A R�T 2 2 T - 2 T - T R�T 2$S C U:S V U t � @�e s + � Z ��

� ( +*�� � ���� � � � � �� � ���� �B � W;W ^�� � < g���B � W;W ^�[ Z t " 3\[ _�3 y;y!3 bhy!3 b:3;_�3 y�� . + � w + B 0h] * j �p;d C 6epUwn[ 1 I!�!C � f X;Z & � YBf d knf j�3 y;y;y

9-Mar-02 Advanced ProgrammingSpring 2002

53

� y � �Q��� ��� H �� ��~� $U���I������ � ������%�

� C �� �� �� ��� �� � �� ��� � � ���� � �� �"

� 3 �� � � ��� � �� ��* � ��� �� � � ��� �� ��� ��� ��

� � � � � � ��

� 3 �� ��� � � " �1 � � 5 � ���� � � ����

� � �) ��� � � ��

� - � ��� ��' �� ��� ��� ��� ��� � �� � �� � ��� ��" ��� �� �� �� � � �. ! 4 �� 1 1 1 � � � � � �� �� � �

9-Mar-02 Advanced ProgrammingSpring 2002

54

� y

� ! � �� � ����� � �� ��� �� �� � �) N � 8 8 9 � ) ; " �

� � � � � 1 � ���� � �

� � � � � 1 � ��� � � �� �

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

� ! � �� � ��) 1 �� ����� � � � � �� �

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

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

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

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

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

Page 10: z - Columbia Universityhgs/teaching/ap/slides/tools.pdf3 9-Mar-02 Advanced Programming Spring 2002 13 % ~ 3 1 1 ˆ ) ˙)ˆ ’ ˆ ˆ ˝ ˆ ˆ ˆ ˛ ˇ ˆ ˇ ˆ 9-Mar-02 Advanced Programming

10

9-Mar-02 Advanced ProgrammingSpring 2002

55

� y

� ! � ) � ������� � � � � �� �"

� �� � ��� � �� ����� �� �1 � ��� � ���� � � �����

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

� � 1 �� �� �� �� � � �� � ���� ��� � �� �

� 4 � N ����� � �

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

9-Mar-02 Advanced ProgrammingSpring 2002

56

D �Q�� ���� $�

� � � �* � ��� � � ���� � �� � �� ����� �� � �� �� ��� ������

� � � �* � � � � ��� � �� � ��

� � � �* � �� � � � ��� � �� � ��

� � � �* 2 2 � � �� � �� � ��� �� �� �� �) � �< �� ���

9-Mar-02 Advanced ProgrammingSpring 2002

57

� $� ���

- + F � � � .G0 X u / X 0` 6 F X S 0 X u / X 0 ^ X u ? > 6 0 . ? / @ S Y / ? 0�- X u ? > 6 0 X 6 4 u X h� X;- @ . ? / SS2 A R l � X / 3 ? - S ^ X 3�� 6 0'[g / > A^ X u X 6 @ X SR D A R : � . u 3 _ 6 0 X S � X 3 9 � � R V�R V!S 2 D'S 2 j T 2 2 Rg / @ 0 6 u u 3 6 0 X S f - .�f X 4 D�R U'S V 2'S 2 j T 2 2 T�: � . u 3�� ? @ 0 S @ 0;- . + + u X @hA 3 X � X ueA - X 3 t 6 0BA > ? Fdh- ? � + Su9 + + u . > 6 0 . ? / @ - g / 0 X;- / X 0 < ? � - > X�^ � � S 0 X u / X 0 � 2 A R l � R D A R A @ - > A - + F< . p X S�D D R 2 C a . > X / @ X S�: < _� 6 > r 6 � X;- S ^ X 3�� 6 0'[g / > A�k t 0 0 + S - - 4 � � p . u u 6 A - X 3 t 6 0BA > ? F - 4 � � p . u u 6 m< � F F 6 - � Su= t X > u . X / 0G+ - ? �;- 6 F 1 ? -�0 t X80 X u / X 0�- X F ? 0 X�u ? � . /G+ - ? 0 ? > ? uBA_ X @ > - . + 0 . ? / S= X u / X 0G. @ 6 + ? + � u 6 - + - ? 0 ? > ? uG1 ? -Gu ? � � . / �8. / 0 ? - X F ? 0 X,@ � @ 0 X F @ ? � X;- 0 t Xg / 0 X;- / X 0eA = t XG0 X u / X 0,+ 6 > r 6 � XG+ - ? � . 3 X @ 68> ? F F 6 / 3 u . / XG0 X u / X 0 > u . X / 0BAg / @ 0 6 u u80 t XG0 X u / X 0G+ 6 > r 6 � XG. 1 � ? � x 6 / 0G0 ? 0 X u / X 080 ? - X F ? 0 X F 6 > t . / X @eA= t . @ � X;- @ . ? /�t 6 @G@ � + + ? - 081 ? -Gg � � U A

9-Mar-02 Advanced ProgrammingSpring 2002

58

� y

� � � � " ( ( 1 1 1 � �� � � � �� � ( � � �� ( � � � � � ( � �' ) � � (

� � � " �� ��� �� � � �� ��� ; � 8 � ��� �� �� �� �� �� � � ���

9-Mar-02 Advanced ProgrammingSpring 2002

59

������� ���� ��|���~��� �b� � ${

� - �� � ����( � ( � �( �� � � �� �� �� � ��� � �� 1 �"

� D � 3 , �

� . ! 4 �( �K O : " �+ � �K O : � � �

� �H � . � - �" �+ � � ��

� �! - � �" �� ��� �� � ���� ��� � �� �

� �. ! 4 �" �� � ���. ! 4 � �� � � �� � � �

9-Mar-02 Advanced ProgrammingSpring 2002

60

������� ���� ��|���~��� �b� � ${ }��Q$U�z��� @ + X > 1 . u XG1 ? -�t X u u ?�x ? - u 3G6 + +� < � F F 6 - � S t X u u ?�x ? - u 3` 6 F X S t X u u ?� X;- @ . ? / SR A 2^ X u X 6 @ X SR� ? + �h- . � t 0 S d � adh- ? � + SS9 + + u . > 6 0 . ? / @ - = X @ 0< ? � - > X S t 0 0 + S - - x x x A > @eA > ? u � F 4 . 6 A X 3 � - g ^ = - @ ? 1 0 x 6 - X -* ^ a S t 0 0 + S - - x x x A > @eA > ? u � F 4 . 6 A X 3 � - g ^ = - @ ? 1 0 x 6 - X -_ . @ 0;- . 4 � 0 . ? / S � ? u � F 4 . 6 * / . � X;- @ . 0 �� X / 3 ? - S g ^ =� 6 > r 6 � X;- S� X / / . / � < > t � u p;- . / / X�k t � @ , > @eA > ? u � F 4 . 6 A X 3 � m: � . u 3 ^ ? ? 0 S@- t ? F X - t � @ - @ - > - - + F� 3 X @ > - . + 0 . ? /= t X x ? - u 3 � @ F ? @ 0G1 6 F ? � @ � + - ? � - 6 F A

Page 11: z - Columbia Universityhgs/teaching/ap/slides/tools.pdf3 9-Mar-02 Advanced Programming Spring 2002 13 % ~ 3 1 1 ˆ ) ˙)ˆ ’ ˆ ˆ ˝ ˆ ˆ ˆ ˛ ˇ ˆ ˇ ˆ 9-Mar-02 Advanced Programming

11

9-Mar-02 Advanced ProgrammingSpring 2002

61

������� ���� ��|���~��� �b� � ${ }��Q$U�z�� jBf � jf o�vef m � 5!4 ? x ) q!<!D 9 x 9 <(5 b:B � W;W ^ev _\[ y� Z k;l � 5!4 ? xBp 6hq!5 ,'* x 9 <(5 b!B � W;W ^ev _\[ y�[ l(0 �¸; l;knfLv "hmUv� Y;d;X;W gohk L �� X C ] l;khW;Wohk L � 5 6(6 7h` % � 5!4 ? x ) q!<!D 9 x'5 6(6 7 % X C ] l;khW;W� mhX;W � ]� g;^hZ�5 * 8:9 ? *bed;]Bf beW ^hZ khW beY;X C b:B � W;W ^bed;]Bf beW ^hZ khW b;ohk C b;ohk C _ b:B � W;W ^�[ _� Z;W � k C

9-Mar-02 Advanced ProgrammingSpring 2002

62

������� ���� ��|���~��� �b� � ${

� � �� � ��L ( � � � � � � � �(���#&��8&�!$��i� / ��6!7� / 4!������:����#�7!��#��E�8�6�T87��&k:^\�f��&k:g&W���W&_�T���Z�f�W"Z���_�]:\��&c�����c

�_�]:\ ���:d �����m[e87!_ ^^Z��&k:^\�f��&k:g&W���Z\�]Ykfe�e:^ ��� > @> W:]fT

� � �� � �� �� ��� � �� �� �� � ���. ! 4

9-Mar-02 Advanced ProgrammingSpring 2002

63

y �% ����� � �z�I�� � ��O� G~�%� ���� ��

� � ���� � � " ( ( 1 1 1 � �� � �� �� � � � � �� ( � � �� ( �� �( � � ���P � � �( 4 � ��� �� �� �� � � �

� Q � � ��� ��� � � �" �� �� �

� ��� � ������ � � " �- ���� ��G ������ �� � ���

� � � � �� �� �6! !����!�����

� � �� � �

� � � ��� �� � �1 �� �� �� �� � � � ���� � �� �� � �5+�:7�7����

� � �� ��� ���� ���� � �� ���� E 4 � �� �� � � �� � ���� � � � ��� ��� ��� �� � �� �

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

9-Mar-02 Advanced ProgrammingSpring 2002

64

� � �z���z� � �����% ����

�4���� ��4�#&7!�&#; �����:� / ��6�7�� / 4!�������%��"���&$4#��&�&7�5�7!%&�&7 ��#�7!�&#� � � � � � � ��� � � � � � � ¼ �� � � � � � � ��� � � � � � � � ¼ �� � � � � � � ��� � � � � � � � ¼ �� � �� � � � � � � �� � � � ��� ¼ � � � � � � ��� � � � ¼ � � � � � � � � � � � � � � %� � � � � § � � �!" ¯ � � � §�� � � ��� � � � � � " � %� � � � � ��� %'

� � ���� � "� � � � � � �G� � � � � � � ��� � � � � � « © � « ¬ � �(� « � � � � � � � � � � � ¨ � � � � �� � ¨ ¨ � � � ¨ � ��� �� � � � � § � � ¨ � � �½ � � � ½ � � � ½ � � � � � � � � �� � � � �� �� �²� � � � � � �� ��� � � � � � � � � � � �|� � � � � � � ¨ ¨ � � ¨ � ¡ � ��� �� � � � � � � � �� � � � � � � § � � �!" ¯ � � � §�� � � ��� � � � � � " � %

9-Mar-02 Advanced ProgrammingSpring 2002

65

�� ��\� ��� �} �% ����� � �z�I��

6 ($� ���� � �($� ���� � �($� ���� � �($� ���� � � �� �� �� �� � � % � ���� � � % � ���� � � % � ���� � � % � ���� �� �� � ����� � �$% �� ����� � �$% �� ����� � �$% �� ����� � �$% ��������V/�@ D���@�?&? 3 ��� 3 �=P8� 3 �&C������S� 7 � )�� � � � ��� A! �&/O���8� 7 " ��� �S��� 7 �S������������ � �� � ��� ���" $&5���7�5$# < ���� -!(

" $�%&�!���&��7&%�&6! !�&���!�; / %" 7!%&�!$&5

� ���� " �0hZ;Z�v 0Uv 9 9 ? 8 D(D 6 , g ohkhW;W ^hZ [ Z�v(D b:B ^ o � b:B 0;] be];d C w beW;X;Y b�vW g ohkhW;W ^hZ�v ^Mg o

� ��� � � � �

9-Mar-02 Advanced ProgrammingSpring 2002

66

�� ��\� ���}�~���z$ ���

' ( ' ) * + , , * - ./' .�0 1 2 3 3 4 56 7 8 9 : 4 ;=< ) > - > + <�? 8 4 1�< @ A A B . C C D 1 2 3 3 4 5 > 5 4 1 C <' ( ' ) * + , , * - ./' .�? 3 2 E 9F�( G ) ? ) H , ( I J/3 4 E ? : 3 7=< 3 4 E ? : 3 7 <' ( ' ) * + , , * - ./' ./: ; A 7 8 6 2 3FK' ( ( J�2 D D 8LF�( J�9 7 7 ;LMKF�(' ( ' ) * + , , * - ./' ./9 A 2 8 A : ; E�A : 1 7FK' ( ' ) * + , , * -' ( ' ) * + , , * - ./' .�? 8 7 7KN O 5 P 7 A�5 4 O ; A C N : A 9 .�+ , , C ,' ( ' ) * + , , * - ./' ./N 2 9 : 5 Q N 3 4 5 P- ' * +�N R A 7 9 J�2 3 : E ; 1 7 ; A�-KN R A 7 9 J/@ 7 2 BE 8 4 S 9O B' ( ' ) * + , , * - ./' ./@ 7 2 B .�( G T ) ( ( (A 4�( G T 2 ( ( ( J�9 : U 7K+ ) , H TKN R A 7 9WV I�N 3 4 5 P 9 X' ( ' ) * + , , * - ./' .�2 3 3 4 5�5 2 3 3 9 .�1 2 3 3 4 5K' J�5 2 3 3 4 5�( JL8 7 2 3 3 4 5�( J�? 8 7 7�(' ( ' ) * + , , * - ./' .�2 3 3 4 5�5 2 3 3 9 .L8 7 5 2 3 3 4 5�( J�1 7 1 2 3 : E ;( J�6 2 3 3 4 5�(' ( ' ) * + , , * - ./' .YA 4 A 2 31 7 1 4 8 R2 3 3 4 5 2 A 7 D ./' (KN R A 7 9WV '�B ; A 9 X' ( ' ) * + , , * - ./' .Y1 2 GK: ;�O 9 7�2 A4 ; 7�A : 1 7 ./' (KN R A 7 9WV '�B ; A 9 X' ( ' ) * + , , * - ./' .�1 2 G�2 3 3 4 5 7 DS : A @�'5 2 3 3 ./' (KN R A 7 9' ( ' ) * + , , * - ./' .�1 2 G�2 3 3 4 5W8 4 O ; D : ; EK3 4 9 9 ./+ +�N R A 7 9WV T - Z X' ( ' ) * + , , * - ./' .�1 2 G�1 7 1 4 8 RK9 B 2 5 7S 2 9 A 7 D .�- ' I -KN R A 7 9WV * * Z X' ( ' ) * + , , * - ./' .�? : ; 2 3�O 9 7 8L1 7 1 4 8 RK9 B 2 5 7 ./N 2 9 : 5�( J�D : 6 : D 7 DK' J�- ' H (�N R A 7 9' ( ' ) * + , , * - ./' .Y? : ; 2 32 D 1 : ;4 6 7 8 @ 7 2 D ./N 2 9 : 5K' J�D : 6 : D 7 DK' J/' T I - )KN R A 7 9WV T T Z X' ( ' ) * + , , * - ./' .Y? : ; 2 37 G A 7 8 ; 2 3�9 B 2 5 7 .�(KN R A 7 9WV (KN 3 4 5 P 9 X' ( ' ) * + , , * - ./' .�A 4 B�' (�2 3 3 4 5 2 A : 4 ; 9 .' ( ' ) * + , , * - ./' .YA 4 A 2 3 Q 9 : U 7[5 4 O ; AK: ; Q O 9 7 Q 9 : U 7[5 4 O ; A[9 4 O 8 5 7' ( ' ) * + , , * - ./' . ' (\' ' (]'!D 1 2 3 3 4 5 > 5 . -' ( ' ) * + , , * - ./' . ' (\' ' (]'�^ 4 A 2 34 ?K'' ( ' ) * + , , * - ./' .�D O 1 B : ; EK; 4 A Q ? 8 7 7 DKB 4 : ; A 7 8 9L5 @ 2 ; E 7 DK9 : ; 5 7�( .' ( ' ) * + , , * - ./' .�; 4 A�? 8 7 7 D .�< ( G T - ( ( - _ 9 ' <V ' (KN R A 7 9 X�? 8 4 1�< D 1 2 3 3 4 5 > 5 . - <' ( ' ) * + , , * - ./' .YA 4 A 2 3 Q 9 : U 7[5 4 O ; A`9 4 O 8 5 7' ( ' ) * + , , * - ./' . ' (\'aD 1 2 3 3 4 5 > 5 . -' ( ' ) * + , , * - ./' . ' (\'!^ 4 A 2 3L4 ?K'' ( ' ) * + , , * - ./' .�P ; 4 S ;1 7 1 4 8 R .�'�B 4 : ; A 7 8 J�' (KN R A 7 9' ( ' ) * + , , * - ./' .�7 ; D : ; E�A : 1 7�F�' ( ' ) * + , , * - J�7 3 2 B 9 7 DK9 : ; 5 7K9 A 2 8 A�F�( . ( ( . ( (

Page 12: z - Columbia Universityhgs/teaching/ap/slides/tools.pdf3 9-Mar-02 Advanced Programming Spring 2002 13 % ~ 3 1 1 ˆ ) ˙)ˆ ’ ˆ ˆ ˝ ˆ ˆ ˆ ˛ ˇ ˆ ˇ ˆ 9-Mar-02 Advanced Programming

12

9-Mar-02 Advanced ProgrammingSpring 2002

67

$������ ���\�� ��

� �' ��� �� ��� � � ����� � ��� ���� � �

� - ' � � � ��": ; AK: ; ; 7 8 V : ; A�G X��9 A 2 A : 5K: ; AK9 O 1 �9 O 1�� F�G �8 7 A O 8 ;�9 O 1 ��D 4 O N 3 7�4 O A 7 8 V : ; AR X��: ; AK: �D 4 O N 3 7�G�FK' �D 4 O N 3 7K9 O 1�F�( �? 4 8KV :F�( �/:���' ( ( ( ( �/: � � X��G�� FK+ �/9 O 1�� FK: ; ; 7 8 V :��R X �� 8 7 A O 8 ;�9 O 1 ��: ; A�1 2 : ; V : ; A�2 8 E 5 J�5 @ 2 8�� 2 8 E 6 X� : ; AK: �? 4 8KV :F�( �/:���' ( ( ( �/: � � X�� 4 O A 7 8 V : X � �7 G : A V ( X ��

9-Mar-02 Advanced ProgrammingSpring 2002

68

$������ ���\�� ��

�%���� � � %N*� ����� ( � � � � *� ����� (

� �� ����� ��� �� ����� � �� � �� ��� � �� � ��� ������� �� ��� ��� � � ��*�� �

� � �� � �! � �� � � � ������ �� �� �9 8 8 �� �� �� ( � ��� �� �

� ���� � � ��� ��� ���� � � �% � � ��� *� ����� ( % ��� * ��� ���

9-Mar-02 Advanced ProgrammingSpring 2002

69

��$������ � � ��� $������ ��� �

e 6 > tG@ 6 F + u X > ? � / 0 @ 6 @ 2 A 2 R @ X > ? / 3 @eA� > � F � u 6 0 . � X�@ X u 1 @ X u 1 0 ? 0 6 u0 . F X�@ X > ? / 3 @�@ X > ? / 3 @ > 6 u u @ F @ - > 6 u u F @ - > 6 u u/ 6 F XV W A V 2 T A D D T A D D . / 0 X;- / 6 u ] F > ? � / 0T R A U W jhA W j R A 2(V R 2 2 2 R A 2(V R A W T ? � 0 X;-R l A R V C A l U 2 A D j R 2 2 2 2 2 2 2 2 A 2 2 2 A 2 2 . / / X;-2 A D j C A D 2 2 A 2 C R 2 2 2 2 A 2 C 2 A 2 C ] u . 4 > ] x - . 0 X2 A D j C A D C 2 A 2 C ] F > ? � / 02 A 2 2 C A D C 2 A 2 2 T 2 2 2 2 A 2 2 2 A 2 2 ]e- X 6 u 4 � 1 X / 32 A 2 2 C A D C 2 A 2 2 T 2 2 2 2 A 2 2 2 A 2 2 1 X;- - ? - ]�� / u ? > r X 32 A 2 2 C A D C 2 A 2 2 R D W 2 2 A 2 2 2 A 2 2 A F � u2 A 2 2 C A D C 2 A 2 2 R 2 2 2 2 A 2 2 2 A 2 C ] 3 ? + - / 02 A 2 2 C A D C 2 A 2 2 R 2 2 2 2 A 2 2 2 A 2 C ] s 1 u @ 4 � 12 A 2 2 C A D C 2 A 2 2 R 2 2 2 2 A 2 2 2 A 2 2 F X F > t -2 A 2 2 C A D C 2 A 2 2 R 2 2 2 2 A 2 2 2 A 2 C + - . / 0 1

9-Mar-02 Advanced ProgrammingSpring 2002

70

� % �� ��� � ��� ����� ��� �� ��� �� ��� � ����� ��: ; D 7 GZKA : 1 7 9 7 3 ?[5 @ : 3 D 8 7 ; 5 2 3 3 7 D ; 2 1 7� 9 B 4 ; A 2 ; 7 4 O 9 �

' T ( > ( + > - - ( > ( ( : ; A 7 8 ; 2 3 1 5 4 O ; A� ' ( > ( ( ( > ( ( ' C I 2 A 7 G : A� ' , Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q' > ( , ( > - H ' ( ( ( C ' ( ( ( 1 2 : ;� I + ) ( > ( ' > ( , ( > - H ' ( ( ( 4 O A 7 8� + ( > - I ( > ( (�' ( ( ( ( ( ( ( C ' ( ( ( ( ( ( ( : ; ; 7 8� , ( > ( ( ( > ( ) ' ( ( ( C ' ( ( ( B 8 : ; A ?� T Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q( > ( ( ' > * + ' C ' 9 A 2 8 A� ) I ) ( > ( ( > ( ( ' > * + ' 1 2 : ;� I ' > ( , ( > - H ' ( ( ( C ' ( ( ( 4 O A 7 8� + ( > ( ( ( > ( ( ' C ' 7 G : A� ' * Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q

� 9 B 4 ; A 2 ; 7 4 O 9 � ) ) ( > ( ( > ( ( ' > * + 9 A 2 8 A� ) ( > ( ( ' > * + ' C ' 1 2 : ;� I ( > ( ( ( > ( ( + C I 2 A 7 G : A� ' , Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q( > - I ( > ( (�' ( ( ( ( ( ( ( C ' ( ( ( ( ( ( ( 4 O A 7 8� + , ' H > I ( > - I ( > ( (�' ( ( ( ( ( ( ( : ; ; 7 8� ,

��$������ ����\�!�����$ �

caller

9-Mar-02 Advanced ProgrammingSpring 2002

71

��������

� � � �� ��� � � �� ��� � � � �� �� � �� ( � J J �� �� �F � � �

� ���� � � ��, � % �R �� � �� ��� ����� �� ��% 4 , �� � �� ��1 ���

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

� � � � � � � ������ � � �� � � ����� � � �� ��� F � � � �� � � ��� � �� � ��% 4 , �

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

� � � � � � � ����� �� �� ��2 � � �� �� �

9-Mar-02 Advanced ProgrammingSpring 2002

72

��������

� �� ���� ���� � � ��� � " �( + + �+ ( �( ( (

Page 13: z - Columbia Universityhgs/teaching/ap/slides/tools.pdf3 9-Mar-02 Advanced Programming Spring 2002 13 % ~ 3 1 1 ˆ ) ˙)ˆ ’ ˆ ˆ ˝ ˆ ˆ ˆ ˛ ˇ ˆ ˇ ˆ 9-Mar-02 Advanced Programming

13

9-Mar-02 Advanced ProgrammingSpring 2002

73

��������

- 7 7= t . @8. @E0 t XG1 6 F ? � @�Z t X u u ?�x ? - u 3 Z8+ - ? �;- 6 F [ x . 0 t F ? - X > ? F F X / 0 @80 t 6 / > ? 3 XBA, 6 � 0 t ? - � A � A� - ? �;- 6 F F X;-,h- X 0 � - / 2 . 1G/ ? X;- - ? -, + 6 - 6 F,6 - � > / � F 4 X;- ? 1 6 - � � F X / 0, + 6 - 6 F,6 - � � > ? F F 6 / 3 � u . / X 6 - � � F X / 0 @,h- X 0 � - / @7 -� . / > u � 3 X�k @ 0 3 . ? A t m. / 0 F 6 . / Y . / 0 6 - � > [ > t 6 - 7 6 - � ��� � h�n+ - . / 0 1 Y Z � X u u ? � ? - u 3�� Z h��- X 0 � - / 2 �q

9-Mar-02 Advanced ProgrammingSpring 2002

74

��������

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

� � � �J J �) � �� � � � ����� � �

9-Mar-02 Advanced ProgrammingSpring 2002

75

� � � �%� ������� � ���~�z�¸���!��� I{ ��b�

� �� �� �� � � �� �"

� � � � �� �� " ��� �� �� � � �� ��� ����

� � � � � � � �" �� � � ��� ����

� �� � ������ � � �� �"

� ��� ��� �� �� �� � �&/S���V/O� # � # � � �������S�L�B� � " �� � � � � � �� ���� ��� � � �� ��� � �� �� � � � � �

� ��' �� ��' " ���' ��� ��� �� �� �� �

� � � �� �� �� � �" ��� � � ��� ����� � � �