a language for programming chart patterns - stanford computer

97

Upload: others

Post on 09-Feb-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A Language for Programming Chart Patterns - Stanford Computer

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

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

������ �����

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

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

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

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

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

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

����

Page 2: A Language for Programming Chart Patterns - Stanford Computer

�� �� �����

Page 3: A Language for Programming Chart Patterns - Stanford Computer

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

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

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

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

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

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

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

� ���� #�� ���� ���� �� ��� ������ � ���� ������� ��� ��

� ����� ��� �� �� � �� ��� �� $� %� ��� �� � �� �� � ���� �

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

�� � �� ��� �������� �� # � ����

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

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

�� � ( �� ����� ����� � ��� ����� #��� ��� %)� ����� � �� ���� ���*��

' ��� �� �� ��� �� �� � �� � �� # �+�� ��� ���� ���� ��� ��� ������ ��

� �������� � ��� � ����� ��� �&� ��� ������� � �"�� �� ���� � ����

�� ��(�

���

Page 4: A Language for Programming Chart Patterns - Stanford Computer

�������

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

������� ���

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

� �� ���� ��� �

,�, $� � � �� �� � ����- � � � � � � � � � � � � � � � � � � � � � � .

,�/ ��������� ��' � � � � � � � � � � � � � � � � � � � � � � � � � � � 0

,�. ' *� (��� 1 ��&��� ����� � ����� � � � � � � � � � � � � � � 2

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

� ��� !� ��� �"

.�, ' �� ��� 1 �������� � � � � � � � � � � � � � � � � � � � � � � � ,3

.�/ ����� ��! � 4��� �� � � � � � � � � � � � � � � � � � � � � � � � ,5

.�. ������� � ����� � � � � � � � � � � � � � � � � � � � � � � � � � � /,

.�.�, 6�������!7� �������� � � � � � � � � � � � � � � � � � � � /,

��

Page 5: A Language for Programming Chart Patterns - Stanford Computer

�� � � �

.�.�/ 4���� � �������� � � � � � � � � � � � � � � � � � � � � � � /.

.�0 (�#��� �� ��� ���� � � � � � � � � � � � � � � � � � � � � � � � /3

.�2 � ���� 8��� ��� � � � � � � � � � � � � � � � � � � � � � � � � � � � .0

.�9 8�� ��� $��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � .5

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

0�, � ���� �� ������ � � � � � � � � � � � � � � � � � � � � � � � � � � 0:

0�/ ������ � ;��� ��������� � � � � � � � � � � � � � � � � � � � � � � � 0,

0�/�, ����� ����< '��� =�� 8��� � � � � � � � � � � � � � � � � � 00

0�. ����� � ����� � � � � � � � � � � � � � � � � � � � � � � � � � � � 02

0�.�, ' *� (���! �!��&��� ����� � ����� � � � � � � � � � 02

0�.�/ ����� ! � 4��� ��� ��� � � � � � � � � � � � � � � � � � � � 09

0�.�. ����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 2:

0�0 >��� ����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � 25

0�2 8�� ��� $��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 2?

& ��'� (��� �� ��)�� ��� ���� ������� "�

2�, 7 ������� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 9/

2�/ @��� �� ��� ' *� (1� � � � � � � � � � � � � � � � � � � � � � � � 9.

2�. �������� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 93

2�.�, @ � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 95

2�.�/ 6���� ����� � � � � � � � � � � � � � � � � � � � � � � � � � 3:

2�.�. ����� �A�B � � � � � � � � � � � � � � � � � � � � � � � � � � 3,

2�0 >������� �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � 3/

2�2 ����� �� �� ��' � � � � � � � � � � � � � � � � � � � � � � � � � � � 30

2�9 8�� ��� $���� 1 6����� $��� � � � � � � � � � � � � � � � � � � � � � 35

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

Page 6: A Language for Programming Chart Patterns - Stanford Computer

�� � � ��

� *�+��+������ !� �� (,�� ��� ��

-��������$�� �#

Page 7: A Language for Programming Chart Patterns - Stanford Computer

�������

�� � ��� ����� ��� ��� # � � ����� �� � ���� ����� � �����

� ����� � ����� � � ���� �� ����� �� ������ ����� �� ��� ��#��� ��

����� � ����� �� ���� �� "������ ����� ���� � � ��� �� ��#� � �� ���

�� ���� � ����� ���� ������ � ��� ����� &����� � ������� C�������

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

��� ���� �� ��� ����� � ���� ��#�� � �� ��� � ��� ������ �� �������

�� ��!� ���� � �� �� A��� ��� �����B �� � ��� �� � ���� �������� �������� 4��

� �� �� � ��� # � � ����� �� A,B ��#� � ����� ��� �� "����� ����� �

������� �������� �� ��**� ����� ��� � A/B ������ ��� ������� �������

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

��� �� � ��� � ����� � � ��������� ��'� � ������ ��' ������� ���!�����

�� ����� ��� ���� ����� � ��#� � �� ��� � ����� � ��� � ������

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

��' � �� ����� C ������ �� ��!��!���! �� ����� � � �� ��� $� ����

��� � ���� �� ����� �� C ������ ���� � � ���� � ����� �����!����� �������

� *� �� �� ��� � ��� �� � ���� ��#��� � ������� ��� 6�����������

C �����D� ���� ������ ����� ��� ����� ����� ���� �� �� ��� ����� �� ���

���

Page 8: A Language for Programming Chart Patterns - Stanford Computer

������� ����

������

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

����� ��� !����#� ���� ���� ��� ����� ��� ���� ���� �� ��� �� A,B

������� ����� ��� � ��� ������� ������� ��� ��� !����#� ���� ���

� A/B ������� ����#� ��� ������� �������� C������� ��� !

����#� � �� ��� �� ����� ��� ����� � � �� �� ���� � C ����� ��� ���

��E�� ���� ���� ������� ��� � ��� ����� � �� �� ��� ������ �� ����!

��� �� ��� � ���� �� ����� C ������ ���� � � *��� � �� ��� ���� �������

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

��' � ��� # � � ����� �� ������ �� �� � ����� ������� �������� ��

�� � ����� � ����� ��� � ���� �� ��� �� � F� ���G �� �� � ���� ��

��� �� ����� � �������� ���� ��� ���� �������� ;�� �� ��� ��� ������� � �!

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

&� �#� �� ���� �� �� �� ����� �!���!H� ����* �� �� � ���� ��#!

�� ��� ���� ����� � ������ $� ��� � �� ���� ��� �� � *� �� �� �� ��

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

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

�� � ��� ��' ������� �� ���� ��� � ���� � ����� ;�� ������� � ���

� ���� � ��&��� �� ������I � ����� ��� ����� � � ��� ��� ��� ���

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

��� ��� ���������I ��� �� !������� �� � ��� ��� �� �� ���� ��� ������

�� ��� ��� � ��� ���� 4� �� ��� � "�� ������ ��� ���� �� � ��� ��� ��

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

� � ��#�� ����� �� ��� ��� ����� � ������ �� ��� ��� �� ��� �����

$� ���� ��� � *� �� �� �� � � ���� �� �������� ��� ��� ���� $� ��� ���

������� �� ����� %!&��� ��� ��� � ���� �� ��� ������ ��� ����� ���������

Page 9: A Language for Programming Chart Patterns - Stanford Computer

�� � �� �����

2�, %�� �� �� �������� ������ ��������� � � ���� �������� �

��� �� ������� �� �!&��� ��� ���� � � � � � � � � � � � � � � � � � 3.

2�/ ��� �� �� �� �� ��� � ��� ��� ��� ,/!&��� ��� ��� � � � � 30

2�. ��� �� �� �� �� ��� � �� � �� �� ��� ,:!&��� ��� ��� � � � � � 32

2�0 8�� ��� A ������B ��� �� ���� �� �� �!1!�������� � ����

�� ��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 33

��

Page 10: A Language for Programming Chart Patterns - Stanford Computer

Chapter 1�����������

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

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

��� ��� �� ����� �� ����� �� ������ ������� �� ����� ;���� � �� �� � �

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

����� �� ���� ���� ����� 7�� ��� �������� �� ���� � �� ����� � ������� �����

�� �� ��� �� � ���� ���� ����< ������� �� ���� �������A���� �� ��B� 4

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

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

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

J9� ,K ����� �� � � ����� � � ���� �� ����� �� ������ ���� �������� 6�� ��!

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

;��������� ��� �� � �� ������ � �� ������� �� ���� � ����� �� � ����!

� �� ���� ���� ������� ���� ������ � � ���� � � � 7�� ��� �� � �

� ��� � �� �� ��� �� ������� ����� �� ���<

,� ;�� �*� �� ��� ������ � � � ���� ��� ����� � � �� �� ��� � ����� ��

� ���� ��� �� ��� ����� �� .::: �� �� �� � � A.:: ���� �� ��� ,: �� ��B�

Page 11: A Language for Programming Chart Patterns - Stanford Computer

/� (�#��� � ������� ��� �� � ����� �� ���� ���� �� "����� � ��!

H��� ���� � ������D� ������� ����� ���� ����� �� � ����� � � �!

� �� �� �������� ��� � ���� �� ������ ;���� ����� �� ���

� ��!����� ��#��� ��� � ����� ���� �� � ��� �� ��� ��� �� �� ��������

.� ;�� ������� �� �������� � ����� � ��� ��� �������� 6�� �� ����� ���

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

;� �� ��� �������� �� �� ��� ��� ����� ��#�� �� ��� � ����� �

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

� ���� �� ��#��� 7�� �� � ������ ��� � � ��� ���� �� ��� �� �� �!

�!�������� ���� �� �� �������� � ����� ����� ;�� ���� � ���

��#� �� ��#�� �� #���� ��� ����� ����� �� �� ���� ;�� ������� ��

��#� ��#�� � � ���� �� � � ����� ��� ������

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

�������� ;�� � �� �� � ��� # � � ����� �� �� ��� ������� � ���<

,� (�#� � ����� ��� ��**� ����� ��� ;������ ������ � ���� ��

��**� ����� �� �� � ����� ��� ���� � �� �� ��#� � ����� ��� ������

/� 8���� � ������ ������� � ����� �� ��� � ������� ������ � �����

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

$� � �� ��� � �� �� ���� ����� �������A��'B� 7� �� ���� ��� � �� ��

��� C ������ ��� ���� � �� � ��#�� ���� � ���� �� �� ����� �� C ������

����#� ����

� C �����D� ����� ���� ������ ���� ��� ���� �� � ���� ��#�� ���� �!

� ���� ;�� ����� ����� ������ ��� �� # � � ����� � ��������� ����

��� ��� � � �� �� ���� �� � � ��� � ������� ����� L � �� ����

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

Page 12: A Language for Programming Chart Patterns - Stanford Computer

�.� /�� �� �� � ��� !� ��0 �

� C����!����� ������ �� ���� ��������� ���������� ��� ������ �� ��� ��

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

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

# � � ����� ���� � �� � ����

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

� ���� ���� � � ����� � �� ������ � ��� ���� ' *� >� �� ��

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

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

6���� ,�,< ;� ���

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

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

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

�� � A6���� ,�,B� ��� �� ����� ������ ��� ����� �� ���� ��� ������ ��

��� ���� ���� �� �� ��� ����� �� ���� �� ���� �� ��� � ��� � � ���� ,.�32�

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

,.�32� $��� ���� ���� � ����� � �� ���� "��� � �� �� ������ ;��

Page 13: A Language for Programming Chart Patterns - Stanford Computer

�.� ��$��� ��� !� #

�������� ����� � � ��� ��� ��� � � ���� ���� ���� > ��� ������ ����

��� ���� �� ��� ����� � ��� �� ��� � ���� �� ��� � ���� �� ��� ���� 7��

��� ��� ���� ������� ,.�32 ������ ���� ��� ����� ���� �� ���� �E������� � ���

�� �� ��� ;�� �� �� ����� ������ �� � ��� ��� ���� � �����

�� ��� �� ��!��� � ���� � ��� �� ��� � ���� 6���� ,�,� $�� ��� �� ���

��� ����� � ������ ��������� ��� �������� � � ����� ���� ��� ,.�32 �����

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

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

����� ��� ���� �� �� ��� ���� ��� � ����� ;�� ����� ����� ��� � ����� ��

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

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

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

����

�� �� � ����� ��#� ��� ������� �� � � ���� ��� ����� �� ���� ����

�� ���� ���� ����� 6�� �� ����� ���� ��� �� � ��� ��� �� �� �����

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

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

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

��� �������

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

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

����#� ���� ��� � ��� � � ���� ���� �� ��� ���� ��&���� �� ����� ����!

��� � ������� ��� !����#� � �� �� A(�'B � ������ ���� ����� �

� �� ��� ���� � C ����� J/5K� �� ������ � C�� � �� ����� � ��� J,5K�

M(�' J C �����K � � ����� � �����!����� ��� � � ���������� #���!�� ��

� ��� �� � � � ��� F���� � ����G �� ��� ��D 6����������� ��� ��������� ����

Page 14: A Language for Programming Chart Patterns - Stanford Computer

�.� ��'� (��� 1 ��)�� ��� ���� ������� &

�� C ������ � ����� � � �� ��� ���� �� ������� ������ � �E�����

�� ������ ��� ��� ��� ��� �� �� ����� �� (�' �� � ���������

C������� ��� (�' ����� �� ��������� ���� � � ����� �� ��� �

��������� � ��������� �� ����*� ��� ����� �� $��� ��� !����#� ����!

� �� J,:� /,K ������� �� ����� ��� ����� ��� ���� � ���� �� � ������ ���

������� ��� �� ��� �� ����� � �� ��I ��� ������� � �� �� � � ���� ��!

����� � �� �� ���� ����� >���� ���� � ���� ��� ���#� ��� �� �� �����

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

� �� ���� 0 �� ������ ��� ����� �� ���� ������� �� �� ��'� ��'

������ ��� ��� !����#� ����� ��� � ����� � ����� � �� ���� � ���!

���� 6����� ���� �� � � � ��� � � ����� ������ ���� ��

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

������

$� ������ ��� ��� ��� �� ����* �� � ������� C �����D� ��� ����� ����

��I �� ������ � ���� ������ ��� � �� �� ��� �� � � ����� )��

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

�� ��� � ��������� � ������� �� ���� ;�� ��� � ��������� � ��� ���

��������� �� ��� ����� � ������ ��� 6����������� �� ���*� ��� � &� !

�#� �� �� �� �� ���� �� C ����� �� �������� ��� ���� ��� ��� �� � ����

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

��$ ��%& ��'�(� ) �*�+,�� �*�������� �*"'��#

;�� � ���� ��#��� �� ��' �� ����� � ���� �� ���� ��� � ����� �

���� ����� � � ��� ��� ��� ���A���B� ��' ���� �� ��� ����� �

����� ������� � ���� F� *� ���� 1 ��&���G�

����� � � ��� ��� ��� ���� A���B � �� �� � ��� � �� � �� �����

�� ��� �� ���� ����� � ���� � ��#��� � ��� ���� �� ������

Page 15: A Language for Programming Chart Patterns - Stanford Computer

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

#����� 6�� ��� � �� ��� ��� ���� ����� � �� �� ������� ���������� �� ���

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

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

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

C������� �� �� ����� �������� � � ������ ���� � ��&��� A1�B

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

�� �������� �� J5� ,2K� ����� ����� ������� ��� � �� ���� ��� ��� �

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

;�� � �� �� ��� ��� �������� ����� � ����� �������� �1� � � ���

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

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

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

�1�� � �� ������ ��� ���� ����� ����� ��� ����� ��� �� ��� ���� ����!

������ � � ��� ����� ��� �������� �� ����� ��� � ����� ��� ;�� ������

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

����#� ���� ��� ������� �� ��� � ����� �� ���!������ ��� �� ��� ����

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

4 ��� ����� � �� ���� F����!������G �� ����� �� � �� ��� ��� � �

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

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

' *� �� �� �� � ��� �� � ����� ���� ����� � ����� ��� � �� ��

��� C ����� J/5K� ����� ������ �� � ��������� � � ��� � �� ������ �

��&���� ��� ������� ������ ���� 6�� �� ����� ������ ��� ������� ��#��

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

��� � � �

$�� ��� ����� � � � ����� �� ��� � ������ L ���� ���� � ������ ���

�������� L � ���� �� �� ��� �� ��� � � �� ����� ��� � ���� �� ��� ������

Page 16: A Language for Programming Chart Patterns - Stanford Computer

�� � A���� � ��B

� �� ���� 2 �� ����� � � *� �1� ��� ���� ��� ����� � ������ � ����

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

���� ��� ������� �� #�� ��' � ����� � %!&��� ��� ����

Page 17: A Language for Programming Chart Patterns - Stanford Computer

Chapter 2��������� ��������

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

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

�� ��� ���� > �� � � ���� ��� ��� #�� ��� �� � ���� ��� �� � ��� �����I

���� ��< ��� ����� ����� ��� ����� ��� ����� ��� ����� � ��� �� �� ��

�� � ���� A������B ��� �� � ��� ������ ;��������� ��� ������ �� ��� ��

��� � F � �G ����� �� �� ������ ���� �� ���� ����

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

�� �� � �����

�$ ������� � N !� � A"��� �B

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

� � ���� ��� ��� #�� �� #����< ���� ���� ���� ����� ����� � �� � ���

������� �� � �� #�� ������ �� ����< ����� ��� � ���� ���� � ������ ;����

�� � ��

����� ��� � ���� ���� << ������� ���

����� << ������� #����

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

Page 18: A Language for Programming Chart Patterns - Stanford Computer

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

�� ��� #��� �� ����� �� ��#� ����� � �� ��� ��� ������� ���� ���� �

��� ��� �� �� ��� ���� ��� � ����� ����� �� � �<

���� << ������� ���

���� N A���� O ��� O ����B.�:

%��� �� � � ������� ��� �� �� �� ���� � ��� �� ���� �� ���

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

�� �� ���� ������� ��� ���<� ��� ���� � ���� ���� ��� �� �������

�� 6� �D �������� J,,K� � �� ������� ���� ������� # � � ���� ���

J/3KI ���� ��� � ���� �� ��������� � ��� ���� ��� ��%�,� ��%�/� ��� �� �

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

��%�,� << A� � �B � A"��� � � "��� �B

��%�,� % $������ N $������

��%�,� % A&��� �B N &��� A% �B

�'�/� << A� � � � �B � A"��� � � "��� � � "��� �B

��%�/� % A&��� �B A&��� �B N &��� A% � �B

��%�/� N $������

��%�, << A� � �B � A ������� � � ������� �B

��%�, % N � �� � A��%�,� % B A� ��B

��%�/ << A� � � � �B � A ������� � � ������� � � ������� �B

��%�/ % N �, �/ �� � A��%�/� % B A�, ��B A�/ ��B

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

Page 19: A Language for Programming Chart Patterns - Stanford Computer

��� ��� A$�� �B � $�� A"��� �B���

%�� ��� N &��� � %�� ���

��� N ��%�,� ���

AOB N ��%�/� AOB

� � ���� ��� A$�� A"��� �BB � $�� A ������� �B���

%�� ��� N ����� � %�� ���

��� N ��%�, ���

AOB N ��%�/ AOB

� � �

����� � C ����� ������� ����� �� � �� �� ������ �� #��� ������� ��� ����

�� �� �� ��

�� � ���� ����� ���� ��#� �� ���� �� ��� � �� � ���� �� �� ����

;� ������� ���� �� � �� ��� ��� A B ���� � ��� ����� ���� ��

� �� � � � P�� � A���B� ���� �� ���� � � ����� �� �� ��� �� ��� ���

���� � ��� �� ���� � ����� ��� ��� ���� �� ��� ������� �� A B � ��#��

� �������<�

A B << ������� � � ��� � ������� �

��� � N � � ��� A� � �B

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

���� ��������� ������ � ���� ���� � ������� �� �� ���� H���� ���� �

F�!� �G ���� ��� �� �� �� ��� � ��� � � � � ���� ��� � ��� ��

��� � ���� �� ��� �� ��� ��� ������� � � ��<

��������� << A$�� �B � ��� � ������� � � ������� �

��������� � ��� N A��� ������� B�

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

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

Page 20: A Language for Programming Chart Patterns - Stanford Computer

��� ������� N ��( � ���

6���� ��� � �� � �� C ����� ����� ��� ����� �� ���� ��( ��!

������ ��� � ��� �� �� ��� ��� ��� � �� � � ��� � � ��#�� ������� ��� ���

����<

��( << ��� � ������� � � J ������� �K

��( � % N ��� A% B J: �� A� � ,BK

( � : , / . 0 2 9 3

����� ���� 0�/ 0�2 0�. 0�, 0�2 0�9 0�. 0�0

( � 5 ? ,: ,, ,/ ,. ,0 ,2

����� ���� 0�/ 0�. 0�0 0�, .�? .�9 .�3 .�5

� ��� ��� � �� � �� �� �� �� A��( 2 ����B ,2� �� ��� ��� �� ����� �����

���� ,2�� � � ��� �� ,,�� � ��

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

"��� � ��#�� C ����� � ������� J/5K<

���� "��� � N $������ � &��� �

6��� ��� F�!� �G ���� ��� �� ��#�� �� � ��� �� � ��� #��� � ���

���� ������ ��� ���� ��� �� � � � ���� ��� � ��� ��� �� 7����� ���

�� ������ �� �� F�!� �G ���� ��� �� ��� ��&��� ����� ����� ��� �� ��

�� ������� ���� � �� � � ��� 7� � �� ��� ������ �� �� ��� "��� �����

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

� � ��� ������ � ���� = ��� $������ ������ ����� ������ ��� � ���� ��

����

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

� � ����� ����� � �� �� � � ���� ��� ��� ��� �������D� ������ ���� ����

Page 21: A Language for Programming Chart Patterns - Stanford Computer

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

���� � ��� ���� ��� �� ���� ��� �� �� ���� �� 6������ �� ��#��� ��

��� ��� ���� ��'<

��� � ��� << ������� !���

��� N���� M������M A��������� ���� ,.B

��� N���� M%���!��� M A��������� ���� ,.B

������� %���!��� << A$�� �B �

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

% , M������M % / NA% , � % /B 11 A% , ,B � A% / ,B

% , M%���!��� M % / NA% , � % /B 11 A% , ,B � A% / ,B

�� ���� 6���� /�,� ��� �� ���� � ��� 0 � 5 �� ���� � � ���� ���

� ���� ��� ��� �� ������� A11B � A��B ���� ��� � ��� ��� �� �����

� ���� ������� �� ���� �� ����� � �� ��� � �������� ;�� ������

�������� �� �� A ����� : � ,B �� � ��#�� ��� ������� �� ��� � ��

,0!� � ����� �� ��� ������� � ��� A������ �� ,B� ��� ���� � ������ �

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

��� � ���� ��� �� �� ��� F�� � ��G � ��� ��� � ����� �� �� ��� F���

� ��G� � � � � � ���� F�� � �G � �� ����� � ��� ��� �� �� ������� � �D�

�����I ��������� � � � ���� F��� � �G� 6�� �� ����� ��� ������� � ��

��� �� � �� �� ,�0�2�3�?�,:�,0�,2 � ��� ��� � �� �� /�.�9�5�,,�,/�,.� ;��

������� � � ���� ��� � ��� ������� ������ <

������� N ��� �� A��� ���� O ��� ��B

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

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

����� ��� � �D� ����� � ��� ������� � �D� ������ � ��' ��� �� �� ��� ��<

Page 22: A Language for Programming Chart Patterns - Stanford Computer

������� << ��� � ������� ���

������� � N ��� �� A��� ���� O ��� ��B

���

��� �� N��� A��( � �� ���B

��� ���� N��� A��( � ���� ���B

�� ��� N�% A���� � ���� ,B A���� � ���� ,B :

���� ��� N�% A���� � ���� ,B A���� , � ����B :

6���� �% ���� ��� ����� � ���� �� � ��� �� ��� �����I � � ��#��

� �������<

�% << ������� !��� � ������� � � ������� �

�% ���� % , % / N � � ��� A���� �B ��

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

&��� )� � % , �

&��� *��� � % / �

;� A�!����� �B ����� ����� ��� � �� �� � ������� � ��#�� ���� �����

�� ��� � � �� �� ��� �� ��!���� ��������� 7�� �� � � # � � ������

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

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

��H���� � ��� ������� � � ���� ��� ���� ������ ���� �� ���� �� ����

��� ��� �� ��� ��� ��#��� ��� � ��� ��� � ���� ��� ���� ������

��� #� ��' � �� �� ���� ;� ��� �E���� �����!����� ������ �� � ���� � ����

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

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

��#��� 4� �� ��� ����� � �������� �� ���� � +�������� ������ �����

;�� � � � �� ���� ��� �� � ������ ��� ������� ���� �� � ���� �����

� ���� �� ��� ����� ����� �� ����� � ����� ;�� ������ ��� ������ �

���� ��� �� A��� ����� ����B � ��� � � ���� � � � �������<

Page 23: A Language for Programming Chart Patterns - Stanford Computer

���� N � � ������ O A,� �B � ����� � : � � � ,

���� N �����

;�� ������ � ���� ��� �� ��� ��� #��� � � A� � :B ���� ������ � "���

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

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

�� ��� ������� � �� � ��'� ��� � � ��#�� � �������<

��� << ������� ���

��� N A:�5 � A��� ,B O :�/ � ����B M�� M ����

�� << ������� � � ������� � � ������� �

�� �, �/ N � � �� A NN $������B �� �/ �

�� ��� N �, �

� ��� ��#�� ���� � � � �� � :�5� �� ����� � ��� ��� �� ���� �, �

�/� ����� �/ ��������� ��� ���� �� ���� P�� � �� �� ������ ��� � ���

�� ���� �� ��� �/ � A�, �B � �� � �� �� ���� 4�������� � ������ ��� � ���

A�, �B�

Page 24: A Language for Programming Chart Patterns - Stanford Computer

,� ����� ����,� � � ���

A�B� A�B� ANNB << � � � � �

/� ��� ��� A,� �B � ����,� � !��� ���

� � �

.� ��� ��� A,� �B �

����,� A"��� �B A"��� !���B ���

� � �

0� ��� ��� A,� A"��� �BB �

����,� A ������� �B A ������� !���B ���

� � �

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

A11B� A��B << � � � � �

9� ��� ��� ����� !��� !��� ���

� � �

3� ��� ��� A����� �B � ����� A"��� !���B A"��� !���B ���

� � �

5� ��� ��� A����� A"��� !���BB �

����� A ������� !���B A ������� !���B ���

� � �

6���� /�,< � � �� � '�� �� C ����� ;��� �� ���� ��� ��'

Page 25: A Language for Programming Chart Patterns - Stanford Computer

Chapter 3����� �������

�� �� � ����� �� �������� � �� ���� ;��� � ����� ���� � ����� �� ��������

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

� �����< �� �� � ����� �� ��� ���� �� ������ � ����� L ��� ��� �����

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

,� ;�� � ���� �� �� � ����*�� ���� ������� � � ����� � ����

/� ;�� ���� ������� ���� ��� � �� ��� � ��������� �� � ���� �

���� � ����� ��� �� � � J�� �B � ���� � ����� ��� �� � � A�� �K�

.� ;�� ���� ������� ���� ��� � �� � ��������� ���� � ���� � ����

� ����� ��� �� � � J�� �B � ���� � ����� ��� �� � � A�� �K�

0� ;�� ���� ������� ���� ��� � �� � ��������� ��������� � ���� �

������ � ����+������ ��� � �� � ������� ��� �� � � J�� �B�

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

�� � � J�� �K� ���� � ��� � �� ���� ��� ��� � ����� �� � �� �� / � ��

A�� �B ��� ��� ��������� ��� ����� � ��� �� ��� ���

�"

Page 26: A Language for Programming Chart Patterns - Stanford Computer

9� � �� ������ ���� ��� � �� � ��������� ������ ��� � ��� �� � � A�� �B�

���� � ��� � �� ��� ��� ��� � ����� �� � �� �� / � �� ��� A�� �B ���

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

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

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

;���!���� � ����� �� �� ���� ������ � � ���� �� ��� �� �� ���� ���� �

������ � ����� �� ��#�� � ��� ������ ������ �� � ��� ����� �� �

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

$�� ���( ��-� ) �* !*�����

����� ��� ��� ������ J3K ����� �� � ��� � #� � ��� � �� ����� �

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

� ���� ���!����� � � ��� J/9K� ���� � ��� � �� ����� ���� ���� �����

��(�� � ���� �� � ���� �� ���� � ��� �E����� � ���� � ����� $� ������

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

6����������� �� ���� ��� � �� ��� �� ��#� ����� �� �� ������� � ������

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

���� !� ��'� ;���� �� � ���� �� �� � � ��� � �� ���< ��� �� �� �

�� ���� �� ��� �� �� � �� � �� ��� ����� ������ F��G � �����< ����

���*�� �� ����� �� � ������� ���� 4 ��� ����� � �� � � ���� �� ��

� � "��� �� � �� ��� �� �� ��� ��� ��� ��� � ������� $� ��� ����� �

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

� ��'� �� � �� ���! ����� ��� << ���� � J!� K� �� � � ��� � ����

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

7����� ��� � �� ���� �� � ��� ������� ����� ��� �� !�������� ��

�������� � ����� ��� << ���� � J���� K ������ ��� �� ��� ������� � ����

Page 27: A Language for Programming Chart Patterns - Stanford Computer

�� ��� �� �������� � ���� �� ��� 6�� ������ � ���� �� ���� ���

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

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

$�� �*��������(./& �!�����*�

;�� #��� � ���� �� �� �� ������ � � � ���� � ���� ����� ��� � ;�� � ����

����� �� ��� � ���� �� ��� �� ����� ��� �� � �� � 6���� .�,� � �� ���

� � � � ����� � � �� ��� �� 6������ � ��#�� �� ��� � �<

�����-�� << �����

�����-�� N �� �� � � � J� K N ��� �

�� J ��� � � A��� ,B � �

���� � � A���� ,B � K

;�� ��� ���� � �� � � ��������� � �������< � ��� � � � �

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

���� � ��� ��� �� ��� ������� � �D� ���� � �� ��� ���� � ���� �� ���

������� � �D� ����

;�� A��B ���� �� ���� ��� ��������� %������� �� � ����� �� � � ���

������� ����<

A��B << A)�*���� �B � ����� � A���� � J�KB � �����

;�� ���� �� ������� ���� � � ���!����� � � �� ��#� � ������ �

� ���� � � ��#�� ��� � ���< ��� #��� � ��� �� !�������� �� ��#���

� ��� ����� � ��� ����� � ����� ����#�� ��� �� ��� � ����� �� ���

��� � ����� ;���� ����� �� �� ��� ��� ��������� ����� �� ��� � ����D�

� �� ��� � �� !��������� ;��� ��� � �� �� ��� �� � ����� ��� ����� ��

���� ���� �� ��� �� �� )�*�����

Page 28: A Language for Programming Chart Patterns - Stanford Computer

6���� .�,< ���� � ��

����� )�*���� � ���

��*���� << � � *����

7 �� ���� ���� ����� �� ��� �� �� )�*���� � �� � ���� � � �������� �� ��**�

� ����� ��������� ����� ����� ��< *����� !��� � "��� *����� � "��� !��� �

%���� �� � ��� ����� � ����� � ��#�� ���� � ���� �� ��� � ����

�� � ����� ;�� � ����� ��� � ��� ����� � ����� � �� �� ��� ���

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

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

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

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

%�� ��� �� ������� ��**� ����� �� ������� ����� � ���� � ���� ���.��

;�� � ������ �� � ���� ��� ����� � ����� ������� �� � ��� ��

���� � ������� ��� �� ,: ���� � ��'� ��� � � ��#�� � �������<

���.� << �����

���.� N �� �� �� � J�� / K N ��� �

�� JA���� / � ��� �B ,:K

Page 29: A Language for Programming Chart Patterns - Stanford Computer

,� ����� *����,� � � ���

AB� AB� A�B << � � � � �

/� ��� ��� A,� �B � *����,� � *���� ���

� � �.� ��� ��� A,� �B �

*����,� A"��� �B A"��� *����B ���

� � �0� ��� ��� A,� �B �

*����,� A ������� �B A ������� *����B ���

� � �

6���� .�/< � � �� � '�� �� C ����� ;��� �� ���� ��� ��'

%��� ��� ��� �� ��**� ���� ��� ��#� ��� ����� �� ;�� ��H���� ����

������ �� �� "������ ��� ��#�� �� � ����� � � ���&����� ��� ��!

��� � � ����� �� � � �� � &� �#�� �� ����� ����&������ � � ����� ��

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

� ��� � ��� ������� �� � �� �� � ����� ��� ����#�� � �����

6�**� � ���� �� H� ��!���� ����� :�: � ,�:<

�$ *���� N *���� Q J:�:� ,�:K

6�� �� ����� 0�? 2�: � 0�? � 2�: ��� � �� ����� � ���� ��� ��� �� :

� ���� �� ,� ����� � ��� 0�? � 2 � 0�? N 2 � �� ��� ����� � ��� *����

>� �� �� �� ��**� ����� �� � ��� ������� ��� ������� �� ��**� �������

%�������� J//K� � ��� �� ���� �� 0�? � 2�:� �� � ��� ��� ������� �� ��� �

����� �� ������� ��� ��**� � ���<

Page 30: A Language for Programming Chart Patterns - Stanford Computer

% � + � N

���A� O + � �B � �� � � +

A� O � � + B � �� � � +

;�� ����� % �������� ��� ��**� � ��� ��� � � + � ;�� � ��� �� � ���

����� �������� ��� ���� �� ��**���� ;�� ���� �D� � ��� �� ��� ����

� ���� ��� � ����� ���� + ��� � �� �!*��� ����� � ���� � ��'� ��� ��� � ���

� ��� ��� � �� � � � ���� � ��������� ������ 6�� ������� ��� �� � ����

��**� ���� C ����� �� ���� �� �������� �� ��� ���� � @��� � � R�� J/.K�

;� ������� ��**� ���� ���� $� ��#� *����,� �� �� � ���� 6���� .�/�

;�� *����,� �� �� �� ���� ���� �� � � �� ����,� �� ��� ���� 6���� /�,

������ �� ������ � ���� ���� ���� �� � � NN� ���� ����� � ���� ��

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

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

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

$�$ �* !*���# !�������

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

������� � ������ �� �� � ������ $� ������� ��� ���� ���� F��������! �G

� F����� �G� ���� � ��� ��� ��������� �� ���� �� ��� �� � ����� ����� ��

��� >�������� �� �� �� � ����� J9K�

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

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

�� � ���� �������� � ���� � ����� ���� �� � ��� ��� F ������G �� ��� ���

A���� ��� �� �� ��� �� �� � ��� �� ��� �� ����B �� ������ �� �� ���

��� � � ��'� �� ��� ��� ��������! � ���� ��� ������ � A B� �� ��� �� ��

����� ��� � ������ � ��� ����� ��! � ���� �� A��B �� ������� ��� ��� �

Page 31: A Language for Programming Chart Patterns - Stanford Computer

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

���� N A�� ����B �� �� � J�� �� �K N ��� �

�� J��� � � ��� �K

;�� A B ���� �� � � ��� ������� ����<

A B << ����� � ����� � �����

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

� �� ���� ����#� ���� ��� �������� � �� �� �� ��� ���� � ����!���� � ����

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

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

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

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

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

�� �� ���� � � ����� � �� ���< ��� ���� ��� ������ ��� �� �� � ��� ����

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

$� ������ ��H� ����� �� � ����� ��� �������� �� !�������� ��

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

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

���� �� ����� ������ �� ����� � � ���� �� ���� A� ����� ����� �

�������� � ���� ����� ���!����� �������� � ����� � ���� ���B � ���

���� �������� �� ���� ���� � �� �� ��� ����� ����� �� ���� ���� �� 6��

�� ����� ����� ��� �� ���� � ���� �� �� ��� ���� ��� J�� / K� ����� � �

/ �� ��� �� �� �� � ��� ���� �� �� ������������

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

� � ��� � ����� ��������0����� � �� �� ��� ���� ����� � � ������ ��

����� ��� � �� �� ��������� �� 6���� .�. ������ �� � ��#� ��� � ����

� �� �� �� ��� �� �� �� ����� ����� ���� �� � ��� ����� ��� A�� �B �

Page 32: A Language for Programming Chart Patterns - Stanford Computer

����� �� ��� ����� ��� A���������B� � ��� �� �� �� ��� ��������� �� ������

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

��� ������ N A���� ���� ����B �� �� �

� J�� �� �� � � � % � � K N ��� ��

�� J ���� � � ���� ��

���� � � ���� % �

���� � � ���� % K

6���� .�.< C� � � �������� 6���� .�0< 8��� ���

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

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

�� ��� ���� ������� ��� � �� � ���� �� ���� �E���� ������ �� ���� ����!

���� � ��'� ��� � ���������� � ��� ����� ���� ��� ������ � A��B�

A��B << ����� � ����� � �����

;�� � ��� ��� � ������ � �������� �������� � ����� ����� ��� ��� ���

� ����� ����� �� ���� � ��� � �� ��� ������ ����#� ���� ��� � ����� � �� ���

� �� �������� � �� ��� � ���� � ��� � �� �������� � �� ��� 6�� ����� �

Page 33: A Language for Programming Chart Patterns - Stanford Computer

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

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

�� �� ����� ���� 6����������� ��� #��� � � �� � �� ��� ��� ������ ��� �

��� #��� � � �� � �� ��� �� � �� �� ���� � ������������ ����&������ ���

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

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

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

������ �� ��������! � �� ���� A� %��������� ������� � �������� �� ��

����� ���!����� �������� � ��� ��������! � ���� ���B '�� � �� �� ��������!

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

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

���� ���� ��

�� �� ���� �� ����� � ���� ��� �� ��#� �� � ���� ���� � � � ��

� ����� �� �������!�� � ���� � ����� ��!�� � ����� ;�� �������

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

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

�� N � �� ���

;�� �� � ���� � � ��� � �� ���� ����� ��� �� ��� � ��� ��� ���

�� ��� � ���� A����� �� ��� ��� �� ��� � ��� ��� ��� �� ��� ��������<

� � ���B�

%��� ������ �� � ���� �� � ��� � ��� ��� ��� ����� ���� �����

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

��� �� � �� ��� ��� ��� � ��� � F �� ����G� � ���� � ���� � ��

��� ����� �� � ���I ���� ����� ���� ����� � �� ��� ����� �� ��� (� ����

������ � ���� � �� ��� ������ �� ����� � ��'� ���� �� ��#��

� �������<

Page 34: A Language for Programming Chart Patterns - Stanford Computer

������ N �� �� � � � J�� �K N ��� �

J�� �K N ��� ��� J��(��� � �K

� ����� �� ������ � � � ������� ���� �� �� �� A��� �B �� ��� �� ��� �� ��!

��� �� �� � ������� �� ������������ 6���� ��(��� � ��� ��A�����

������� �� ����� �� ��B � � �� �� �� �� ��� ��� �� � �������

�� A�B� � �� �� ��� �� )� � �� ��� ���� ���� ���� ��� ������� �� � ���

A� O ,B� 4�������� � �� �� ��� �� *���� �� ��� ��� �� � ����� �� �� A�B�

��� � �� �� ��� �� )� � �� ��� ���� ���� ��� ��� �� � ��� A� O ,B� >���

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

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

;�� � ���� ������ ������ � ����� �� �� ��� � ����� �� � ���������

��� ����� � ��� � ��� ��� ���� �� ������� �����I ���� �� ���� �� ��

��� � ��� ����� ������ � ����� ����� �� ������ � ��� �����D� ���� �����

H���� �� ���� ���� � �� ���� � ��#�� � ��� ���� � � ���� ����

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

����� ������� 6������ � ��#�� �� ������ � ���� ���������� � ���

�� �������

�� N ������ �� � �

� J�� �K N ��� �

�� J���� � � ���� �K

6���� ���� � ��� ����� ������� �� ����� �� �� � ������ �� ������

4�� ��� �� ���� � ����� � ���� � ���� �������� ( ��� � ������ �

����� �� ����� �� ������� ��� � ����� �� ����� �� ���� 6���� .�2 �����

� ��� � �� ��� ;�� � ���� ���� ��� ������ ����� ���� �� ��� �����

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

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

� ��#�� � �������<

Page 35: A Language for Programming Chart Patterns - Stanford Computer

6���� .�2< ( ��� 6���� .�9< 6� �

���� N AA� �B �� A��� ���BB ��

� � � J����� �����K N ��� �

J�� �K N ��� ����

J�� / K N ��� �����

J�� � K N ��� /�� J���� � �� ����� � / � ��(��� / � K

P�� � ��� �� �� �� A��� �B ������ �� ��������� ��� ����� �� ���

A����B � ��� ������� ��� A�����B ������������ ;���� ��� � � �������

���������� ��� ��� ��� ������ P� ��� ���� ��� �������� �� � ���� �

�������<

������� �� �A�������

��������

B ��

������� �� �A����� �� �

����� �� �

B

� ��� ����� � ����� ����#� ��� ��� ����� � ���� ������ � ��

��� ���A����� ������� �� ����� ��B � ����� )� � ����� ��� ��� �������

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

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

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

�������� � ������� �� ����� ��� ���� ����� ����� ��� � � ���� ��� A

���� ���B ��� ���� � �� ����� � ��� �E ���� �� ������� � �� �� ��

Page 36: A Language for Programming Chart Patterns - Stanford Computer

H � � ���� � ���� 6���� .�9� � # � � ���� � � ��� �� ��#� H �

� �������<

��� N A���� ��B �� % �

� J��� � K N ��� %

J�� �� �K N ��� %

� N ���� ��� JA�� ��B 2�

� � A��� �B :�, � � �

A�� �B ,:K

C���� H � � ��#�� � -��� � ���� �������� � ������ � ����A��#��

� ����B� ;�� � �� ��� ��< � � ��� ��� ��� �� ����I � ������ ��� "��

����� ���� � �� � ���� � ��� �� ��!��� �� �� I � ��� ��!��� �� �� �

�������!���� �� ������ �� ��� ���� � ����� � ����� �� ��� ���� ���� ;��

����� � ����� ���� ��� ��� ��� H � ����#�� �� � ��� ���� � ���� �������

� ��� ���� �� 2 � ��� ��� ���� ���� ���� ���� � ���� �� ����� ,:S �� �����

� ���� ������� A��� ��B ������ ������� � �� ���� �� ,: � ��� �� �����

������ ��� �E����� �� ��� �� � ��� �� �� � �� ��� �� � �����

� ���� ��� �� � �� ����� �� �E����� �� � ��� ��������� �� �� � �!

����� ;�� � ������ ��� � �� �� � ���� � �� �� A��'B� 6���� .�3 ������

��'D� ��� ��

$�0 ��1����*�� *2 �* /����*��

� ��� ������ �� ������ ���� � ��#�� �� ��� � ���� ��� ����� ��������

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

��������� � ����� ���� � ��� ��� ���� � A��� ��B � ������ A���� ��

�����B ��� �� ����� ��������� �� �� ���� ����� ������ ��� ��� ��� ���� �

��� ���� ���� ������� ;���!���� �� � ��<

Page 37: A Language for Programming Chart Patterns - Stanford Computer

����� <<N ������� � A�����B

� ����� ���,� �����

� ����� �� �� � *�1+�������� <<N �� � �� � ���� � �� � ��� � �

���,� <<N � ��

*�1+� Q 6�**� ����� � >��������

#� Q = � ���

6���� .�3< ��� � �� �� �� � ���� ' �� ��

����� << A!� � !�B � 0�,% �������

� �� ������� �� �� �������������� � �� � �� � J����K� �� ��� �

����� $� ��� ����� � ��� ���� �� ���� 0�,� � ��� �������� �� ������

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

(,�� ��� � 2� �� !� �� ��� ����3 2��� � ����� � ��� � ��� ����

��� A��� ��B3 �A��� ��� �B �� �� �� �% ��� ����� �������� �% � ���� ���� %��

��� �� � J��� ��K ��� �� �� ��� �� � J��� ��K� �� � ���

( � ���� ��� � ���� �� ��� �� ��#�� 6���� .�5� � � ���� �� ��

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

���� � ��**� �� ���� �� �� ��� ������� � � ����� ��� � ���� ��#���

%��� �� � � � ���� �� �� � � ��� ���������� ��� !� I ��� ������

�� ��� ���������� � ��� � ��� A�� ���� !�B� > �� �� ��� ����� ������

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

��� �� ��� ���������� *� � ������ ��������! � �� ��� � �� �������

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

Page 38: A Language for Programming Chart Patterns - Stanford Computer

���I ��� ���� ���������� ,� ��������� ����� � �� ��� � ����� ��� ��

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

�� ����

���� ���� N!� !� *����

�.� A!� �!�B *����

�-��� A!� �!�B *����

��� A!� �!�B *����

�4� A!� �!�B *����

� 0�� A!� �!�B *����

� *� J���� K *����

�,� J���� K *����

6���� .�5< ( � ;��� ��� � ���� ��� ���

����� ��� ��� � ���� �� �� �� ���� ��������< 6���� %���� � ���

� ���� �� �� � ������ �� ��**� � ����� ��� ��#�� � ��� � � ����

������� 6���� ��� �������� �� ��D� �� !��������<

��� << ���� � J���� K

��� � N ��� � ��

A,� �� �B � ��

A*� �� �B � ��

������ � J�K

6���� ��� �������� �� ��D� � �� ���� � � ��#�� � �������<

Page 39: A Language for Programming Chart Patterns - Stanford Computer

��� << ���� � J!� K

��� � N ��� � ��

A,� �� �B � ���,� �

A*� �� �B � ���*� �

A!� � �B � J�K

A.� A�,� �/B �B � J�,� �/K

A-��� A�,� �/B �B � J�,� �/K

A0�� A�,� �/B �B � J�,� �/K

A4� A�,� �/B �B � J�,� �/K

���*� A*� �� �B N � A�� < ���B N ��� ��� ��

�� �� OO ������ A��� ���� ���B

���,� A,� �� �B N � ��� N��� ��� ��

�� N ��� ���

�, N ��� ��

�/ N ���� ���� �� A����� ��B NN , �� ��

�� �, < A������ A��� ��� ���B OO J�/KB

C ����� ����� ���� ������ ��� � � �� ���I ������ H ���� ��� �� �� !����I

��� � ���� ������ ��� #��� � ��� � �� ������ ���� ������������ 8�� ��

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

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

��� � �� �� �� ��� ������ ��� #���� ��������! � ��������� 6�� ����� �

��������� �� ������ ��� ����� ��� �� ��� �� ��� ��� #��� � ��� � ��

� �� ��� �� �� ����� � ��������� ;�� ��#�� �� ��� ��

��� N ���� � ����

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

���� � �� ��� ������� ��� � �� ��� �� ����� � � ���� �� ��< ���

Page 40: A Language for Programming Chart Patterns - Stanford Computer

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

� �� ���� � �� �� ��� �������� � � ������ A���� ������ �� ��� ��

� �� ��B� ��� �� ������� �� ��� ���� � � ������� ���� � ��� � ���

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

��� ���� !� ��� ;�� A��B ���� �� �������� ����� �� �� � �!

���� $� ��� ���!�������� ��#�� �� A��B � �������<

�A��� ��� � �� % B N

� ���, � ��� � �A��� ��� �B � � N %���� ��� �

� � N A%��� ��� ,�: A% ���BB �

� � � :�: � ���, N ���*���� ��� A��� � � �B�

;� ������� ��� ����� ��! � ���� ��� �� #��� �� �� �� ��� ������ � ����

� �� ��� �� � ���� �� ���� > �� �� ����� � ���� �� �� � � ��**� � ���

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

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

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

� ���� �� ���� *����� A%��� ���B ���� �� � ��� ��������� � ��� ��� �� ��**�

� ����� ����� ��"���� ���� ��� �� ��� ������ � �!*���� ���� ��

��� ������ � � � ��� �� ��**� � ��� ��� ��� �� ��� 6���� A���*����B �

��#�� � �������<

���*���� A*� �� %� B %� � N *� �� A��� %� %� �B

���*���� A,� �� %� B %� � N ,� �� A��� %� %� �B

���*���� A!� � %� B %� � N !� � A��� %� %� �B

���*���� A.� A�,� �/B %� B %� � N .� A�,� �/B A��� %� %� �B

���*���� � � � A4�����B

6��� ��� ����D� ����������� A��B ���� �� � ��� �� �� � �� ����� � ����

�� ��� ������ ��� 4��� �� ���� A��B ����� ��� #����� ;�� � ��������� � ���

Page 41: A Language for Programming Chart Patterns - Stanford Computer

������� ���������<�

!��$� � � �� � � � ����� ��� % � �� ��������� %������� �� ����� ���

������ �% �3 ���

5� *� ��� ��� ������ A��� ��B3

�A��� ��� � �� % B � �A��� ��� �B�

6� �� � � ����� ��������� %������� �� ����� �������� �% �3 ��� %� ���

��� ������ A��� ��B3

�A��� ��� A� �� % B �� �B N

�A��� ��� � �� A � � A% �B OO A� �BBB�

4�����+�� ��$��� ��� � �� �� �� ��� � ���� �� �� � � � ��

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

� �� ���� ;�� ��**� � ��� �� ��� �� �� �� � ��� ���� �� ����� �� ��

��������� � ���!�������� ��#�� �� ��� A B ���� �� � � �������<

�A��� ��� �� ��B N

�A%�� ��, ��/ �B �

��, � �A��� ��� ��B � ��/ � �A��� ��� ��B �

A���� A��� ��,BB N A��� A��� ��/BB �

A�� N %���� ��,B � A�� N %���� ��/B �

� N ��� �� ����

6���� %�� ��� �� ��� ��� ������� �� ��� �� ��������! � ���� �� ��

���� ��������! � �� ��� �� � ��#�� � �������<

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

Page 42: A Language for Programming Chart Patterns - Stanford Computer

%�� << ���� � ���� � *���� � ����

%�� �, �/ � N

��� A�,� �/B ��

A*� ��, �,� *� ��/ �/B � *� A��, OO ��/B �

A*� ��, �,� �/B � *� A��, OO J�/KB �

A�,� *� ��/ �/B � *� A�, < ��/B �

A�,� �/B � *� J�,� �/K �

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

����� � ��������! � ���� ���� ��� A B ���� �� � ��������� ���� ���� 6��!

� ����

!��$� � � �� ��3 �� ��� �� � �� ������� *� ��� ��� ������ A��� ��B3

�A��� ��� A�� ��B ��B N �A��� ��� �� A�� ��BB�

5����� ��$��� ��� � �� �� �� ��� � ���� �� �� �� � � � �� �

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

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

��� ���� �� ����� �� �� ��������� � ���!�������� ��#�� �� ��� A��B

���� �� � � �������<

�A��� ��� �� �� ��B N

�A����� ��, ��/ �B �

��, � �A��� ��� ��B � ��/ � �A��� ��� ��B �

A��� A��� ��,BB N A��� A��� ��/BB �

A���� A��� ��,BB N A���� A��� ��/BB �

A�� N %���� ��,B � A�� N %���� ��/B �

� N ��� �� ����

Page 43: A Language for Programming Chart Patterns - Stanford Computer

6���� ����� ��� �� ��� ��� ������� �� ��� �� ����� � ���� ��

�� ���� ����� � �� ��� �� � ��#�� � �������<

����� << ���� � ���� � *���� � ����

����� �, �/ � N

��� A�,� �/B ��

A,� ��, �,� ,� ��/ �/B � ,� A��, OO ��/B �

A,� ��, �,� �/B � ,� A��, OO J�/KB �

A�,� ,� ��/ �/B � ,� A�, < ��/B �

A�,� �/B � ,� J�,� �/K �

R��� ��� ��� A B ���� ��� A��B ���� �� ��������� ��� ���� ��� ��������<

!��$� � � �� ��3 �� ��� �� � �� ������� *� ��� ��� ������ A��� ��B3

�A��� ��� A�� �� ��B �� ��B N

�A��� ��� �� �� A�� �� ��BB�

$�3 ������� ��,��/�"��&

6�� ��' �� � ����� �� �� ��� # � � ������ � � ����� �� �� ������

� � �� �� �������!���� � ������ ;��������� ���� ��� �� � ����� ������

���� � � ����� � � � � �� ��#� � ������� ����� � � �� � ������ �� �

��� �� �� ��� ����� �� � ����� ������� ��� ��� �� �� ��&���� �� �� !

�������� ��� � ���� ��#��� )���� ������ � �� �� ����� ��� � �� ���

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

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

6�� �� ����� ������ ��� ��� �� � ��� � ���� ��� �� ��#�� ���

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

Page 44: A Language for Programming Chart Patterns - Stanford Computer

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

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

A� �B �� A��� ���B

��

A��� ���B �� A� �B

C������� ����� ��� ��������� ��� ������� �E���� ������ �� � �� ��� �

��������� � ��� ���� ���� �� ����� ���� � ��� � ��� ������� ;� ��������

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

� �� ����

%��� �� � ��� ��� ��� ���� �� ����� � �� �� ��������! � ���� ��� ���

� �� ������ ���� ;�� ������ ��� � �� ��� � �� !�������� ��

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

����� �� ���� ���������� ;��������� �� ����� � ������ ��� �������� �

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

%���� �� � ����� �� � ��� ��� �������!� ���� �� ��� �� �������� ��!

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

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

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

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

��� �� ���� �� � ��������� ���� ������ �� �������!� ���� �� ���-

$� ����� �� � ���� ������ � �� �� � � � �������� �&���� ���� ���

� ���� ��#��� ��� ��� � ���� �������� 7� #�� ������ � � �����

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

;���� �� ��#� ������ ���� � ���� �� ��� � �������<

(,�� ��� � 2!� �� ��� ��� 5�����3

Page 45: A Language for Programming Chart Patterns - Stanford Computer

5� ����� �������� � ��� ���� �� ��� ���� ����������3 �� %������7

!� � 4� � .� � �� � -��� � 0�� � *� � ,� �

6� )�� �������� �������� ���� �� ��� ���� ��������� � ��� �� �+��

�������� ����� �% ��� ����� �% ����������

8� ,�����3 ��� ����� �������� � �% /��� ���

6�� �� �����

A4� A/� ,:B , :�0B � A.� A0� 2B :�9B � A*� J��K :�.B

*� J4� A/� 2B ,�2 :�0� ��K � *� J0�� A,� 2B :�2 :�.� ��K

� ��'� �� � �� ���! ����� ����� ���� � ��� � ���� �� �� �

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

���������� ������� ������ �� ��� ����� ����� � ��#�� � �������<

����� << ���� � ����

����� � N

��� � ��

A*� �� �B � *� A��� ����� ��B �

A,� �� �B � ��,� �

������ � �

��� ��,� A,� �� �B N

� ��, N ��� ����� ��

��/ N ���!� ��,� ��,��,� ��/ �

C ����� ����� ���!� � ��� ���� ��� ����� � ��� �� � � � � �����

��� ��� ��� ��� ���� ��� ������ ��,� � ��� ���� ��� ����� ��#��

������ �� (�#�� /� ;�� ��� � � �������

Page 46: A Language for Programming Chart Patterns - Stanford Computer

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

A�� ���� � �� ������� � �� � � ����������� ���B<

,� J*� J4�� ,� J.�� 0�� KK� *� J4�� ,� J-���� 4�KKK

;�� ������� � ���� �� �� � �� ������� ���������<

,� J*� J4�� ,� J4�� -���KK� *� J4�� ,� J.�� 0�� KKK

%���� �� � ��� ������� � ���� �� ��� ��� �������� �� �� ��� ����� �

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

%��� ��� ��� � ��� �� ����� � � ���� ��� ���� � ��#��� ��� ���� �

����� ��� � ���� � �������<

���� �� � � � � � N ����� �

J�� ��K N ��� � �

�� � � �

;���� � ����� �� � �� ��� ������ ��� �������� ��� � � ���� ���!

�� � ���� �� � ���� �� ���< �� � ��� ��� ������ ���� �� �� �

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

����� � ������<

,� �� ���� �� �&���� ����� ��� �������!� ���� �� ��� ���� �� ��!

�������� � ��� � �� ������� �� ��� �E���� ����� � �������

/� �� � � �� �&���� ����� � ���� �� �� ��� �� �� ������� � ��

����� � ����� 6�� �� ����� ��� ������� ��� � ����� � �� � �������<

A�% � � � ��� � �� ���B � ���

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

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

Page 47: A Language for Programming Chart Patterns - Stanford Computer

$�4 ��"���( �*�-

��' � ����� ��� � �� �� ��� ������� �������� � � ����� ���!�����

� � ���� � ��'� � ����� �� ����#�� ��� ��� ��� ����� �� A �����

�� ������ � �����B � ��� �� ����� �� A ����� �� ��� �� ����� ��B�

4 �� ��� ��� ��� � ���� ����#� �� � �� ������� ����&��� � ��

�� ������ ��������� J,.K� C���� � ����� �� ����� �� ��� ���� ������

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

�� ����� A������ ������B ��� � �����

;�� ��� ��� ����� � �� ��' � ��� ��� �� ��� 0��� -�������� �������

A�('B �������� � ��� � � � ��� J/K� � �('� � ����� �� ����� �� ���� ��

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

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

�(' ���� �� � ��� ����� � � ������ 6����������� � ��E��� ���� ��� �������

��� ���< 6������ �(' � ��� ��������� ���� �� ��#� � ������ ��

����� � � ����� �� ������� �(' ��� ��� � �� ����� �� � ���� ��� �����

�������� ���� �� ��� � ����� 6�� �� ����� �� ��� � ���� � ������ �

� � �� ������� � ����� �� ��� ���� ��� �� �� H���� ��� ��� �����

��� (�#� �� ��� ��� ��� ��������� ������� � ����� �������

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

� ���� ��#���� � ��� ��� � ��� ��� �� ��� ����� A��� ����

��� ��B ��� ��� ��� �� � � ��� ����� ��� ����� ������ �� � � ���� ������ ��

� �� �� ��#� � ����� �� ��� � ��� � � ��� ������ �� �� �� �������

����� ��� ��� ��� �� �� �(' ���� �� � �� ���� � �����

;�� ��� �� ����� �� �� ��' �� ����� � ��� � �� �� ����� ��������

� ���� � ��� ��� ��� ���! ��� � ���� � ���� J/9K� 7��H�� ��� �����

� ��� ���� ����� �� ��� ��� � ������� ���� #�� �� � ���� �� ��� ��� �

� � �������� � ��� �� � ����� �I ���� ��� � ���� � ��� �� ��

Page 48: A Language for Programming Chart Patterns - Stanford Computer

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

J3� ,?K� ����&������ �� ��#� � �� ��� � ���� �� � ����� ���� � ��

����� � �� �� ��� ����I ���� ����� �� � ���� ��� "��� �� ��� ������� ��

� ����� 7� ������ ����� � � ��� � �� ���� � ����� � � ��#�� ����

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

4�� ����� �� � ����!�������� ���� ��� ����� �� �� ������� ���� �!

��� ������ � �� ��� �� ���� ������� ;���� ���� ��� �� ������� ��� ��� ��

����� ��#�� ����D� ��� � ��� ������ ���� � ����� J.K� ����D� ���!

� A � ���� � �� ���� ��� ���� ����B � � �� ���� ����� �������� &����

� �� ��� ��� ������ � � � ���� ���� � ;T)>' J.,K� ;�T' J/0K� ��� C��!

����� ����� � �� ��� � �� �� �� �� ����D� ���� ��� �� ���! ��� �����!

� � &����I ���� �� �� � �� ���� ��� �� ���� �!��� ��� ������ � ��������� ����

������� ��� 4 ��� ����� � �� ��' � �������� �� � � ��� �������� ���

�� ��� ����D� ���� ����I �� �� �������� ������ ��' �� ����� ������� ����D�

���� �����

' ����� �� � �� ������� ����� � �� ���� � ������� ��� � �� !������

6� J,,K � ,������� ��� ���� � 6 � � ���� �� J/3K� ��� ����� �

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

� � � � � ���� �� �� ����� �� ���� � ���� ��� ���� #�� ���� ��� �

������ J,3K� C������� ��� ��� ���� �� � ����� � ������ ��� ��� � ��� �����

�� � �� ��� ��� ���� � #�� ����� �� ���� � � � ���� ��� Q ����

� ������ � ����D� � �� �� Q �� �� ����� ������ � � ��������� �

������

Page 49: A Language for Programming Chart Patterns - Stanford Computer

Chapter 4��������������

0�� ��,��� *2 ���Æ5���5&

>� ���� ��' ��� C ����� ������� ��������� ��� � � ��������� ���

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

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

;�� ��� �� � "����� �� ��� ��������� � �� ������� �� � ���� �� ���

������� ���� ������� �� � � ��� � ���� ��#��� �� �� � �� ��� ��

���� � ����� �� ��#�� ��� ����� �� � ���� � �� ��� � ��������

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

����� ����� ��I ����� ������ ���� ��������� � ��� ��� ���� ����� �

�������

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

� ���� �� ���� ���� � ����� ��� ��� ��� �� ��'A � ����� �� ����� .�0B

���� ����� 7�� �� ������� �� �� ��� ���� �� � �������� A��� ����� � ����

�� ���� �� ��� �����B ��� �� ���� � ��� ,: �� �� � � �� .: ���� �� A> ��

�� ��� � � � � � �� ���� �� �� 2 �� ����� � �� �����B

7� ���#�� ��� ������� �� �� ��� �� ���������� �� � �� ���#�� �����

#%

Page 50: A Language for Programming Chart Patterns - Stanford Computer

� "�� ���������� ���� ���� � �������� �� ����� ��� ������ ������ ;����

����� ��������� ��< ����� ����� � �����I ���&��� ���� � � ���� ��

� � ����� ���� � �� �� ���� �� ������ ����� ����I � ���� �� ��

�� ���� ���� �� ���� ������� ���� ��� #���

����� ����� � ����� � � ��� ���� �� ������ �� ��� ����#�

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

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

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

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

����� /�����'������ ����������� �������� ��� ���� �� ��� ����� ������

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

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

0�� ��**���# � ���� ���,5�,��

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

���� � ������ ���� � ��#�� � ��������

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

$� � �� ��� �� ���� ����� �� ��� �E���� ��� ���� ������� �� ���� �� ����

��� C ����� ������ �� ���� �*� �� � ����� ��� �� ��� �� ���� �� ��� ���

������ ��� ����� � ��� ������� �� ���� ���� ���������� ����#� ��� %�!

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

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

;�� #��� ����� ������ �� � �� ������ ���� � � ��������� ���

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

�� ���A� �� � � ��#�� 6���� .�5B ;�� �������� �� �� �� �� ����� �

Page 51: A Language for Programming Chart Patterns - Stanford Computer

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

���� � ���� ��#���

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

%� ��" # & " ��

;� �� �� �� ��� � ���� ��� ���� �� � � ���'(�� �� #��� #� �� �� ���

�� ��� ��� � �� ��� ��� ���� � ���'(�� ������� ��� � � � ����� ���

������� � ���� �� ��� ��� �� �� ��� ��� ��� ���� � ���'(��

�)� ���*�� )� ���+�� )� ���,�� )� �-�+�� )� �-�,��

�. � �+�/�� . � �+�0�� . � �,�0�� . � �/�0��

>� �� �� ��� ��� ��� �� ��� ��� ���� �� ��� �� �� ���!

�1# �)� ���+�� . � �+�/��� 1# �)� ���+�� . � �+�0���

1# �)� �-�+�� . � �+�/��� 1# �)� �-�+�� . � �+�0���

1# �)� �-�,�� . � �,�0���

%���� ��� � �� �� ����� �� ��� �� ����� � ��� ����� � �" # & " � ������

������� �� � �)� ���+�� ��� �� #+ � �� �� � ���� ��� ����� �� � �� �

� ��� ��� ��� #��� � ��� ����� �� ��� ��� ��� ��� ��� �� � ��� # �

������ ��� ���� ��� ��� �)� ���+��� C������� ��� ����� � � ��� ���

� ��������� � � �� �� ��� ��� ����� � � �)� ���+�� ��� � ������� ����

��� � �� ���

;� ��� ��� ������ �� ������ �� ����� ��� �� ������ ���� ���������

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

����� ���#� �� ������� ���� �� �� ����� � ���� 6���� 0�, ��� ���

��� �� ���� %��� ��� ��� ����� � ������ � �� �� � ���� ����� �

��� ���� ���#�� ���� � )� ���+�� � ��� ��� ������ �� �� ��� �� � � ��

��� � �� ���#�� ;��������� �� ��� ��� �� ����� � ���� ������� �� ��

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

Page 52: A Language for Programming Chart Patterns - Stanford Computer

6

8 9

2

6

8 9

3

7

9

6���� 0�,< ;���� �� �� ���

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

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

> �� ���� ��� ��� ��������� ��� �� �� ��� �� � � �� ��� � �� �� ���

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

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

6�� ������ �� ������ ��� � � �� � ��� ��� �� �����<

� %� ��� ����� ��� ��� � �� ����� � �� � �� � ����

� ;�� ��� � ������ ��� �� ����� �� � ���� �� ���� ������

;���� ��� � � �� � �� ��� ������� �� �� ����� ���� ��� ���� ���

������� � �� C��� � ���� � ������� ��� �� ��� �� ���� ��<

*� ��� ������� + �� ��������� ���� �% ��

'�� ��� �������� � �� ��������� ���� �% ��

���� ���� � ����� %�� �� �� ����� �% +

� � ��� ����� ��� ����� ���� �� ������� ����� �� #� �� �� �� �� �� �

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

Page 53: A Language for Programming Chart Patterns - Stanford Computer

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

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

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

������ ��� ;�� #��� � � � ��������� ��� ��� ���� �� ����� ���

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

�� #� ���� ��� ����� ��� �� � � � "��� ��� �� �� �� A�� �����

�� #� ����� ���� ��� � �� ���� ���� ������� �� ��B

*���� �##�+$)%$'$% , ��-% �#� $./%

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

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

�� ��� ����!���� � A���� ������ � � ���B

>� � �� ��� �� ��� �� �� ��� �� � �� ������ ��� � �� � ����!�� ��

���� �� ��� �� ��� �� ��� ����� �� ��� ���� �� ���� � ��� #��� � �� �� �� ��

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

����!���� � ����� �� #� ���� ���� ��� ��� �� ����!���� � ����� ����� ���� � �

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

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

����!���� � ����� )��� ���� ������ � �� ���� �� � �� ����� ���� ���� ����

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

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

� ��� ����!���� � ������ C���� � �'���� ����� �� � ���� ������� ��� ��

�E������� ��� ��� ��� �� �� �� �� � ���� ��� ����!���� � ������

Page 54: A Language for Programming Chart Patterns - Stanford Computer

0�$ �*�������� �*"'��#

;�� ���� � ���� �� � ���� ����#� �� � � � % � 6�� ��� ����� ��� � ����!

�� ���� ������� ���� ��� �������< A,B �� �� ����� ��� �� !� ����� �� �

�������������/� � ���� ����� ��� �� � ���� �� ��� ��� �I A/B � ��������

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

% �

*���� �)0 $'$���)&����&12�( ��&#%()$&% ���'$&.

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

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

�� #��� �� ��� ��� ��� �� ��� �� �� �� !� ������ ���� �� � ��� ��� �� ��

���� ��� �� ��� �� ��� ��� � � ����� >E�������� �� � �� ������ ����!

�!��&��� A(1�B ���� �� �� �� ��� ��� � ���� �� ���� ����� ��� ����

�� ��� ��� ��� � �������� ���� ��� �����D � ���� ��#���

' *� �� �� �� �� C ����� ��� �� H ��� �� ��� ����! �!��&��� �!

��� ��I � ��&���� ��� �� ��� ���� � *��� � � ��� ��&����� ;�� ��&������

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

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

��� �� ��� �� �� !� ����� � #� �� �� �� #� �� �� ��� �� ���� #����

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

� #� �� ������� �� � � �� �� �� �� ���� �� ��� �� ��� �� ��� �� !� ������

�� �� ����� � �� �� ��� �� ��� �� �� !� ���� �� � �A� �B �� � *�

�� �� �� � ��� � �� �� �� #� � �� ��� �� # �� � �� �� � ��

� ��� ���� ��� ����! �!��&��� � � ��� ��� � ����� �� �� �� ���

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

���� � *� �� �� �� � ��� ��� ���� �� ���� �E������ �������� ��� � ���

� ��� #�� � ���� �� ��� � ���� �� ��� ����� � ������ ;�� ��������

Page 55: A Language for Programming Chart Patterns - Stanford Computer

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

��� ������� �� %!&��� ��� ��� � �������� ��� ������� J0K� %��� �� ����

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

*���� ��&#%()$&�3 �"�()%�( ���

6�� � ���� ��#�� �� ��� ���� � � % � #��� �� #� �� ��� �� ��� �� �

� ��� ��� � �� �� ���� �� ����� ��� ����� �� % � ;�� � ����� �� ����

� �� ����� �� ����� 0�/� �� ���������� � ����� ����� ���� ��� ���

� �� ��� �� ��� �� ���� � �� ��� ��� � �� ���#� � �� ��� �� ��

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

�� ��� ������ �� ����� ��� ���� �����!#��� � � � �� �����A���B ������

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

���� �� � � ���� ��� ����� � � �� � ��#��� ����� � � ��#� ���

��� �������� ��� � �� ���� �� � � �� ����� � ��� �� �E�������� �� ��

����� ���� ��� � ��� � ����!�� �� ������ ;�� ������ �� ��� ���� ���

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

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

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

�� �� ���� ��� ��� �� � ������� 7�� ��� ��' � F�����G �� ����� � �� ��

C ������ �� � �� ��*� ��� � ���� ��#��� �� �� �� �� �� �� ���

����� ��#�� �� ���� ��� � � ��� ��� ��� ��� ��� ���� � ������

���� ������� ��� ��� # � � ������� ����� �� ���� ����

# �3�� �3 ��� ������ %�� � ��4��3 ����

6���� # �3�� �3 � ��� ����� � ����� ��� A ��� �� ����� ��B

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

� ���� ��� ����� �� ����� �E� �� �� �� ��������� �4��3 ���� ��� ����� �

����� � �� ��� � �� ��� ��� ���� ��� ���� H � ����� � ��� � ��

Page 56: A Language for Programming Chart Patterns - Stanford Computer

�� �� �� �A���������� � ���� �� ��B � ���� ��� ����� ��� ����� � ���

���� �� ��� ���� � ����� �E �� �� ����� ��� ���� ����� ���� � �

�� H ���� 1 "��� $� ����� ��� �� ��� ��� �� � ��� �� � *� �� �� �� �����

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

%�� �� ���� �� ��� ������� �� �� �4��3 ������ ;� �� �� � �� ���

��� ���� ��� ���� H �� � � � �� #� ��� ���� �� ��� ��� �� ����� ��

� � �� �� ��� � �� � ������ ;���� ����� �� �� � � � �� �� ��� �� � ���

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

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

��������� �� ������ ���� ��� ������ ������ 6�� �� ����� ������ ��� �������

��#���

� �� ��� � ���

4��� ���

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

%� ��"�� # � �"�� �� �� �'�

4%54 4%54 �� �� ���

��� � ��� � & '( � �� �-�

� ��� ��� ��#��� ��� ����� � ' � - � � ������� ��� �� � ��

�� ���� ��� ���� ����� A;�� ���� � �������� �� � � ����� , � ��� ��� � ���

�� � �� �� B �� ��� ���� � ��� � ���� �� � �� ��� � # � � ����� ����

$���� � ����� � � � ��� � ������� � ����� * ��� �� � �� ��� � ��� ��

� �� �� �� 7�� ��� �� �� ���� � ����� �� �� �� ���� �"� �4��3 � �

� � �� �� #� ��� ��� ��� ��� ���� �� ���� ������ ���� � ��� #���

��� ���� ;�� �� �� �� �� ��� �� �* �� �� � ��� �4��3 �� ����� � ���� ����

���� ���� �� ��� ��� ����� ��� �� �� �� �� ��� # �3�� �3 ��#��

� ��������

# �3�� �3 ��� ������ %�� � ��4��3 ��� %����

Page 57: A Language for Programming Chart Patterns - Stanford Computer

4��� %��� ���

$���� %��� � ��� �� ���� �������������� � ������ ��� ��� �� ��� ����

A� � J9�� 9�� � � � � 9� KB ��������� �� � ���� �� � � �� � ��� � � �� ����� ��

���� A� ���� �� ,�� �� � �� � �� ���B � ����� �� �� �� �� ��� 9�� 9�� � � �� 9 ���

����� �� ��� ��� ������ $� ����� ��� �������� �� � ���� �� �� %���

�� ��� ������

7����� �� ������� ��� ����� ��� ���� �� ���� ��� �4��3 �� �� ��� ���

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

��� 66 � �� �� ��"�

;� �� �� �� ��� ����� ��� �4��3 � ��� ��� ����� ��� � ���� �� ��

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

� ��� ��� �� � �� ����� � ��� ��� ��� � ���� �� ��I ��� ������ � ���

�� ���� � �� ��� ���� J��� ��� � � � � � K� �� ��������� � ��� ����� � � � ��#���

7�� ��� � ����!�� �� ���� ��� � ��� � �� ���� �� ����� ���� �4��3 ���

� ���� �� �� �� � �� �� ���- ;�� � ��� � �������� ����� � ����

�� �� ���� ��"���� �� � ���� �� �� A�� ���� � ��B ���� ��� �� � �� ���

A�� ���� �� ��B� 7�� ������ ����� �� �� ��&���� �������� ��� �� � �� ���

�� ���� �� ��� ��� � ���� �� ��� 7� �������� ��� �� �� � � ��� � ����

� �� � �� * � �� ���� �� �� ��&���� �� � �� ��� ��� � � * �������� ;��

��� �� �� ��� ����� ��� ���< ��� ��� �� ����� ������� �� �� � ��� �����

- �� ��� ����� � ���� � �� ����� ���� �� A� ���� �� � �� ��� � # � �B

�� �� �� �� ��� ���� ����� �� 7�� �� � �� � �� ��� �� � ���� �� � # � �

�� �� ��I � ���� ��� �� * � ����� � ��� �������� �� ������ ��� ������� ��

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

� ��� #��� ������� �� �� ����� �� ������� �����%��� �� �� �� ��

���� � �� ���� �����%��� �� �� ��� ����� C ������ ��� ����

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

Page 58: A Language for Programming Chart Patterns - Stanford Computer

���� � �� ��� A�� � ���������� �� ������ ���� ��� ������ �����B� �����%���

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

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

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

$� ������� ����� �2� ����$ �� � � ��� ��� � ����!�� �� �����

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

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

��� ���� 6���� 0�/ ���� ����� � �� ���� �� ��� ���� �� �� �2� ����$�

6���� 0�/< �2� ����$

C�� ���� �2� ����$ ����- � ��� #��� ������� �� ���� �� ���� �� �����%���

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

� �� ��� ��� �� ��� � ��� ������ �� ���� �� ��� �� � �� �< �

� � ���� 6���� 0�/� ��� ������� ���� ��� ���� ���� �� ��� � � ��� � ��

� ��� � ������ ;�� ����� �� � ��� �� ��� ����� � ����� �� �� � ��#�� ���

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

��� �� ���� � � ���� ������� � ���I � �� ����� ��� � ����� � ������� ��

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

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

Page 59: A Language for Programming Chart Patterns - Stanford Computer

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

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

����� ��� ��� � ���� �� � �� ��� ���� ���D� ���� ���� �� �� �������� �� �I ����

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

������� �� �2� ����$ �� ��� # �3�� �3 ����� �� ����

# �3�� �3 ��� ������ %�� � ��4��3 ��� %���� � �2� ����$

4��� %��� ���

6���� 0�. ����� ��� �������� ���� �� ��� ������ ����� �� ����

*���� �&��4$&.

$� �� ��� ��� ����� �� %��� � ���� ��� ��� � ��� � ���� �� �� A���!

����� � ��B � ������ ��� ������ �� �� ��� ����� ��� C � ����� ����� �� ��

���������� � #���!����� � � ������ �� ����� � �� ��� ���� � ��� �� ��

#� ���� ����� � ����� ���� � � ���� 6���� � �������� �� �� ��!

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

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

������ �� �� ��� ����� � �������� �� �� ����� ��� '��D� ������ ���

����� � ����� �� ��� ������� �� ����<

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

%� ��"�� # � �"�� �� �� &-�

4%54 4%54 �� �� &*�

��� � ��� � & '( � �� &-�

;�� #��� ����� � ������ ��� ����� � ���� � �� ���� ;�� �� � �� � ���

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

����� ������ � ��� .� ����� �� ���� �� ��� � �� ����� ���� �� A� �� �

Page 60: A Language for Programming Chart Patterns - Stanford Computer

������B �� ����� A��� � ��# ��� ��B ��� ����� �� )�� ��� � �� ����

�� #� �� � ��� ����� � ���� ����� �� � � ���#�� � ������ 0 � . ��

����� ������������ ;���� ����� ���� �� �� ����� �� ��� ���� �� ��� ����� ���

����� ���� ����� �� #� ��� ����� ������� �� #��� ���� �� ��� � �� �� � �!

��� A���� �#����B � ���� ������ ��� ��� �� � � ��� A���� J � ����KB� ;����

� #� �� � � ������ � ���� ��� � ,� /� . � 0 ������������ %���� ��� � �� ��!

��� �� �� #� ��� � ���� �� ����� ���� ��� � ���� ���� ��� ����� �� 6��

�� ����� ��� ����� ����� � ���� �� ���� �� � � � , � 0 ������!

������ � ��� � ���� �� ���� � ���� 0� $� ����� ��� ������� �� �� � ���

���� ������� ������� �� ����� �� ��� ��� �� ����� ��� � � ��� A� �!

� ���B ������ ��� ����� ����� � �� � � � � � ��� ��� �� ��

��� ����� ���� � ��� � A� �� �� ��� ��� ��� �� � �� ��� �� 0B � ���

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

4�� �� ������� ��� �� ���� ������� ������� ���������� �� � �� ��!

��� � A�-�*�-� ��� � ��B� �� � ������� %��� � ����� %����7 �����

�� ��� ���� �� ������ ��'����� ������� �-��'�-��� �*������ ��� �� �����

���� �����! ����� �� � ����� �� �� � � �� �� ��� � ����� / � � �����

.� �� � ����� ��� ����� �� ' � -�

%����7 66 ����� �� �������������

%����7 �%8� �"�" �! �� � ��

%� ��"" �� 9"3��9 ���

�4�� ��� �"�$���%��� � �%8��6 ��

�"�� ��� �� �%8�

"3��7 66 ���� � � �� �� ��#��� �� �#�

"3��7 � ����#��6����� � � � #�

� �4�� %�� "3��7 � ����

Page 61: A Language for Programming Chart Patterns - Stanford Computer

"3��7 : �� ��

;�� ���� � ���� ������ � ��������� ��� ������� � �� �� �

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

� ��������

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

��� � ��� � & '(

;�� ���� ������� ������ ��� ��� ����� � � . A���������� �� � �� ��

�B� ���� �� � �� #� ��� ��������� ����� 8�� �� �� � ��� � �� ��

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

���� ���%� �� ��� �� ; �#�

��� 66 ���%� �� 1" �

6�� ��� ����� �� �� �� ��� %��%� �� ���� �� � ��������

���� ���%� �� < "�� � � �� < "��

��� 66 ���%� �� 1" �

� � < "�� < "�� � .�< ��� � =��

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

� �� � ��� ��� � ��� ;� ��� ��� ���� ���� �� � � . ��� �� �����

�%5%� " ��

� �8 "� ��6 ��� - ��� �< "�� -�

%� $ � ������6 >��� ?�+ < "�� ?�+

� %� $ � ������6 =�4%�5 =��

�� �� ���� ��� ���� ��� �� ��� ����� ��� � ��� �.�< �� � ������ �.�<

��I �� ��� ��� ����� ������ $� ��� �� � �� ��� =�$ �� �� �� C �����

��� ��� �< "�� � ����� ���� �������� �� ������� ���� ��� ��� ��

Page 62: A Language for Programming Chart Patterns - Stanford Computer

%��� ��� �=�$ � � =�$ �< "�� � 4���

�< "�� %� @ �< "�� A� < "�� �% @ A�

�< "�� %� @ �.�< A� < "�� �% @ A�

�.�< %� @ �< "�� A� < "�� �% @ A�

�.�< %� @ �.�< A� .�< �% 9$ �9 A� �� 2�%�3� "%��

: @ : =��

���

��$����5�� � .�< ( �� ��� $�� ��%�3

���� �&�� ��� 66 ���� � � < "�� �� < "�� �� < "�� �"

�� B� 4%�� �4� ���"��� ���%�%�%� � �4���

�� #� �%�5 C� "%�%�� %$��� � ���"���

�< "�� %� � �< "�� A� < "�� �% � A�

�< "�� %� � �.�< A� < "�� �% � A�

�.�< %� � �< "�� A� < "�� �% � A�

�.�< %� � �.�< A� .�< �% 9$ �9 A�

���

%�� �� ����� �� ��� �� ���� �� #�� ��� ���� ������� ������ ��� ���

����� � ��� � ��� � & '( � ��� ��� ��� ��� �� ��� ��� �� � �� ��

������� ������� ��� ����� �� �� � �� �.�< '� � � �.�< -��

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

�.�< -�� ���� �� ������� �� ���� ������� ������ ��� ��� ����� � � -�

7�� ��� �� ��� � �� ��� � � ��� ��� � ���� �.�< '� � �.�< -�-

'���� � ��� ��#�� �� ��� ��� �� ����� �� ��� �� � ��� � ���� �� � �

�� ������� � ��� "$� ������ "$� � � ��� ���� � �� �� �� ��� $� �������

��� ���� ����������� A� ���� ���(� ����������B �� � �� ���� � �������� "$�

��#�� � ��� �� ��� �� � ��� ����� �� ������������

Page 63: A Language for Programming Chart Patterns - Stanford Computer

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

� �� )� �� ��� �� 1�DD�

����

� )�2 � . �2 � 1#2 �� ��� � ��� �� 2�%�3� E���������

"$� 66 � �� �� �< "�� � ��

"$� )� �#'� #�� �#'�#��

���

"$� � $ � .�< �'������� ���

�� � %� �� � �4� ��%�3� ����������

�� "%3� )�2� . �2� 1#2 ��

4��� ���� )�2 �

���� . �2 �

���� �1#2 ��� ��$ �$ � ���� ��� @ "��5�4 �� � '

%�� ��� "$� � ��� ��� �1#2 �)�2� . �2��� � ������ �.�< '� .�< ��

.�< -�� ����� � ������ �< "�� ?� < "�� ,� < "�� 0� ��� ��� �1# �)� �?�,�

(��� . � �,�0� (�'���

�� �� ���� �*� ��� ����� ������� ����� �� ��� �� ��� ����� � �����<

A,B � ���� �� %��� A/B ��� � ����� � ������ ;� � ���� �� %���� ����� �! �

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

�� ��� ��� � �� ��� ���� ������� ��� �� �� �� � .�< ��� �� ������� %����

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

��� � �� ��� ��� � �� ��� 6�� �� ����� �1#2 �)�2� . �2�� � �����

����� ������� ��� �1# �)� �?�,� (��� . � �,�0� (�'��� � ����� �����

# �3�� �3 ���� %��� � ������ ��� ��� ����� �� � ��� � ����!�� �� �����

(��� ��� �� ��� # �3�� �3 ����� ��� ����� � ����� ��� ��� � � ����

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

Page 64: A Language for Programming Chart Patterns - Stanford Computer

;�� ��� ��� �� �������� ���� � � � �����*�� �� �������� %������� ���

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

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

��� �� ����� ������ ���� ����� 7�� ������ ����� ��� ������ � ������ !

�� ��� ����� � � ������� ���� ��� ������� ���#��<�

�� " �%$� *0�,* ���� ��*/, �%�3� F �( $��

�� " ""� ?�*/��+,*�0?� #����

����"���� ���%"%�5 8��4� ���

E��2 EG=2HG ;�.)IG J�%$� J ""�

� ��� ;�� #"�� *+�? *'�/

KE KE �*�' (�(

�L ;�� #"�� /�+ ?�,

"%���< ���� ��� +�( *�+

6��� ��� ��� ���#��� �� �� �*� ����� �� ��� �������� 6������ ��� � ���

����� ���� � ���� ��� � � ���� ���� ���� � �� H� �� ��� � ���� � ��� ��

��� �� ��� � �� ��� 6���� A-UB � ��� ���� ���� ��� ���� �� �����

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

�� ������� �� � � � ��� ��#� � ���� ;�� ����� ������ � ��� "%���<

����� �� � � ��#�� ����� �� �������� ��� �� ���� ��� � ��� �< "��

� ���� �� � ����� �� .�< � < "�� � � ������������

"%���< 66 � ��#���� �� �< "�� �� < "�� # �� < "�� ��

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

���� $% &�'(�) ������� �� *+, -����� �� ."-� �� �������� �� �� � �� ����� �� �

����������� � ������ ��������� ������� �� &/ ���� �� �� � ���� �������� �� %/ ����������

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

Page 65: A Language for Programming Chart Patterns - Stanford Computer

"%���< � �< "�� �� �< "�� �� < "�� �� 9�9 ��

"%���< � �.�< �� �.�< �� .�< �� 9$ �9 ��

����

�� ���� ���� �� � ����� � ��� �< "�� � � � ���� ��� � �� �� ������� � �!

��� � ���� ���� ����� � � ������������ �������� �� ��� .�< � � ����������

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

��� � ������ ;�� ���� ��� ��� ������� �� � ����� ��� ����� �� ���� ���

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

;� �������� ��� ������ �� � ������ ��� � �� ����� ��� ���(� ����

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

��� ���� �� ������� �� ���� .�<� �� � �� ��� .�< ���������� ��� � ��� ����

< "���

� � � ��2 )�2 � . �2 � 1#2 �� ��2� � ���

� � .�< .�< ���

%���� �� ������� ��� ������� �� ����� �� � ��� ����� �� ������

�" �� �1� ��%� " #� � ���%� �� # � �� # 4���

�"��� ���� " � 4%54 66 �� #

%��� ��� ���%� �� � � �; �#� � 4���

���

%��� ��� ���%� �� .�< .�< 4���

���

�" �� I;� # � �� # 4���

"$� 66 �� �#�

%��� ��� I;� � �� ��� 4���

���

Page 66: A Language for Programming Chart Patterns - Stanford Computer

%��� ��� I;� � ��2 .�< 4���

���

�" �� �I5%� #� � E$� �� # � �� # 4���

�����&������&�������&�� 66 �� �� #

%��� ��� E$� �� ��%�� �" 4���

���

%��� ��� E$� �� .�< .�< 4���

���

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

� ��2 � � �� ������ # �3�� �3 ����� ��� ��� ��� ������ �� ����� �

������I ���� �� �� � � ��� � ��2 ��� �� �� �� %���� � ����� �� � � ���

� �� ��� �4��3 ������ ;�� ��� � C ����� ;��� ������ ���� �� ����

��!������� �� ����� ��� ������ �� ����� � ������ 7�� �� �������� ���

��� ��� � ������� ����� )��� �,�� ��� �$ ���� � ��� � �������� ;��

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

��� �����D� � �� �����

# �3�� �3 66

��� "" # � �� �I;� #� ���%� �� # �� E$� �� � �� � �� ����

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

�� ����� %��:�����%� 66 � ��2 �� .�< � �M

�� ����� %��:�����%� 66 � �� �� ��"� � �M

;�� ������� ���#�� ����� ��� ��������� ���� ��� � �� ��� ���(� ����

������� ���� ��� ��� � ����������� �� ��� �E���� ������ ��� �� ���

������ � ������ � "%��< ������

Page 67: A Language for Programming Chart Patterns - Stanford Computer

�� " �%$� -+�'+ ���� �'/(/ �%�3� F �( $��

�� " ""� -�0*'�*?(�,*( #����

����"���� ���%"%�5 8��4� ���

E��2 EG=2HG ;�.)IG J�%$� J ""�

$�� �� ;�� #"�� +'�- ?/�'

KE KE �,�0 (�(

�L ;�� #"�� /�0 ,�0

� � ����� /�* '(�,

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

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

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

6����� �� �� ���� ������� ;� ���� �� �������� ������� �������

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

���� ������� $� ���� ���� �� � �� �� � *��� �� C ����� ��� ��������

0�0 Æ5���� ��!,���#

�� ������ � ����� ��� ��� ���� ������ ������ �� 2 � ����� ��� C �����D�

�� � �� ���� �� ��� ��4 ����� ����� � � �� � �� � ��� ����� � ���!

����� ��� ��� �� � �� � � �� ����� ���� ������� #��� � �� ���� ����

����� �������� ��� ������� ������ ��!�� � ���� ������� �� .:: ���!

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

H� �� �����

������ � ��� ������ �������� � $ �� �� � 8��� � �� � ���������

� ��� �� �� ��4 J./K� �� ����� ����� ���� ������� ��� � � �� ���

Page 68: A Language for Programming Chart Patterns - Stanford Computer

�� C �����D� �� ��4 �� �� � ��� � � � ;�� ������� ���#�� ����� ��� �� !

� �� ��������� ��� �� �4� %���� �� � ��� ����� $�� �� A������ �� ���

� ���B� �� �� ������� ���#��� ���� �� ��� � ��� ��� ��� ���!��������

�����

�� " �%$� '-�?� ���� �+,+ �%�3� F �( $��

�� " ""� '�0+��/*(�-** #����

����"���� ���%"%�5 8��4� ���

E��2 EG=2HG ;�.)IG J�%$� J ""�

KE KE �+�� (�(

��� E�I �'�( �-�+

�L ;�� #"�� '0�? '��/

0�3 ��"���( �*�-

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

������� ��� ;���� �� ��� � ���� ����< � ���� ����� � �����

������� � �!���!H� ���� � ����* �� �� � ���� ��#���� $� ���

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

>� ����� � �� ��� � �� ������ ������ ���� �� ��� ����� ���� �� ���!

�* ��� ;�� � ����� ��� ����� ��� ��� ��� ����#� ����� ��� � ����

��#��� ��� �� ����� �� ������� � ������� � �� � � ��� � � �� ���� ��

�� ��*� ��� ����� � ����*� �� ;�� ���� ��� �� ��� ���� �� �� �����

���� � ��� � � � � �����I �� � � ��� ��� ��������� � ��*� ��� ��#!

��� � �� ����� �� ;�� ���� �� � � �� � �� J,:K ��� ����* ��

�� ���� � �� ������*� � �� �� � ���� ��%� 7�� �� ���� �� �� �� ��� ���

Page 69: A Language for Programming Chart Patterns - Stanford Computer

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

�� �� ��� ��� ������� �% ��� ���� � �� ��� � ���� �� ���� ������� �� ���

���� � �� ���

4�� ������ �� �� � �� ����� � �� ��� �� �� �� ����� ��� � ���� ��#!

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

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

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

�* �� ��� ���� �� ����� ��� ;�� � ������ � ������ �� ��� �������

;�� ��� �� �� ��� ���� �� � ��� �� � �� J,:K �� ��� ������� � !

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

��� �� ����� ������� �������� �A� � ������ ��� �� ����� ��� ���� � ������B�

$� �� �*� �� � ����� �� ���� ���� ��� ��� ��� ���� �� ��� ��������

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

�� � ������ � ������� �� �� �� ��� ��� !� �����J.:K ��� ����*� ��'� @�� !

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

���� � ���� � ��� C ����� �������� $�� ����� �� �� �� �� � �� ����� �

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

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

Page 70: A Language for Programming Chart Patterns - Stanford Computer

�2� ����$�� �"�2���( � ����(� 5

4��� � ��� � ���"�8�"� ����6 ��� "�8�"@'�

5 ���� �� 2��� ������ ���

5 �:�"�8�"� �� 2��� �������" #�"�4� �� ���"�8�"�� ���

�"�2���( 66 � ������� �� � �� �����#���#� �� 2��� �� #

�"�2���( � � 5 �2��� � �����

"�� �7 � �

%� 5 �7 �$ � ��"�2���( � �7 5� ���

����� 66 � ���"� �� 2��� �� �2��� �

����� � �"�2���( ���� �����%��� 5

4��� 5 ��� ��

� �� �� ���� ��

� ��"" �� �2��� ���������

� �4�� %��

"�� ��7 ��� � ��

%� %� ��"" ��7 �4�� �� �"�� �2��� �������7��

�4��3 ��� %��� ��$$� �"�2���( ���� �����%��� 5

4��� 5 � ���"�8�"� �� 2��� ���� ���8���� ��� "�8�"�� ���

�� � �4 "�8�"

"�� %��� "3��7 "�8�" %���

#"� $ � ���� � ��LL� %���

� �� �� �� � �4 ��$$�

%� �� ��"�$ 1 "�� #"��

6���� 0�.< C ����� ���� ��� 7 ���� ���

Page 71: A Language for Programming Chart Patterns - Stanford Computer

Chapter 5���� ����� �� ��� ��� ��� ������

������

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

������� ���

3�� 6�5-#�*,�(

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

����( ������ �� ��� �� ������� � N ���� � � � � ���� ������� N � �� � � � � ���

N �!�� � � � � !�� A#�� ��� B � ���������� "�� � � � � � "�� � ����� � � ��

, � � � #� 6�� � �� ��� �� � � ��� � N ���� � � � � ���� ��� ������ �� � �

�� � � �� �� � ��������� � � � A"� �B ����� � � �� ��� �� � � ��� � � ��

��� � ���� �� ���� � " � ��� �� ��#�� ���� ��� ��� �� �� ����� ������

����� ��� ��� � ��� �� �� ��� � ����� ;�� � � A"� �B � ��� ������

"�� ;�� ���� �� ����� � "� � ��#�� � ��� � �� ��� �� ��

P�� ��� �� � � ��� $ � �� �� ��#� �� � �������<

�� N��"�� � � � $� , � � � #��

"�

Page 72: A Language for Programming Chart Patterns - Stanford Computer

�� �� ����� �!&��� ��� ��� � � ������ ��� � ����� � ������

������ �� ��� �� � � ��� � N �%�� � � � � %��� ��� � N � �� � � � � �� ����

�� � N �,� /� .� 0�� ��� , � � � 0� � ����� ���� ���"������ �����

"����� ����#�� �� � &��� � ��� � � �� �� �� ����� &��� � ��� ��

6����������� �������� N "����� � "����� � "������ �������� �������� ��� ���

�� �� ����� �� ����� %�� %� � %��

3�� *��'���*� 2*� ��%& �)�

� ��� ������ �� ��� ��� ���� �� ��� ��� � *� �1� ��� ���� ������� �����

�� ������ ������ 6���� 2�,� ���� ����� ��� � �� � �� ��� �� �� ��� 0!&���

��� ���� ;���� �� 0 � � ��� ��� ��� ���< %�� %�� %� � %�� � �� ���������

����� ��� �� ��� �� ��� � ��� #��� ����� A��� ����B ��� � ����� ���� �

��� ��� ���� � ����� � ��� � ��� ! ��������� ��� ������ % N !�

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

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

� � ��� ��� �� ��� ���� ;�� ��� �������� � �� ���� ��� #���� ��� �

��� ������ %� N .� %� N ,� %� N 0� � %� N /� @�������� � ���� ���� "���

��� � ����� � �� ����� � ����� � O , ��������� ������ �� � ��� ��

��� � � �� � ����� � O , �� � � �� �������� ������ ����&������ � �������

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

;�� ���� � ���� � � � ��� ���� � �� � ��� ,� �� �� �� � ��� /� &���

A%�B � ������� � ����� ,� ;�� �� ��� �� ��� ������ � � � � �� ���� ��

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

"������ ��� %� �� ����� ��� � ��� ,� ���� �� ��� �� ����� ������ � �

� �� �� ��� �� � ��� � ���� ������ "�� � � �� ������� A%� N ,� %� N ,B

� A%� N ,� %� N /B ������������ �� �������� � ��� ���� � ��� �� ������

;�� ��!������ �� � � ����� � �� � � �� ��� ������ �� ������ � � �

Page 73: A Language for Programming Chart Patterns - Stanford Computer

����� � � ��

C������� ���� ��� �������� �� � �� �� ������� � ��� ��� ��!

"���� �� ��� ��� J,0K� �� �� ����� ��� ������ � ��� 7 ��� ���

����� ����� �� ����� ��� ������ ��I � ���� �� ����� ��� ����� ��� ��!

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

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

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

3 4

a : 1 b : 1

(root)

3 41 2

2 3 4

3 41 2

1 2 3 41

.... ....

....q1

q

q

q

2

3

4

6���� 2�,< � �� � ������ ;���� �� 0!&��� ��� ���

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

�� �������� ������ �� ��� ���� ��� ��� �� �� �� ���� � ����A���� ���

� �� �������B ������� � ����� � � ����� ��� ������ �� �������

������ � �� �� �� ���� � �� ������ >���� ��� ������ ����� �� ����

���� ��� � ����� %� �� 6���� 2�,� � � � �� ����� ��� ����� �� �����

� � ��� �� � �� �� ���� ����� / �� ��� ����� � ��� ����� � ��� ��� ��������

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

Page 74: A Language for Programming Chart Patterns - Stanford Computer

3 4

b : 1

(root)

....q1

a : 1 .... ....q

3 41 2

2 3 41

q

q

q

2

3

4

2

1

1 2 3 4

6���� 2�/< � �� � ������ ;��� �� 0!&���� ��� ��� ����� �� ��� �� !

��� ���� ��� � � ��� %�� %� � %�� %�� %��

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

� � � �� .!&��� ��� ��� A��� ��� � ���� � ��� ���� , �� 0B� � ��� ����

�� ����! �!��&��� ��� ����� �� ��� �� ����� ��� �� ��� ��� � ��� � ��

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

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

� ����� ��� ���� � ������� �� ���� ��� # � ������� 6�� ����� � � ��!

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

�� �� ��� ���� �� � � � ������ ���������� 6�� �� ��� � �� ����

��� 0!&��� ��� ��� ���� �� � %� � %� ��� �E���� �� ��� ����� ����� �

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

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

4� ����� ������� � �� #��� ���� ����� ����� �� �� � ����� � � ���

Page 75: A Language for Programming Chart Patterns - Stanford Computer

��� �E���� �� ��� ����� ����� � �� �� ��� �� ��� ���� � � ��� ��� ���

����� ����� �� �� #���� ���� ��� �� ������� 7�� ��� �������� ���� ��

��� ��� � � � ��� ����� � �������� ������I ���� �� � ��� �� ��� ��!

���� �� �� �� ��� ���� V� � �� � � ���� � �� �� ��� �� ��� ���� �� �����

�� ��� ��� V�� � ���� � �� ��� ������ �� �� �� � � �� �� V�D� ������ ��!

��� ��

6���� 2�/ ����� ���� �� 0!&��� ��� ��� �� ��� �� ��� ����< ;��

#��� �� ��� ��� ��� � � � ��� �%�� %��� � ��� ����� ��� � � � ���

�%�� %�� %��� A;�� ����� �� ���� ��� ���� ��� ������� �� � � �� %� ���

�� ��� ����� ;�� �� ����� ��� � ��� �� ����� �� ������� ���� ��� �� !

��� ���� A�%�� ����� 2�.�/B�B

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

����� %�� ��� ����� � ���� . � 0 ������������ �� ��������� C������� � ��

� �� ��� �� ��� 6���� 2�,� � �� ���� �� ������ ��� �� ������ ��� ���

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

� ������� ��� �� ���� ������ � ��� ��� ��� ������ %� N 0� � ��� � ���

��� ������ �� ��������� � ����� �� ��� ��� � �� ���� ������ � %� N .

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

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

��� �� �� #�� �� ������� �� ���� ;�� ��� ��� � � �������� ����!

���� � � *� ������ �� �� ������ ��� �� � �� C ����� J/5K� �� ��� ���� ��

������ � *��� ������� ���� �� ��� ���� ;�� ��� � ���� ��� ����� ��

������ �� ��� ���� �� ������� �� ������� # � ������� ��� ��� ���� ��� !

���� ;�� ��� �!���� ���� �� ������ �� ����� ���� � ��� �� ��� �� ���

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

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

Page 76: A Language for Programming Chart Patterns - Stanford Computer

3�$ �"#*����

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

�� ��� ��� ��� �� ������� ;�� � *� ����!1!��&��� ������� � ��#�� �

����� �!&���� � ���� 6���� 2�.� ;�� ����� � �� ������� � ������

�� � � ��� ��� �������< ����� � ������ � I � � � � ����� � ���

�� ����� �� �� �������� �� ��� ������ � �� �� � ����� A��� ��� � � � �

������ � �B� ��� ������ � � � ���� �� #� �� ������� ���� � 4�������� �����

'�!�'� � � ���� �� � ���� ��� ������ �� ��� �� �� �������I � ������

��� ��������< �(� � ��� ��� �� �� ������� � ���� ���� ��� F�� � ��G

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

����� �� A� �� ���� �B ���!������ ����� �� �������� > �� �� ������

� ������ ����������� ;�� ������� �� ��� ��� � ��� ��� � ����� �� ��

������ A��� ��� � �� ������ �B � � ��� ��� ����� ����� �

���� ��� �!&��� A� < ������� � < � �B < ������

����� ) < ���������

�(� < ������!� ����

�� ���(���!�*�� A�B �� � ��� �A�B I

A&� �(�B � '�!�'� A� � �B I

��� ��� A� �� ��B � �(� ��'�+�

�� �!&��� A� �� ��B �� ) I

� ��� �����A&� )B

6���� 2�.< ' *� (���!1!��&��� ��������

;�� ������� � �������� ������ � 6������ ����� ����� � �� ��� �� � ���!

������ � *��I ��� ����� � ����� �� ����� �� �������� ��� � �� ��� ��

���� ��� �� ��� ��� �� �� �� �� �� �������� 8 ����� ��� ����� ���

Page 77: A Language for Programming Chart Patterns - Stanford Computer

� �������� #���� $�� ��� � ��� �� ������ � ��&���� �� �� �� ��� ��!

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

� � ��� 6�� �� ����� � ������ ��� �� �� �� �� �� � ��� �� � ����� �

��� ��� #��� ��� ������� �� ��� ��� �� ����� �� �������� ��� �����! ���

�������� ��� ��� ������ ��� � �� �� ��� �� ������� ��� #��� ��� �������I

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

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

��� ������ �� �� ��� ��������� $�� ��� � ��� �� �������� A ��� � ���

��� ������B � ��&����� �� ���������� ���� ��� � %��� ��

� ���� �� � *� ����� � ���� � *�!���� ���� �� ��� ��� � � � ��'�+

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

�� ��� ��� A� �� ��B �� ) � � �� ��� ��� ���� ���������� �� ��� �������

�� ��� ���� A�� ��� ������ ���B � ��� ���� ;�� ���� ��� � ������ ���

��� ���������� ������ ��� � ����� A � ��� ����� ���� ��B� ����&������

���� ��!���� ) ���� �� �� ��� ��� �� ������ ����� 6�� ����� �� ��� ����

�� � � �� �� A� �� ���B ������� ) ����� ���� A� �� �B ������� ���� ) � � �

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

5���� )"

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

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

��� � � �� ������I ��� � � ��� ������� �� ������ ���� � �� ��� � ��

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

%������ ���� � ��� ���� �� � ��� ��������� �� ������� �� �� �� ����

�� ����� � � ��� ;�� � ��� ��� ����� �� ������ ���� �� �� ������� �

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

��������� ��� ��������� �� � ����� �� �� � ������� 0&,1�

Page 78: A Language for Programming Chart Patterns - Stanford Computer

� ��� �� �� A � ��� � ���� �� ����� 2�.�/�B C���� ��� ������ ���

� � �� ������

A��� ��� ��� ��� ��� ��� ��� �B

;�� ����

A��� ��� ��� ��B �� A��� ��� ��� ��� �B

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

A��� ��� ��� ��B �� A��� ��� ��� �B

� � �� �� ��� ��� #��� ��� �� ������� �� �� �� �� ����� � � ���

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

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

� ��#� ����� �!� ��� ��� ��� ���� �� #��� ����� ��� � � ���� �

��� ����� ��� ���� ,� C���� ���� �� � � � � ��������

����� �� � ������� ��� ��� �� ��� ����� � � ��� ;�� ��� � �� � �

� � ��������� � ��� ������� �� �� �<

� � <<N � � << ��� << � � � %��

6�� �� ����� ��� � ���� �� ���� �� ���� ������ �� ���� � � ��� �

� ��������� �<

� N %�� << 0 << %��

� ���� �� ����� � � ��� �<

�� N %�� << 0 << A%�� << 3 << %��B

P�� ������ � �� ���� � � ���� � ��� ��� � � ��� ;�� � �� '�!�'� A� �

��B ��� �����

A&�� �A���%��B� A��� A%�� << 3 < %��BB�B

Page 79: A Language for Programming Chart Patterns - Stanford Computer

����� �� ������ �� ��� ��� �� � � ��� + N ���� ��� ��� ���� � ����� �� ��I

�� ������ �� ��� ��� �� � � ��� , N ���� ��� ��� ��� � ����� � &�� �����

&� N �� � "����� ;���� �� � �� ����� �� � ��� ����� � � �� �� ��� ��

��� #��� �� ������� �� �� ��� ������ ' ����� &� N ���� � A�� � ��B �

��� ��� �� ����� �� ����� � � ��� A+ ! ����B � A, ! ����BI ��� ���

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

;� ������� �������� '�!�'�A��� A%�� << 3 << %��BB �����

A&�� �A����%��B� A����%��B�B

����� ��� ������ �� � � ��� N ���� ��� ���� � ����� �� ��I ��� � �

� � ��� - N ���� ��� � ����� �� &�� ����� &� N �� � "����� ' ����� &� N

���� � A�� � ��B�

%��� �� � � �� ����� � � ��� ����� � � �� ��� �� ��� �� �� ��!

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

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

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

����� � ������� � ���� ��� ����� �� �� �� � ��� ��� #��� �� �������

5���� �2&+%$�& �����

6���� ����� ��� �� ��� ������ ���� �� �� �� ��� ���� ��� ��� � ���� � ���

'�!�'� ������ � �� "���� ���� �� ��� � ����� � A&B � ��� ���� 7�� ���

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

������ ���� � �&�� ��� �� F�&�!"�G ���� �� � ��� � ��� � � ��� �����

��� � ��� �� "��� � ��� ����� �� �&� ��� �� ���� ����� ��� ��� A���

����� � � ��� ��� � ���B

)��� � *� �� �� ��� ��� ��� ������ ��� �� �� ��� ��� � ����� ��� ���

#��� ���� �� ���������� ���� � ������� ������� ��� ���� �� ���� ���

� ��� A������������ ����������B ������ ����

Page 80: A Language for Programming Chart Patterns - Stanford Computer

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

��� � ����� �� & A���� � ����� ����� �� �������� ������ ��� ���

���� ����� � �������B � ����� ��� � ����� ��� �� � ������ ����&���

�E���� ���� �� � ������� � ��� ������ �� ������� � � ������ �� ��� ��� � ��

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

;�� ������ �� ����� ��� � �� A���� �� �����B ������ ��� �� � � ��#�� ���

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

5���� ���'$&. ���

� ��� ������ �� � �� A��� ��� ������� �� ������ � �����B� ��� � �� �A�B �

��� �������� � *��� %��� �� � �A�B ����� ������� �� � ��� � ���� ����� ��

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

������ ��� ������ �� ��� ��� ��� ����� �� ��� ����� ;�� ���� �� ������

�� �A�B �� � �������<

,� �A�B � � �� � �������� � ��� � ����� � � ��� ��� �� ������ ���� ;��

� ���� ��� ��� ������� ���� �� ��� �� �� ��� ��� A�� ��� ������

�B ���� ��� �� � �� ��# ���

/� �A�B � � � �������� �� ������� �� �������� ;�� � ���� ��� ��� ���!

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

��� ����

.� �A�B � � � �������� �� ������� ���� A � ���� �� ��B �������� ;��

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

������� �� �A�B ��� � �� ��� ��� #��� ������ �� � � ��#�� ��� ��� �

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

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

�������� ����� �� � ��� ;���� � � �� ��� � �� �� � �A�B ��� �� ��

Page 81: A Language for Programming Chart Patterns - Stanford Computer

�������� � � ���� �� ������ �� ������ 8 ����� �� � � �� ��� �A�B �

����� � ��� #�!�� �� ��!����� � ��� ��� ����� � ���� �� ��&����

��� ���� ������ �� ������ ���� �A�B� � ������ ��� ��� ��&������ ������

� � � ���

3�0 7!��� ������*�

$� � �� ��������� ��� � *� (1� ��� ���� C ����� L ��� ��%���� � *� ���!

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

��� � � �� ������ ��� ���� ���� P�� ��� �� ��� ���� �� �� �����

� � ��� ��� ����� ���� �� ������ ���� �� ��� ��� #��� � ��� ��� ����� �� !

��� ���A� *��B � ������ ��� ��� � ����� �� ���� ��� � �� � ���

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

;� ������ �� ��� �E�������� �� ��� ���� ��� �� ���� ��� ����� � �� �����

�!&��� ��� ����� $� ���� �� � � �� ��� �� � �� �� ��� �������� ��!

������� � %��� ��� C ����� J/2K� � ����� ���� ����� ��� �� �� �� ��!

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

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

; �� ,� %���� �� � �� � ���� ��� �1� ��� ���� �������� ��� �� �� �� �� ��

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

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

,�3P�* ����� �= � ��� ��� ���� ;�� ����� �� ���� ������� ���

���!2�:/ ��� !4/ � ���#�� H ���

; �� 2�/ ����� ��� �E��� �� �E���� � ����� � ��� �� �� �� ��������

������ � ��� ���� C���� � �� ���� � �� ��������� �E���� � � ��� ,/!

&��� ��� ��� � .%8E�#� � �� ��� ��� � �� 6�� �������� �� �������

��� � � ��� ���� �< ��� � �#��� � �&�� ��� �� ��� � � =�� 66 66

�=�� 66 # 66 �=�� 66 � 66 =�����6��� ��� � ��� �� � ��� �� � ���

Page 82: A Language for Programming Chart Patterns - Stanford Computer

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

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

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

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

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

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

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

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

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

&'�� %������ ��������� ��#����� �� �!(

������ �)� %����$��� $��� ������������ ���*��

; �� 2�,< %�� �� �� �������� ������ ��������� � � ���� �������� � ���

�� ������� �� �!&��� ��� ����

�� �� �� �������� ������ ����� ��� ��� #�� �� �� ��� �� � ������

;�� �������� ����� �� � .%8E�#� ������ ��� �!&��� ��� ��� ��� ���

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

�� ��� �� ��� ������� ��� �� ���< ,� ;�� �!&��� ��� ��� � � ����� ����!

��� �� ����� �� ���� �� � � ���I /� ;�� ������ #� � ��� ���� �� ����#�

#� ������� �����!#��� � ��� �� ����� ��� ��� �� � � ��� ���� ���� ��

����� ;���� � �� � ����� �� ������� � � �� �� � ������ ��� �� ��� !

��� ����! ���� ��� � ���� 7�� ���� �� �������� �� ����� � ������ �

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

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

Page 83: A Language for Programming Chart Patterns - Stanford Computer

'��� +���������, '���

���� ������ &�������(

� ��-���-��� �.�

�� �-���-�� .�

���� ��-� -�� .�

�������� -� �-�� ��.

����������� �-� �-� � ��.

�����������

; �� 2�/< ��� �� �� �� �� ��� � ��� ��� ��� ,/!&��� ��� ���

; �� 2�. ����� ��� �E��� �� �E���� � ����� � ��� �� � �� �� � ��!

�� �� �������� ������� C� � �� �� � �� ����� @7���� W ������� �� �*�

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

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

�� ��� ����� �� ;�� #����� ������� �� �� � ��� ��� ��� �� �� ��� �� �

�� �� ��� ��� � �� �� �� �������� ������ ����� ���� P�� ��� �� � �� ��

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

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

3�3 �!!"�5���*� �* ���

� ��� ����� �� ������� �� ��� ��������� �� ��� �!1!� �� ������ ��� ����

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

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

Page 84: A Language for Programming Chart Patterns - Stanford Computer

'��� +���������, /��# 0����

���� ������ &12,��� 3 �������(

� �-� -��� .�

���� ���-�� �.�

�������� �-� ��.�

������������ � �-��� ��.�

��������� � -��� �.��

�������

; �� 2�.< ��� �� �� �� �� ��� � �� � �� �� ��� ,:!&��� ��� ���

� �����L� ���� �� ����� �� ����� ������ � ���� �� ��#�� �� �� �!

�!�������� � ���� ��'� 7�� �� ���� ��� �E�������� �� �!1!� ���� ���

���� �� ������ ����� �E���� ��#��� �� ��� � ����I ���� �E�� ��� � �

��� � ���� � ������ ;�� ��#��� ���� ����� C ����� ��� ��

5"# " ��� ��� � � ��� �� ��� � � ��� �� ��� � �� � ����

��� "�� #�� �� � ��� ��� � ����

#�� �#�� ��� � �� � ����

#�� �#�� ��� ��� � ����

#�5 �#�� ��� � �� � ����

%� ��� �& #�5� � ����

�%54� "�� ��5 ��� ��� � �� � ����

��5 �� � ��� ��5� � ����

��5 ��� ��� ��5� � ����

Page 85: A Language for Programming Chart Patterns - Stanford Computer

6���� 2�0< C� � � ��������

#�5 �� � ��� ��5� � ����

%� ��� ��� #�5� � ����

��� ��#�� �� 5"# "� �� ����� �� �� ��� ��� ����#��I ��� � ���� ���� � �

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

� ��� � ��� �&� �� #�� �#�� ��� � �� � ����� ��� ��� �� ����� ��

A����B ��� � ��� � ����� �� ������ �� !� ����� #�� � � � A����

������ �B� ' ����� �%54�� �� !� ����� �� �������� ����! ���� ���

� ��� 7��� ��� � �%54� � � ��� #��� �� �� ����

; �� 2�0 ����� ��� ��� � �� �� �� ��� �� �� ��� �� �� �! �!��������

� ���� ���� /: �� �� �� � �� � � �� /: ���� ��� ���� �E���� �����������

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

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

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

Page 86: A Language for Programming Chart Patterns - Stanford Computer

(��� = � �� @ ���� '���� �� � ���� A� ��B

/2: 02: 92: 52:

5"# " ,9�2 /0�0 /?�5 ..�5

��� ,0�: ,3�/ /:�9 /.�:

�%54� ,/�. ,2�/ ,3�: ,?�:

%�� �� �� �� ��� ���� /, /9 /3 /3

; �� 2�0< 8�� ��� A ������B ��� �� ���� �� �� �!1!�������� � ����

�� ���

@ ���� � ���� ��#�� � 5"# " � ��� � �� ����� ����� � ��!

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

�� ��� ����� �� ��� �� � � ���� � ���� � � ��� ������ ��� � *� �1�

��� ���� ��� #�� �� �� ���� ;�� ���� �� ��� ��������� � ���� ��

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

�� � ����� ��� � ���� � �� � � �� ���� ����� �� �������� 6�� ��� ������

� ����� �� #� �� � ����� �� ���� ����� �� ���� ��� ��� � �� ��� # ��

�� ;���� �� ����� �� � �� �� � #�� �� ��� ���� � ������ ������� ����

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

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

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

�� � � ���� ���� ���������� ��� ������� ����� ��� � � �� �� ����������I

������ ������� �� � � � �E�����

�� � ������� �� ��� �� � ��� ������ �� ��� � *� �1� ��� ���� � � ��

������ ��� ���� ���� ��� � � �� ��'� �� ����� � ���� ��#�� ��� �����

���� ���� ��H���� ��� � ���� �� � ����� ���� ����� ���� ���� �� ���

Page 87: A Language for Programming Chart Patterns - Stanford Computer

��������� ��� ��' ������ �� �� ����� � ����*� ��� ������� �� ��� � *�

�1� ��� ����� ������� �� ����� �� �� � ���� ��#�� � ������ ����

3�4 ��"���( �*�-� ) ,�,�� �*�-

;�� ���� ��� ������ ���� ��������� ����� � ������ � ��� ���� �������!

� ������ J5� ,2K� ;�� � "����� � � �� �� ����� ����� � ������� �� � �

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

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

������� �� "�!���� �������� J5K� "����!���� ������������ � �����!����

���������� J,2K� � ���� ��� �� � �� ������� ��� �� ���� � ������ ���

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

�� �� � #�� ��� ��������� �� ��� ������� ;� ������� ���� � ���� �� �������

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

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

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

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

' *� �� �� �� � �� �� �� ����� � � ��� ��� ��������� � H ��� �� ���

����&�� � � #��� �������� � X�� � � >���� J..K � � ��� J?K � J/?K

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

����� ��� � ���� ����� � ������� ���� �� �� �� ��� ��&��� � *�!�� �� ��

�� ������� � ������� ����� �������� �������� ��� ��� ���� �� F� *���G

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

� F�� �G � ���� �� F� *�G� 4�� ������� �������� ��� ����� � ���!

��� �� ��� ��� ���� ��� ��� ���� �� �� ����! �!��&��� ���� �� ��

�2������ �� (��� ����� ���� 3�� �������� ���� 4������ ���� ��������5 ��� ��

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

�� ���� ��������6 �� ���� 7 �� 0+1�

Page 88: A Language for Programming Chart Patterns - Stanford Computer

����� � � ��� ��� ��� ��� � ������� � *� �� �� ��� $� ���� �� �� �

�������� ���� ��� ������� � *� �1� �� ������� �� � ��� ��

����� � ������ ���� �� �� �� ������� �������� ������� 7�� ���

��������� ����� ��� ����I ��� �� �� ��������� �� ��� ������� � ��� ���

��� ��� ������� �� �� �� �� �� � ��� ��� ����� 4� ������ � ��� ��� �� F�� �!

�G �������J,/K ��� ����� � ������ ����� � ��� ������� �������� �E����

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

��� ��� ������ ���� �� � � �� � ������� �������� � ������� F������G

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

���� �� � � �� �� ��� �� � ������ �� ��� ��� ���� ;�� ������ ��������

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

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

� �� ���� ��� �� ��� �� �� ��&������� 7�� �� � ��� � ����� ������ �

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

Page 89: A Language for Programming Chart Patterns - Stanford Computer

Chapter 6������ ���

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

� �� �� # �� � ������ 6���� ��� ������ ���� �� ��� ����� � ���� �

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

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

� �������I ���� ��� �� ����� �� ��� �������� ����� �� ����� ���� ��

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

;���� �� � � ���� ���� �� ����� ����� ��� ��� ���� � �� ���� �!

��� �� �� ������� ����&��� �� ��#� � �������� �� �� ��� ��� � �

����� � ����� ' ��� ����&��� �� ���� ������� ��� ��� � �� ����� 4��

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

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

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

� � ��� ;� ��� �E��� �� � �� ������ � ��������� ��� ����#�

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

$� ����� �� �� �� ��� � �� �� �� ��!��!���! �� ����� � � �� ��

C ����� ��� � ���� ������� ��� ��� � �� ��� ;�� ����� � � ���� ���

� ��� ������� �� C ����� ����� H���� �� �� �� ��� ����#� � �� ���

�%

Page 90: A Language for Programming Chart Patterns - Stanford Computer

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

,� �� ������� ���!����� �� ����� ��� ���� ����� � ��#� � �� ���

� ����� � ��� ������ ���� ����� ��� ��������I ��� � �E���� ����

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

�� J/:K L ������� �� � ��� ���� � � �������� �� ����

/� ��� ����#� �� � ����� �� ��� ����� ����� ����� � ��� � ����� ���

�����A��**� ����� ��B� �� ������ ��������� � �������

.� � ����� �� ��#�� �������� � ������ ���� � ��� ��� �� � �����

��� �� ��#��

0� �� ����� �� ��#� �� ����� � �� ���� � ��� ���� � ���� ��#!

��� �� ������ ����� ��� ;�� ����� � �� � ���� � � � �� ������

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

>� ���� ��� !����#� � �� ��� ��� ����� � � �� �� ���� ��

��� ������ ��� ��� ������� ��� ���� � � ������ ����#� �� �� ��!

� ��� ���� �� ��� ��� ��� � � ��#�� ���� ��� ���� � �� ��� 7��

����� �� �� ����� � �� ��� ���� ��� ��� �� � �� ��� ������ 7�� ����

� ������ �� ���� ��� ����#� ����* ��� � ������ � ��� ��� ��

����� ��� ������� ���� � � � �� ����� ��� ��� ��� ����#� �����

�� ������� � ������A���� ����� � �� ��� ��� ���� � �� �� � C ������B ;��

� ���� ������ �� ��� ��� ��� � �� ���� ������� ��� ���� � �� ��� 7�� ��

����� �� � �� ������� �E���� ���� ��� ���� �� #� ������� � ����� ��

� ���� � ����� �� � ����� �� ����� #����� 4�� ���� �� ����� � C ����� ����

�� ���� � ����� �� ��� �� ����� �� ��� ���� ������� 7����� ��� ��� ���� ��

� �� ��� ���� ��� ����� ����#� �� ��� ���� ��� $� � �� �� � �� �� � *���

�� C ����� �� ����� ���� � �� ������ �� �� ;����� � ����� � ��� �� ��

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

Page 91: A Language for Programming Chart Patterns - Stanford Computer

����#� ����* ��� �� ��� ������� �� �� �*� �� � ���� ������� ��� ���

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

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

����� ��� � ���� � ��&���� �� ����� ��� ����� � ������ �� ��� !

��� ���� ��� ��� ���� �� �� ����! �!��&��� ���� �� �� ����� � � �!

�� ��� ��� ���� $� ������� ���� � � �� �������� ��� ��� ��� � ��!

����� � *� �� �� ��� 4�� � � �������� �� ��� %!&��� ��� ��� ���

��� ���� �� � � �� ����� �� � �������� >������� �� ��� �

��� �� �� � � ��� ����� �� � �� �� �� �� �*� ������ @��� ����� ���� ���

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

� ��� ��� ����� ;����� �� ���� ����� �� � ��� ���� �� � ����� ' ����� ��

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

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

Page 92: A Language for Programming Chart Patterns - Stanford Computer

Appendix A!��"��"������� ������� ��#������

;�� ������� � ���� � ���� �� ���� �� ��� ������� �� �� ����� � ��������

��� � ���� ;�� � �� ���� ��� � �� ������� ����� �� H� ��!����

4:�

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

!���

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

�' �

�' " �'

�� �

�� " ��

D' �'@�����'�N� ���5��'�O� �������'�

D� �'@�����'�N� ��� ��'�O� �������'�

D- �'@�����'�N� ���#��'�O� �������'�

4' 4%54 # � D-

D* �'@�����'�N� ������'�O� �������'�

4� 4%54 � � D*

D? �'@�����'�N� ������'�O� �������'�

��

Page 93: A Language for Programming Chart Patterns - Stanford Computer

4- 4%54 � � D?

$ 4� O 4-

� 4'O4-

%� �

4%54 � � 4%54 #�

4%54 � & 4%54 #�

4%54 � � 4%54 ��

4%54 � & 4%54 ��

�"�� 5 & D' PP �"�� �5�'� � D' PP

" & D� PP " � @'� � D� PP

#���N�4'�4��O�4'@4��� & (�' PP

$ & (�, PP $ � (�* PP � � (�* PP � & (�,

Page 94: A Language for Programming Chart Patterns - Stanford Computer

$����������

J,K ��7� ������� )������� �������� � �� :� @�P� �!C�� �������� �� ,?5/�

J/K 8� ��� � �� P� �� � � >� '� $������ � @� X YZ�� T����� �� ��� ��

�������� � )����� � ( � �� ����� @� (� P� �� � ���"�� %���� �������

#�-!;<=3 �������� �% 65�� ���������� ���%�� �� #� ��� -���

!���3 0���� 55�5=3 5<<=3 :����3 0��������� � ��� 2:/L2,0� @���

� ��� � ,??2�

J.K R� ����� ;�� ��� � P��� � ;����� �� ���� � ;��� � ���'���� ����

������ ������ /.� � ��� ,/.L,20� ,?50�

J0K �� � �� $�%� ��� � ��� ����� � ' *� (��� 1 ��&��� ����� ��

�� ����� � ������ � ���������� ���%�� �� )���� ���� ���'����

��������> �)� ?� �>>>� /::/�

J2K 6� 7 ����� � �� P����� 4 ��� 6��� �� ������ ��������� � ��������

��� ������� �% ��������� ���������>��?� � ��� /?/L.:5� ,??2�

J9K %� 7�������� 1���������� �% ���� ������� R�� $��� � ���� ,?5/�

�&

Page 95: A Language for Programming Chart Patterns - Stanford Computer

J3K �� ���� � @� ������� @��� ��� �� � �� �� ��� � �� �� � ����

0������ 4��������� �� �������� ,??5�

J5K 8� (������ � R� �� ��� ;��� �������� ��� ����� � %����������� ����!

� ��� �� P� �� 7 ����� �� ����� � � ��� ��� ��� ����� � ���'����

��������� ������ .5� � ��� .2.L.99� ,?5?�

J?K @�R� (�� � 8�>� @������ @� � 6��� �� ������� � @�� 111 ���

�������� ���%�� �� )���� ���� ���'����> �)� ?� � ��� 0./L0.5� ,??0�

J,:K �� >����� �� 6�� � 4� �� @���� ������ >� ����� ' �� ���� �

0�������3 ������������ ��� ����������� �% ����� 2������ >0� 2?�

������ '������ %���� �������� ������ /:::�

J,,K �� >���� � �� C�� �� 6���� � �� ���� � ��� � ��" 0 2���$

���������� ���%�� �� *��������� ��������� > �*�;<A?� � ��� /9.L

/3.� ������� �� C��� �� ������ ,??3� ��@ ������

J,/K (� 6���� � 8 (������� (� �!�� (��� '� ��� � ��� � � ���

/?0L.::� ,??0�

J,.K ���� 6�� 0�������� ����� 4��������� ��� ������������� >������� ��E��

,?5/�

J,0K R� P ����� � P��� � 7 ���� �� �������� �� � ��� ��� ���� ����� �

������ � ���������� &���� ���%�� �� ���'���� �������� > &�� ?�

,?33�

J,2K P� P����� � %� '���� � 6� �� ������� � ���� ��� �� �������� � ���

(��������� @������� � ���������� &���� ���%�� �� ���'���� ��

�������> &�� ?� � ��� .?0L.??� ,???�

Page 96: A Language for Programming Chart Patterns - Stanford Computer

J,9K � ���� C�� ����� P�R�� � ����� R� 0����� ��� ��������� �%

������ ������� @�; ������ ,??9�

J,3K %� C � � ���� �� � ��� �� 8 ����� � (� �� ��� ;�� ��!

������� � � H�� ����� ��� � �� �� ������� �������� �% �� 111�

3?A?B<,.:2L,./:� ,??.�

J,5K �� C�� �� 7���� (�� !����#� >� ����� ' �� ���� ��" ���������

0���� /5A0��B� (���� �� ,??9� ������ %�� ,?9�

J,?K @� C��������� R� $���� � �� (��� ;�� ��� ������ �� ��� ������<

( � ���������� � ����� ���������� !������� ��� !��� 0������ ,3A0B�

,??0�

J/:K �� � �"� � ;� ; � � � ����� ���� � ���� ������� ! ��������

��� � ������ ���� ��� � 5<<B ���������� &���� ���%�� �� $���

$���(�� � ��� �/,2L///� ,??:�

J/,K �� � �� �� � �� @' � @�� !����� ��� ' �� ��� ;���� � �������

)������ �� ����� � )� !�� �� �� ������ �� ,??9�

J//K P�R� ��� � ;��� 6������ *���� ���3 ���������3 ��� ��%�������� ������!

C ��� ,??/�

J/.K P �� @��� � @�� R��� �� ��� ��**� ����� &����� �% *���������

���������� 5A2B<2:.L2/2� ������ �� ,??5�

J/0K �� 7� % � ��� � ����� 8� )0C��� ������� ��%�� %� ������

-�������� ,?53�

J/2K ;� %��� � �� ;��� ��� @���� � ' *� �� ��� ��� ����� � � ��� ���

��� ����� &����� �% *��������� ���������� ,,A2B<223L253� ������ ��

/::,�

Page 97: A Language for Programming Chart Patterns - Stanford Computer

J/9K �� ����� C� $ �� ��8� X� �� � �� � ����� ' �� ���< � �� �����

��� ��� ���! ��� � ���� &����� ��� ����� � � ���� � ���� 5@��

���������� ���%�� �� -��� 1��������36BBB� � ��� ..L0/� /:::�

J/3K ��'� ����� R���� R� > ��� � R� ��� ��� ������� ���� ���< � �!

������ # � � ������� � ��" 0 2���$ ���������� ���%��

�� *��������� ��������� > �*�;BB?� � ��� /5:L/?/� @���� �� � � �

������ �� /:::� ��@ ������

J/5K ��'� ����� R���� 8�R�@� C������ '� ���������� (� 7 ���� 7� 7�����

$� 7����� R� 6 ���� �� C ����� 8� C*�� �� C�� �� ;� R������ @���

R���� R� ' ��� ���� >� @�"��� R� �������� �� 8��� �� 8��� � � ��'�

$ ����� 8����� � ��� ����� ��� � �� �� C ����� ?5� ;���� � �������

6� �� �� ,??5�

J/?K ;� ������ R!�� 8�� �� P ��� � P� =��� ���� ' *� ��� ��������� �

��� D �� � ������ ,� � ��� /,9L//,� ,??9�

J.:K ;� ��� �� � �� '� �����!R���� ;���� �� @�� !����� ��� ��� C ������

� ���(�� E�(����� /::/�

J.,K 8�� �� ����� ��� ;�� ;����� � T���� ' �� �� �&���� � ��" )������

����� �� -������ 0������ ������ ,/� � ��� /03L/?5� ,?53�

J./K @� $ �� �� � �� 8��� � C� � ��������� � 7 �� ��4 C ������

� 6�� ��" 0 2���$ E�(���� �� ���(��� ������� �� R�� ,??3� ��@

������

J..K @� X�� � � @� >����� ����� � � ��� ��� ��� (�� ��� >� �� ���

� ���������� &���� ���%�� �� ���'���� �������� > &�� ?� � ���

532L55:� ,?5?�