]> zdv2.bktei.com Git - BK-2023-05.git/blob - src/tm-notes/ch1.tm
feat(ref):Add example code
[BK-2023-05.git] / src / tm-notes / ch1.tm
1 <TeXmacs|2.1.1>
2
3 <project|book.tm>
4
5 <style|<tuple|book|style-bk>>
6
7 <\body>
8 <chapter|Definitions>
9
10 <section|Terminology>
11
12 <\description-compact>
13 <item*|argument<label|term_argument>>A value used to supply a
14 <strong|parameter> in the call of a <strong|function>. Also known as an
15 \Pactual argument\Q as opposed to \Pformal argument\Q (i.e.
16 <strong|parameter>). See also <em|parameter>.
17
18 <item*|assignment>An expression in which a variable is set to a value.
19 For example, in the expression <hgroup|<cpp|x = 1>>, the variable <cpp|x>
20 is set to the value <cpp|1> because <cpp|x> is to the left of the equals
21 sign \ \P<cpp|=>\Q. The value of the entire expression is equal to the
22 value of the left hand side (i.e. <cpp|x> in this example) after the
23 assignment is performed. For example, the following C code will print
24 \P<cpp|true>\Q:
25
26 <\cpp-code>
27 #include \<less\>stdio.h\<gtr\>
28
29 int main() {
30
31 \ \ int c;
32
33 \ \ if( (c = 7) == 7 )
34
35 \ \ \ \ printf("true");
36
37 \ \ else
38
39 \ \ \ \ printf("false");
40
41 };
42 </cpp-code>
43
44 As another example, the following lines are equivalent:
45
46 <\cpp-code>
47 a = b = c = 0;
48
49 a = ( b = ( c = 0 ) );
50 </cpp-code>
51
52 <label|term_call><item*|call>The act of running (or \Pinvoking\Q) a
53 <strong|function>. See <em|function call>.
54
55 <label|term declaration><item*|declaration>A construct that establishes
56 an association between a particular variable, function, or type and its
57 attributes<\footnote>
58 See <hlinkv|https://en.cppreference.com/w/c/language/declarations>.
59 </footnote>. Announces the properties of variables. May be a statement
60 consisting of a <strong|type> name followed by a list of
61 <strong|variables> (e.g. <cpp|int i, j;>) or followed by an expression
62 with a variable (e.g. <cpp|int i = 0;>). Compare with
63 <with|font-series|bold|definition>.
64
65 <label|term definition><item*|definition>A construct that establishes the
66 same associations as a declaration but also causes storage to be
67 allocated for the variable<\footnote>
68 See <hlinkv|https://docs.microsoft.com/en-us/cpp/c-language/c-declarations-and-definitions?view=msvc-170>.
69 </footnote>.
70
71 <label|term_linter><item*|linter> A source code analysis program designed
72 to detect common syntactic errors.
73
74 <label|term enumeration><item*|enumeration><hlink|Enumeration|https://en.wikipedia.org/wiki/Enumeration>
75 (or <code*|enum>) is a user defined data type in <name|C>. It is mainly
76 used to assign names to integral constants. For example, the declaration
77 <code*|enum year{Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov,
78 Dec};> allows writing a for loop with names of months <code*|for (i=Jan;
79 i\<less\>=Dec; i++)> to cycle <code*|i> through the integers <code*|0, 1,
80 2, 3, <text-dots>, 10, 11>.
81
82 <label|term escape_sequence><item*|escape sequence>A set of characters
83 used to represent hard-to-type or invisible characters. Some commonly
84 used escape sequences in <name|C> include:
85
86 <\description-aligned>
87 <item*|<cpp|\\n>>Represents the <em|newline> character.
88
89 <item*|<cpp|\\t>>Represents the <em|tab> character.
90
91 <item*|<cpp|\\b>>Represents the <em|backspace> character.
92
93 <item*|<cpp|\\\\>>Represents the <em|backslash> (i.e.
94 \P<verbatim|<em|\\>>\Q) character.
95 </description-aligned>
96
97 All other escape sequences used in <name|C> are:
98
99 <\description-aligned>
100 <item*|<cpp|\\a>>Represents the <em|alert> (bell) character.
101
102 <item*|<cpp|\\f>>Represents the <em|formfeed> character.
103
104 <item*|<cpp|\\r>>Represents the <em|carriage return> character.
105
106 <item*|<cpp|\\t>>Represents the <em|horizontal tab> character.
107
108 <item*|<cpp|\\v>>Represents the <em|vertical tab> character.
109
110 <item*|<cpp|\\?>>Represents the <em|question mark> character.
111
112 <item*|<cpp|\\'>>Represents the <em|single quote> character.
113
114 <item*|<cpp|\\">>Represents the <em|double quote> character.
115
116 <item*|<cpp|\\><em|ooo>>Represents an <em|octal number> (e.g.
117 <cpp|\\012> is the <em|newline> character)<\footnote>
118 <label|ref includehelp-oct-hex>See
119 <hlinkv|https://www.includehelp.com/c/octal-and-hexadecimal-escape-sequences.aspx>.
120 </footnote>.
121
122 <item*|<cpp|\\x><em|hh>>Represents a <em|hexadecimal> number (e.g.
123 <cpp|\\x0A> is the <em|newline> character)<rsup|<reference|ref
124 includehelp-oct-hex>>.
125
126 <item*|<cpp|\\0>>Represents the <em|null> character (i.e. a <cpp|char>
127 with value <cpp|0>)<\footnote>
128 See <hlinkv|https://www.geeksforgeeks.org/difference-between-null-pointer-null-character-0-and-0-in-c-with-examples/>.
129 </footnote>
130 </description-aligned>
131
132 <label|term_expression><item*|expression> A sequence of
133 <strong|operators> and <strong|operands> that specify a computation. When
134 evaluated, an expression may perform useful side effects (e.g.
135 <cpp|printf("%d", 4)> sends the character <cpp|4> to \ the standard
136 output stream)<\footnote>
137 See <hlinkv|https://en.cppreference.com/w/c/language/expressions>.
138 </footnote>.
139
140 Arrangements of expressions may include<\footnote>
141 See <hlinkv|https://www.educative.io/answers/what-are-expressions-in-c>.
142 </footnote>:
143
144 <\description>
145 <item*|Constant>A value with no operator is used<\footnote>
146 See <hlinkv|https://www.cs.miami.edu/home/burt/learning/Math120.1/Notes/exp-syn.html>.
147 </footnote>. (e.g. the \P<cpp|0>\Q in <cpp|return 0;>)
148
149 <item*|Variable identifier>A variable evaluated earlier. (e.g. the 2nd
150 \P<cpp|k>\Q in <hgroup|<cpp|k = 1; return k;>>)
151
152 <item*|Infix expression>Operator is used between operands. (e.g. <cpp|a
153 = x + y>)
154
155 <item*|Postfix expression>Operator is used after the operands. (e.g.
156 <cpp|xy+>)
157
158 <item*|Prefix expression>Operator is used before the operands. (e.g.
159 <cpp|+xy>)
160
161 <item*|Unary expression>There is one operator and one operand. (e.g.
162 <cpp|x++>)
163
164 <item*|Binary expression>There is one operator and two operands. (e.g.
165 <cpp|x+y>)
166 </description>
167
168 Types of expressions may include:
169
170 <\description>
171 <item*|Arithmetic expression>Consists of arithmetic operators (<cpp|+,
172 -, *, and />) and computes values of <cpp|int, float, or double> type.
173
174 <item*|Relational expression>Usually uses comparison operators
175 (<cpp|\<gtr\>, \<less\>, \<gtr\>=, \<less\>=, ===, and !==>) and
176 computers answer in the <cpp|bool> type (i.e. true \P<cpp|1>\Q or false
177 \P<cpp|0>\Q).
178
179 <item*|Logical expression>Consists of logical operators (<cpp|&&, \|\|,
180 and !>) and combines relational expressions to compute answers in the
181 <cpp|bool> type.
182
183 <item*|Conditional expression>Consists of statements that return
184 <cpp|true> if the condition is met or <cpp|false> otherwise.
185
186 <item*|Pointer expression>May consist of an ampersand (<cpp|&>)
187 operator and returns <cpp|address> values.
188
189 <item*|Bitwise expression>Consists of bitwise operators
190 (<cpp|\<gtr\>\<gtr\>, \<less\>\<less\>, ~, &, \|, and ^>) and performs
191 operations at the bit level.
192
193 <item*|Constant expression>Involves only constants such that the
194 expression may be evaluated during compilation rather than
195 run-time<\footnote>
196 K&R 2nd Ed., Sec. 2.3 \PConstants\Q.
197 </footnote>.
198 </description>
199
200 <label|term_function><item*|function>A group of statements that perform a
201 task. Is defined using a function <strong|definition> that has a
202 parenthesized list of <strong|declarations> called <strong|parameters>
203 (e.g. variables for accepting values named <strong|arguments> as input
204 when the <strong|function> is called). A function definition has the
205 form:
206
207 <em|<\indent>
208 return-type<space|1em>function-name(parameter declarations, if any) {
209
210 <space|1em>declarations
211
212 <space|1em>statements
213
214 }
215 </indent>>
216
217 <label|term_function_call><item*|function call>An expression containing
218 the <strong|function> name followed by the function call operator
219 \P<cpp|()>\Q.
220
221 <label|term_function_prototype><item*|function prototype>A declaration of
222 a <strong|function> consisting only of the function name (a.k.a.
223 \Pidentifier\Q) and parenthesized <strong|parameter> types so the
224 compiler knows how to perform <strong|type>-based conversions of
225 <strong|arguments> (e.g. truncating a <cpp|float> into an <cpp|int>) in
226 <strong|calls> of the function before the compiler knows the function
227 <strong|definition><\footnote>
228 See <hlinkv|https://en.cppreference.com/w/c/language/function_declaration>.
229 </footnote>. The function prototype parameter names do not have to agree
230 with the function definition parameter names<\footnote>
231 K&R 2nd Ed., Sec 1.7 \PFunctions\Q.
232 </footnote>.
233
234 <label|term garbage_collection><item*|garbage collection>The process of
235 freeing memory allocated by a program but which is no longer referenced.
236 Usually incurs a significant <hlink|speed
237 penalty|https://en.wikipedia.org/wiki/Overhead_(computing)>.
238 (<hlink|Wikipedia|https://en.wikipedia.org/wiki/Garbage_collection_(computer_science)>).
239 The <name|C> Language does not provide garbage collection by default.
240
241 <item*|<label|term heap>heap>A large pool of memory that can be used
242 dynamically \U it is also known as the \Pfree store\Q. This is memory
243 that is not automatically managed \U you have to explicitly allocate
244 (using functions such as malloc), and deallocate (e.g. free) the memory.
245 Failure to free the memory when you are finished with it will result in
246 what is known as a memory leak. Is the diametrical opposite of the stack
247 (which, by contrast, is limited not by physical memory but by a
248 CPU-determined stack size). (See <hlink|craftofcoding.wordpress.com|https://craftofcoding.wordpress.com/2015/12/07/memory-in-c-the-stack-the-heap-and-static/>).
249
250 <item*|<label|term machine-independent>machine-independent>A property of
251 code that does not have to be modified in order to run on a different
252 hardware architecture. (e.g. \PC is called a portable language because
253 [code written in C] will run on any machine which supports C, without
254 modifying a single line of code.\Q; <hlink|link|https://www.log2base2.com/C/basic/introduction-to-c-language.html>).
255
256 <item*|<label|term operand>operand>A quantity to which an operator is
257 applied. (e.g. in the <name|C> math expression <code*|7 - 4 = 3>,
258 <code*|7> is the first operand and <code*|4> is the second operand.)
259
260 <item*|<label|term operator>operator>A special type of function with
261 limited numbers of parameters (e.g. 1 to 2) and syntax often requiring a
262 set of characters different from those normally use for naming variables
263 (e.g. the <code*|+> character in <code*|myVar = 1 + 2>, the <code*|&&> in
264 <code*|a && b>, or the <code*|++> in <code*|i++>.).
265
266 <label|term_parameter><item*|parameter>Generally, a variable named in the
267 parenthesized list in a <strong|function> definition. Also known as a
268 \Pformal argument\Q as opposed to an \Pactual argument\Q (e.g.
269 <strong|argument>). See <em|argument>.
270
271 <item*|<label|term stack>stack>A region of memory for global variable
272 storage and is permanent for the entire run of the program. Stack size is
273 limited not by physical memory availability but by the CPU. Lifetime of
274 local variables declared within the stack is enforced by the Last-In,
275 First-Out nature of the stack; when a function returns a value, all stack
276 memory allocated by declarations within the function is automatically
277 freed. (See <hlink|craftofcoding.wordpress.com|https://craftofcoding.wordpress.com/2015/12/07/memory-in-c-the-stack-the-heap-and-static/>)
278
279 <label|term_statement><item*|statement>An <strong|expression> when it is
280 followed by a semicolon. May be grouped together using braces (i.e.
281 \P<cpp|{ }>\Q) to form a <em|compound statement> or <em|block> which is
282 syntactically equivalent to a single <strong|statement>.<\footnote>
283 K&R 2nd Ed., Sec. 3.1 \PStatements and Blocks\Q.
284 </footnote>
285
286 <item*|<label|term struct>struct>(short:
287 <hlink|struct|https://en.wikipedia.org/wiki/struct_(C_programming_language)>)
288 a <hlink|composite data type|https://en.wikipedia.org/wiki/Composite_data_type>
289 that defines a physically grouped list of variables under one name in a
290 block of memory, allowing the different variables to be accessed via a
291 single <hlink|pointer|https://en.wikipedia.org/wiki/Pointer_(computer_programming)>
292 or by the struct declared name which returns the same address.
293
294 <label|term structure_assignment><item*|structure assignment>The act of
295 <hlink|assigning|https://en.wikipedia.org/wiki/Assignment_(computer_science)>
296 a <hlink|struct|https://en.wikipedia.org/wiki/struct_(C_programming_language)>
297 to another struct. (?) (<hlink|example|https://stackoverflow.com/a/2302359/10850071>)
298
299 <item*|<label|term text_stream>text stream>A sequence of characters
300 divided into lines; each line consists of zero or more characters
301 followed by a newline character. (See K&R 2nd Ed. Section 1.5 \PCharacter
302 Input and Output\Q)
303
304 <label|term_type><item*|type>A way of differentiating data stored for use
305 in a program. Some types include <cpp|int> (integers), <cpp|char>
306 (single-byte characters), <cpp|short> (a short integer), <cpp|long> (a
307 long integer), <cpp|double> (a double-precision floating point number).
308 </description-compact>
309
310 \;
311
312 <section|Functions>
313
314 <subsection|Character Input and Output>
315
316 <\description>
317 <item*|<cpp|getchar()><label|func getchar>>Read one character at a time
318 from the input buffer. Returns as <cpp|int> a <em|character
319 constant>.<\footnote>
320 <name|ASCII> characters have constants in the range <math|0-127>. UTF-8
321 characters return multiple constants (e.g. \<#B0\> returns <cpp|194
322 176>). See <hlinkv|https://www.smashingmagazine.com/2012/06/all-about-unicode-utf8-character-sets/>.
323 A strategy for reading the multiple bytes of a UTF-8 character is here:
324 <hlinkv|https://stackoverflow.com/a/34240796/>.
325 </footnote>
326
327 <item*|<cpp|for()>>A generalization of <cpp|while()>. Takes three
328 arguments:
329
330 <\enumerate>
331 <item>Local statement to run before loop (e.g. to initialize a counting
332 variable).
333
334 <item>Local statement that, if evaluated as true, permits running of
335 next iteration of loop.
336
337 <item>Local statement to run after loop (e.g. to increment a counting
338 variable).
339 </enumerate>
340
341 <item*|<cpp|putchar(int arg1)><label|func putchar>>Write one integer
342 character (e.g. <cpp|arg1>) at a time.
343
344 <item*|<cpp|printf()>>Used for printing formatted text to console.
345
346 Character codes include:
347
348 <\description-aligned>
349 <item*|<cpp|%c>>Used to display a character by its <cpp|int>.
350
351 <item*|<cpp|%d>>Used with <cpp|int> (i.e. 16-bit integers; max value of
352 <math|2<rsup|16>=32\<space\>767>).
353
354 <item*|<cpp|%ld>>Used with <cpp|long> (i.e. at least 32-bit
355 integers).<\footnote>
356 K&R 2nd Ed., Sec. 1.5 \PThe conversion specification <cpp|%ld> tells
357 <cpp|printf> that the corresponding argument is a <cpp|long>
358 integer.\Q
359 </footnote>
360
361 <item*|<cpp|%f>>Used with <cpp|float> and <cpp|double> (double
362 precision <cpp|float>).
363 </description-aligned>
364
365 For printing <name|UTF-8> strings (which are multibyte in contrast to
366 one-byte <name|ASCII> strings), functions from the C standard library
367 <cpp|wchar.h> header file<\footnote>
368 See <hlinkv|https://en.wikibooks.org/wiki/C_Programming/wchar.h>.
369 </footnote> may need to be<\footnote>
370 See <hlinkv|https://linuxprograms.wordpress.com/tag/c-utf-8-handling/>.
371 </footnote> used<\footnote>
372 See <hlinkv|https://stackoverflow.com/questions/56756204/compatibility-of-printf-with-utf-8-encoded-strings>.
373 </footnote> (e.g. <cpp|wprintf()> (?)).
374 </description>
375
376 \;
377 </body>
378
379 <\initial>
380 <\collection>
381 <associate|page-medium|papyrus>
382 </collection>
383 </initial>
384
385 <\references>
386 <\collection>
387 <associate|auto-1|<tuple|1|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
388 <associate|auto-2|<tuple|1.1|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
389 <associate|auto-3|<tuple|1.2|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
390 <associate|auto-4|<tuple|1.2.1|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
391 <associate|footnote-1.1.1|<tuple|1.1.1|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
392 <associate|footnote-1.1.10|<tuple|1.1.10|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
393 <associate|footnote-1.1.11|<tuple|1.1.11|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
394 <associate|footnote-1.1.2|<tuple|1.1.2|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
395 <associate|footnote-1.1.3|<tuple|1.1.3|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
396 <associate|footnote-1.1.4|<tuple|1.1.4|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
397 <associate|footnote-1.1.5|<tuple|1.1.5|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
398 <associate|footnote-1.1.6|<tuple|1.1.6|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
399 <associate|footnote-1.1.7|<tuple|1.1.7|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
400 <associate|footnote-1.1.8|<tuple|1.1.8|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
401 <associate|footnote-1.1.9|<tuple|1.1.9|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
402 <associate|footnote-1.2.1|<tuple|1.2.1|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
403 <associate|footnote-1.2.2|<tuple|1.2.2|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
404 <associate|footnote-1.2.3|<tuple|1.2.3|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
405 <associate|footnote-1.2.4|<tuple|1.2.4|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
406 <associate|footnote-1.2.5|<tuple|1.2.5|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
407 <associate|footnr-1.1.1|<tuple|1.1.1|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
408 <associate|footnr-1.1.10|<tuple|1.1.10|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
409 <associate|footnr-1.1.11|<tuple|1.1.11|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
410 <associate|footnr-1.1.2|<tuple|1.1.2|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
411 <associate|footnr-1.1.3|<tuple|1.1.3|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
412 <associate|footnr-1.1.4|<tuple|1.1.4|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
413 <associate|footnr-1.1.5|<tuple|1.1.5|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
414 <associate|footnr-1.1.6|<tuple|1.1.6|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
415 <associate|footnr-1.1.7|<tuple|1.1.7|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
416 <associate|footnr-1.1.8|<tuple|1.1.8|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
417 <associate|footnr-1.1.9|<tuple|1.1.9|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
418 <associate|footnr-1.2.1|<tuple|1.2.1|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
419 <associate|footnr-1.2.2|<tuple|1.2.2|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
420 <associate|footnr-1.2.3|<tuple|1.2.3|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
421 <associate|footnr-1.2.4|<tuple|1.2.4|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
422 <associate|footnr-1.2.5|<tuple|1.2.5|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
423 <associate|func getchar|<tuple|1.2.1|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
424 <associate|func putchar|<tuple|3|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
425 <associate|ref includehelp-oct-hex|<tuple|1.1.3|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
426 <associate|term declaration|<tuple|call|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
427 <associate|term definition|<tuple|1.1.1|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
428 <associate|term enumeration|<tuple|linter|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
429 <associate|term escape_sequence|<tuple|enumeration|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
430 <associate|term garbage_collection|<tuple|1.1.10|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
431 <associate|term heap|<tuple|garbage collection|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
432 <associate|term machine-independent|<tuple|<label|term
433 heap>heap|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
434 <associate|term operand|<tuple|<label|term
435 machine-independent>machine-independent|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
436 <associate|term operator|<tuple|<label|term
437 operand>operand|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
438 <associate|term stack|<tuple|parameter|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
439 <associate|term struct|<tuple|1.1.11|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
440 <associate|term structure_assignment|<tuple|<label|term
441 struct>struct|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
442 <associate|term text_stream|<tuple|structure
443 assignment|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
444 <associate|term_argument|<tuple|1.1|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
445 <associate|term_call|<tuple|assignment|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
446 <associate|term_expression|<tuple|1.1.4|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
447 <associate|term_function|<tuple|1.1.8|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
448 <associate|term_function_call|<tuple|function|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
449 <associate|term_function_prototype|<tuple|function
450 call|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
451 <associate|term_linter|<tuple|1.1.2|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
452 <associate|term_parameter|<tuple|<label|term
453 operator>operator|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
454 <associate|term_statement|<tuple|<label|term
455 stack>stack|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
456 <associate|term_type|<tuple|<label|term text_stream>text
457 stream|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
458 </collection>
459 </references>
460
461 <\auxiliary>
462 <\collection>
463 <\associate|toc>
464 <vspace*|1fn><with|font-series|<quote|bold>|math-font-series|<quote|bold>|1<space|2spc>Definitions>
465 <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
466 <no-break><pageref|auto-1><vspace|0.5fn>
467
468 1.1<space|2spc>Terminology <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
469 <no-break><pageref|auto-2>
470
471 1.2<space|2spc>Functions <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
472 <no-break><pageref|auto-3>
473
474 <with|par-left|<quote|1tab>|1.2.1<space|2spc>Character Input and Output
475 <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
476 <no-break><pageref|auto-4>>
477 </associate>
478 </collection>
479 </auxiliary>