%PDF-1.4
%ÐÔÅØ
5 0 obj
<< /S /GoTo /D (section.1) >>
endobj
8 0 obj
(1 Introduction)
endobj
9 0 obj
<< /S /GoTo /D (section.2) >>
endobj
12 0 obj
(2 Data structures)
endobj
13 0 obj
<< /S /GoTo /D (subsection.2.1) >>
endobj
16 0 obj
(2.1 The occam programming language)
endobj
17 0 obj
<< /S /GoTo /D (subsection.2.2) >>
endobj
20 0 obj
(2.2 Records)
endobj
21 0 obj
<< /S /GoTo /D (subsubsection.2.2.1) >>
endobj
24 0 obj
(2.2.1 A common example)
endobj
25 0 obj
<< /S /GoTo /D (subsubsection.2.2.2) >>
endobj
28 0 obj
(2.2.2 Using arrays of INTS and RETYPES)
endobj
29 0 obj
<< /S /GoTo /D (subsubsection.2.2.3) >>
endobj
32 0 obj
(2.2.3 Protocols)
endobj
33 0 obj
<< /S /GoTo /D (subsubsection.2.2.4) >>
endobj
36 0 obj
(2.2.4 Arrays for each field)
endobj
37 0 obj
<< /S /GoTo /D (subsubsection.2.2.5) >>
endobj
40 0 obj
(2.2.5 Avoiding alignment)
endobj
41 0 obj
<< /S /GoTo /D (subsection.2.3) >>
endobj
44 0 obj
(2.3 Stacks)
endobj
45 0 obj
<< /S /GoTo /D (subsubsection.2.3.1) >>
endobj
48 0 obj
(2.3.1 The stack data structure with associated operations)
endobj
49 0 obj
<< /S /GoTo /D (subsubsection.2.3.2) >>
endobj
52 0 obj
(2.3.2 Occam implementation)
endobj
53 0 obj
<< /S /GoTo /D (subsection.2.4) >>
endobj
56 0 obj
(2.4 Queues)
endobj
57 0 obj
<< /S /GoTo /D (subsubsection.2.4.1) >>
endobj
60 0 obj
(2.4.1 The queue data structure with associated operations)
endobj
61 0 obj
<< /S /GoTo /D (subsubsection.2.4.2) >>
endobj
64 0 obj
(2.4.2 Occam Implementation)
endobj
65 0 obj
<< /S /GoTo /D (subsection.2.5) >>
endobj
68 0 obj
(2.5 Linked lists)
endobj
69 0 obj
<< /S /GoTo /D (subsubsection.2.5.1) >>
endobj
72 0 obj
(2.5.1 Linear lists)
endobj
73 0 obj
<< /S /GoTo /D (subsubsection.2.5.2) >>
endobj
76 0 obj
(2.5.2 Inserting a node at the start of a list)
endobj
77 0 obj
<< /S /GoTo /D (subsection.2.6) >>
endobj
80 0 obj
(2.6 Trees)
endobj
81 0 obj
<< /S /GoTo /D (subsubsection.2.6.1) >>
endobj
84 0 obj
(2.6.1 The tree data structure with associated operations)
endobj
85 0 obj
<< /S /GoTo /D (subsubsection.2.6.2) >>
endobj
88 0 obj
(2.6.2 Occam implementation)
endobj
89 0 obj
<< /S /GoTo /D (section.3) >>
endobj
92 0 obj
(3 Recursion)
endobj
93 0 obj
<< /S /GoTo /D (subsection.3.1) >>
endobj
96 0 obj
(3.1 Recursive functions in mathematics)
endobj
97 0 obj
<< /S /GoTo /D (subsection.3.2) >>
endobj
100 0 obj
(3.2 Recursive functions and procedures in computer programming)
endobj
101 0 obj
<< /S /GoTo /D (section.4) >>
endobj
104 0 obj
(4 Transforming recursion to iteration)
endobj
105 0 obj
<< /S /GoTo /D (subsection.4.1) >>
endobj
108 0 obj
(4.1 Monadic tail recursive definitions)
endobj
109 0 obj
<< /S /GoTo /D (subsection.4.2) >>
endobj
112 0 obj
(4.2 An example)
endobj
113 0 obj
<< /S /GoTo /D (subsection.4.3) >>
endobj
116 0 obj
(4.3 Dyadic and non-tall recursive definitions)
endobj
117 0 obj
<< /S /GoTo /D (section.5) >>
endobj
120 0 obj
(5 Two approaches to recursion in occam)
endobj
121 0 obj
<< /S /GoTo /D (subsection.5.1) >>
endobj
124 0 obj
(5.1 The pipeline method)
endobj
125 0 obj
<< /S /GoTo /D (subsection.5.2) >>
endobj
128 0 obj
(5.2 The stack method)
endobj
129 0 obj
<< /S /GoTo /D (section.6) >>
endobj
132 0 obj
(6 Two recursion examples)
endobj
133 0 obj
<< /S /GoTo /D (subsection.6.1) >>
endobj
136 0 obj
(6.1 Recursive tree traversal)
endobj
137 0 obj
<< /S /GoTo /D (subsubsection.6.1.1) >>
endobj
140 0 obj
(6.1.1 The recursive algorithm)
endobj
141 0 obj
<< /S /GoTo /D (subsubsection.6.1.2) >>
endobj
144 0 obj
(6.1.2 The stack implementation)
endobj
145 0 obj
<< /S /GoTo /D (subsubsection.6.1.3) >>
endobj
148 0 obj
(6.1.3 The pipeline implementation)
endobj
149 0 obj
<< /S /GoTo /D (subsection.6.2) >>
endobj
152 0 obj
(6.2 A recursive quicksort)
endobj
153 0 obj
<< /S /GoTo /D (subsubsection.6.2.1) >>
endobj
156 0 obj
(6.2.1 The quicksort algorithm)
endobj
157 0 obj
<< /S /GoTo /D (subsubsection.6.2.2) >>
endobj
160 0 obj
(6.2.2 The stack implementation)
endobj
161 0 obj
<< /S /GoTo /D (subsubsection.6.2.3) >>
endobj
164 0 obj
(6.2.3 The pipeline implementation)
endobj
165 0 obj
<< /S /GoTo /D (section*.2) >>
endobj
168 0 obj
(References)
endobj
169 0 obj
<< /S /GoTo /D [170 0 R /Fit ] >>
endobj
172 0 obj <<
/Length 382
/Filter /FlateDecode
>>
stream
xÚuQ=Ô0íó+¦tÌyüØ%wb8Q¬÷´,NRðï¯S :ªyò¼÷æYÂHx¬äê}_ݨe°sAbhÑX
ÆiTÊA¯âýåz8ÕÄ:N/u£;+a
õ·þXòÐ(Îí#˶aÝR\
9LÇ·±¼×«¿É)[ZÆy*Üq¯3Ã.y´zÛW?+bã:tìÏHJ¶0\ªÜÐÖak-ô E8U÷3=AmZÏÔ¤Pv
´ûO?=³¦¢¯Y?ÖÓ8dÎ¥õ4¯± ín¾þMõî ; ^ú[¤ÐɪrÖz)ð§Åx<Å4tH)TmÇ@£5¾pròJ¬éfGÞ\¯çqkÝàÔòúæíZà}u>ç|¹ýÓ
©nÙCéMQ8Ô<¿§-¤_¼AkAÞ¹b?7Ó³¡=§N5ýûFj×HùjüU¿X
endstream
endobj
170 0 obj <<
/Type /Page
/Contents 172 0 R
/Resources 171 0 R
/MediaBox [0 0 595.276 841.89]
/Parent 179 0 R
>> endobj
173 0 obj <<
/D [170 0 R /XYZ 117.828 740.002 null]
>> endobj
174 0 obj <<
/D [170 0 R /XYZ 117.828 715.095 null]
>> endobj
171 0 obj <<
/Font << /F17 175 0 R /F19 176 0 R /F37 177 0 R /F15 178 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
183 0 obj <<
/Length 707
/Filter /FlateDecode
>>
stream
xÚuT[o0~ϯð£#á²>¥YÚ2¤K¨ª¨Ú!Nc
bfȪþûÙ>&
Ú&$Û|çï\m½!ÝÜÿìT.¢È§ÄòÂ^Êzôkä÷»}lÂ3vÖ}£ïêëùй`¼ÍG×wt^ò=¢4"±zA@"¡|^ñfûXÆïû¸.Æ^?ôO¢û2þ;h@Ü9&ñ}0§d¨òêLgbì(¢ßk.×ÇÝéC³¢cU¸°Z+W5@û^Vû ¼uÍd©@Ødc|]i(Ávþèõ¶/u¬úÄs}%ÉdiìxÛT6yU+(03©B©cÉ,ÜW
ÌÄØÕÍ°ÎٮμÖl¥8)®
&úÜi¨R4&HÉßÆã0¡Êgä¬+¤5Uíä%kÁ`/E
0tFÎ1)¨ÿnv~àÊ>ð<¼Ó
pyª ¯Ó0Åg1o;É·§í¬àãMaÛãEOÑòΫ
í¥¢ý©R+¾¤ùÃò97»ÃÎN±¾øeL)ÅÓÕjºÈ77½óî 4OCÌ êGA]Ô×MÅuZç]«RÂLvý`*Øz6_itö ÜèQÞ¦i¾Bh}×îÒ|1_¯¡3wÚz¹É¶'C´ÒkΧVüô¼zZ®çäL®îzl{.²åÚlÁ)ÀËÙlÙ¹¶ñ,v¬.äO;&m¥àøÈk®zùéÈ' ¹p4PÞZ?öiQ÷Z
ÊÖÌ
駫ó®ï×je¶^.@#ã¥Yc+;)¼´qÞKqjWÉ