--- /dev/null
+<TeXmacs|2.1.1>
+
+<style|<tuple|book|style-bk>>
+
+<\body>
+ <doc-data|<doc-title|<TeXmacs> notes for <name|The C Programming
+ Language>>|<doc-author|<author-data|<author-name|Steven William
+ \PBaltakatei\Q Sandoval>|<author-email|baltakatei@gmail.com>|<author-homepage|reboil.com>>>|<doc-date|2023>>
+
+ <include|ch1.tm>
+
+ <include|ch2.tm>
+
+ <include|ch3.tm>
+
+ \;
+</body>
+
+<\initial>
+ <\collection>
+ <associate|page-medium|paper>
+ <associate|preamble|false>
+ <associate|project-flag|true>
+ </collection>
+</initial>
+
+<\references>
+ <\collection>
+ <associate|auto-1|<tuple|1|5|ch1.tm>>
+ <associate|auto-2|<tuple|1.1|5|ch1.tm>>
+ <associate|auto-3|<tuple|1.2|8|ch1.tm>>
+ <associate|auto-4|<tuple|1.2.1|8|ch1.tm>>
+ <associate|auto-5|<tuple|2|9|ch2.tm>>
+ <associate|auto-6|<tuple|2.1|9|ch2.tm>>
+ <associate|auto-7|<tuple|2.2|9|ch2.tm>>
+ <associate|auto-8|<tuple|3|11|ch3.tm>>
+ <associate|footnote-1.1.1|<tuple|1.1.1|5|ch1.tm>>
+ <associate|footnote-1.1.10|<tuple|1.1.10|7|ch1.tm>>
+ <associate|footnote-1.1.11|<tuple|1.1.11|7|ch1.tm>>
+ <associate|footnote-1.1.2|<tuple|1.1.2|5|ch1.tm>>
+ <associate|footnote-1.1.3|<tuple|1.1.3|6|ch1.tm>>
+ <associate|footnote-1.1.4|<tuple|1.1.4|6|ch1.tm>>
+ <associate|footnote-1.1.5|<tuple|1.1.5|6|ch1.tm>>
+ <associate|footnote-1.1.6|<tuple|1.1.6|6|ch1.tm>>
+ <associate|footnote-1.1.7|<tuple|1.1.7|6|ch1.tm>>
+ <associate|footnote-1.1.8|<tuple|1.1.8|6|ch1.tm>>
+ <associate|footnote-1.1.9|<tuple|1.1.9|7|ch1.tm>>
+ <associate|footnote-1.2.1|<tuple|1.2.1|8|ch1.tm>>
+ <associate|footnote-1.2.2|<tuple|1.2.2|8|ch1.tm>>
+ <associate|footnote-1.2.3|<tuple|1.2.3|8|ch1.tm>>
+ <associate|footnote-1.2.4|<tuple|1.2.4|8|ch1.tm>>
+ <associate|footnote-1.2.5|<tuple|1.2.5|8|ch1.tm>>
+ <associate|footnr-1.1.1|<tuple|1.1.1|5|ch1.tm>>
+ <associate|footnr-1.1.10|<tuple|1.1.10|7|ch1.tm>>
+ <associate|footnr-1.1.11|<tuple|1.1.11|7|ch1.tm>>
+ <associate|footnr-1.1.2|<tuple|1.1.2|5|ch1.tm>>
+ <associate|footnr-1.1.3|<tuple|1.1.3|6|ch1.tm>>
+ <associate|footnr-1.1.4|<tuple|1.1.4|6|ch1.tm>>
+ <associate|footnr-1.1.5|<tuple|1.1.5|6|ch1.tm>>
+ <associate|footnr-1.1.6|<tuple|1.1.6|6|ch1.tm>>
+ <associate|footnr-1.1.7|<tuple|1.1.7|6|ch1.tm>>
+ <associate|footnr-1.1.8|<tuple|1.1.8|6|ch1.tm>>
+ <associate|footnr-1.1.9|<tuple|1.1.9|7|ch1.tm>>
+ <associate|footnr-1.2.1|<tuple|1.2.1|8|ch1.tm>>
+ <associate|footnr-1.2.2|<tuple|1.2.2|8|ch1.tm>>
+ <associate|footnr-1.2.3|<tuple|1.2.3|8|ch1.tm>>
+ <associate|footnr-1.2.4|<tuple|1.2.4|8|ch1.tm>>
+ <associate|footnr-1.2.5|<tuple|1.2.5|8|ch1.tm>>
+ <associate|func getchar|<tuple|1.2.1|8|ch1.tm>>
+ <associate|func putchar|<tuple|3|8|ch1.tm>>
+ <associate|part:ch1.tm|<tuple|?|5|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|part:ch2.tm|<tuple|1.2.5|9|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|part:ch3.tm|<tuple|2.2|11|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|ref includehelp-oct-hex|<tuple|1.1.3|6|ch1.tm>>
+ <associate|term declaration|<tuple|call|5|ch1.tm>>
+ <associate|term definition|<tuple|1.1.1|5|ch1.tm>>
+ <associate|term enumeration|<tuple|linter|5|ch1.tm>>
+ <associate|term escape_sequence|<tuple|enumeration|5|ch1.tm>>
+ <associate|term garbage_collection|<tuple|1.1.10|7|ch1.tm>>
+ <associate|term heap|<tuple|garbage collection|7|ch1.tm>>
+ <associate|term machine-independent|<tuple|<label|term
+ heap>heap|7|ch1.tm>>
+ <associate|term operand|<tuple|<label|term
+ machine-independent>machine-independent|7|ch1.tm>>
+ <associate|term operator|<tuple|<label|term operand>operand|7|ch1.tm>>
+ <associate|term stack|<tuple|parameter|7|ch1.tm>>
+ <associate|term struct|<tuple|1.1.11|7|ch1.tm>>
+ <associate|term structure_assignment|<tuple|<label|term
+ struct>struct|7|ch1.tm>>
+ <associate|term text_stream|<tuple|structure assignment|7|ch1.tm>>
+ <associate|term_argument|<tuple|1.1|5|ch1.tm>>
+ <associate|term_call|<tuple|assignment|5|ch1.tm>>
+ <associate|term_expression|<tuple|1.1.4|6|ch1.tm>>
+ <associate|term_function|<tuple|1.1.8|7|ch1.tm>>
+ <associate|term_function_call|<tuple|function|7|ch1.tm>>
+ <associate|term_function_prototype|<tuple|function call|7|ch1.tm>>
+ <associate|term_linter|<tuple|1.1.2|5|ch1.tm>>
+ <associate|term_parameter|<tuple|<label|term operator>operator|7|ch1.tm>>
+ <associate|term_statement|<tuple|<label|term stack>stack|7|ch1.tm>>
+ <associate|term_type|<tuple|<label|term text_stream>text
+ stream|8|ch1.tm>>
+ </collection>
+</references>
+
+<\auxiliary>
+ <\collection>
+ <\associate|parts>
+ <tuple|ch1.tm|chapter-nr|0|section-nr|0|subsection-nr|0>
+
+ <tuple|ch2.tm|chapter-nr|1|section-nr|2|subsection-nr|1>
+
+ <tuple|ch3.tm|chapter-nr|2|section-nr|2|subsection-nr|0>
+ </associate>
+ <\associate|toc>
+ <vspace*|1fn><with|font-series|<quote|bold>|math-font-series|<quote|bold>|1<space|2spc>Definitions>
+ <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
+ <no-break><pageref|auto-1><vspace|0.5fn>
+
+ 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>>
+ <no-break><pageref|auto-2>
+
+ 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>>
+ <no-break><pageref|auto-3>
+
+ <with|par-left|<quote|1tab>|1.2.1<space|2spc>Character Input and Output
+ <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
+ <no-break><pageref|auto-4>>
+
+ <vspace*|1fn><with|font-series|<quote|bold>|math-font-series|<quote|bold>|2<space|2spc>Utilities>
+ <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
+ <no-break><pageref|auto-5><vspace|0.5fn>
+
+ 2.1<space|2spc>Text Editor <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
+ <no-break><pageref|auto-6>
+
+ 2.2<space|2spc>Linter <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
+ <no-break><pageref|auto-7>
+
+ <vspace*|1fn><with|font-series|<quote|bold>|math-font-series|<quote|bold>|3<space|2spc>K&R
+ Exercises> <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
+ <no-break><pageref|auto-8><vspace|0.5fn>
+ </associate>
+ </collection>
+</auxiliary>
\ No newline at end of file
<TeXmacs|2.1.1>
+<project|book.tm>
+
<style|<tuple|book|style-bk>>
<\body>
- <\hide-preamble>
- \;
-
- <assign|description-aligned|<\macro|body>
- <compound|<if|<and|<value|<merge|prefix-|description-aligned>>|<unequal|<value|last-item-nr>|0>>|list*|list>|<macro|name|<aligned-item|<item-strong|<arg|name><item-spc>>>>|<macro|name|<with|mode|math|<with|font-series|bold|math-font-series|bold|<rigid|\<ast\>>>>>|<arg|body>>
- </macro>>
- </hide-preamble>
-
<chapter|Definitions>
<section|Terminology>
</description>
\;
-
- <chapter|Utilities>
-
- <section|Text Editor>
-
- <\itemize>
- <item><name|Emacs> - GNU text editor. See
- <hlinkv|https://www.gnu.org/software/emacs/>.
-
- <item><name|Vim> - text editor See <hlinkv|https://www.vim.org/>.
- </itemize>
-
- <section|Linter>
-
- (TODO: Insert C language linter here)
-
- \;
</body>
<\initial>
<\collection>
- <associate|preamble|false>
+ <associate|page-medium|papyrus>
</collection>
</initial>
<\references>
<\collection>
- <associate|auto-1|<tuple|1|?>>
- <associate|auto-2|<tuple|1.1|?>>
- <associate|auto-3|<tuple|1.2|?>>
- <associate|auto-4|<tuple|1.2.1|?>>
- <associate|auto-5|<tuple|2|?>>
- <associate|auto-6|<tuple|2.1|?>>
- <associate|auto-7|<tuple|2.2|?>>
- <associate|footnote-1.1.1|<tuple|1.1.1|?>>
- <associate|footnote-1.1.10|<tuple|1.1.10|?>>
- <associate|footnote-1.1.11|<tuple|1.1.11|?>>
- <associate|footnote-1.1.2|<tuple|1.1.2|?>>
- <associate|footnote-1.1.3|<tuple|1.1.3|?>>
- <associate|footnote-1.1.4|<tuple|1.1.4|?>>
- <associate|footnote-1.1.5|<tuple|1.1.5|?>>
- <associate|footnote-1.1.6|<tuple|1.1.6|?>>
- <associate|footnote-1.1.7|<tuple|1.1.7|?>>
- <associate|footnote-1.1.8|<tuple|1.1.8|?>>
- <associate|footnote-1.1.9|<tuple|1.1.9|?>>
- <associate|footnote-1.2.1|<tuple|1.2.1|?>>
- <associate|footnote-1.2.2|<tuple|1.2.2|?>>
- <associate|footnote-1.2.3|<tuple|1.2.3|?>>
- <associate|footnote-1.2.4|<tuple|1.2.4|?>>
- <associate|footnote-1.2.5|<tuple|1.2.5|?>>
- <associate|footnr-1.1.1|<tuple|1.1.1|?>>
- <associate|footnr-1.1.10|<tuple|1.1.10|?>>
- <associate|footnr-1.1.11|<tuple|1.1.11|?>>
- <associate|footnr-1.1.2|<tuple|1.1.2|?>>
- <associate|footnr-1.1.3|<tuple|1.1.3|?>>
- <associate|footnr-1.1.4|<tuple|1.1.4|?>>
- <associate|footnr-1.1.5|<tuple|1.1.5|?>>
- <associate|footnr-1.1.6|<tuple|1.1.6|?>>
- <associate|footnr-1.1.7|<tuple|1.1.7|?>>
- <associate|footnr-1.1.8|<tuple|1.1.8|?>>
- <associate|footnr-1.1.9|<tuple|1.1.9|?>>
- <associate|footnr-1.2.1|<tuple|1.2.1|?>>
- <associate|footnr-1.2.2|<tuple|1.2.2|?>>
- <associate|footnr-1.2.3|<tuple|1.2.3|?>>
- <associate|footnr-1.2.4|<tuple|1.2.4|?>>
- <associate|footnr-1.2.5|<tuple|1.2.5|?>>
- <associate|func getchar|<tuple|1.2.1|?>>
- <associate|func putchar|<tuple|3|?>>
- <associate|ref includehelp-oct-hex|<tuple|1.1.3|?>>
- <associate|term declaration|<tuple|call|?>>
- <associate|term definition|<tuple|1.1.1|?>>
- <associate|term enumeration|<tuple|linter|?>>
- <associate|term escape_sequence|<tuple|enumeration|?>>
- <associate|term garbage_collection|<tuple|1.1.10|?>>
- <associate|term heap|<tuple|garbage collection|?>>
- <associate|term machine-independent|<tuple|<label|term heap>heap|?>>
+ <associate|auto-1|<tuple|1|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-2|<tuple|1.1|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-3|<tuple|1.2|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-4|<tuple|1.2.1|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnote-1.1.1|<tuple|1.1.1|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnote-1.1.10|<tuple|1.1.10|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnote-1.1.11|<tuple|1.1.11|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnote-1.1.2|<tuple|1.1.2|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnote-1.1.3|<tuple|1.1.3|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnote-1.1.4|<tuple|1.1.4|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnote-1.1.5|<tuple|1.1.5|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnote-1.1.6|<tuple|1.1.6|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnote-1.1.7|<tuple|1.1.7|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnote-1.1.8|<tuple|1.1.8|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnote-1.1.9|<tuple|1.1.9|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnote-1.2.1|<tuple|1.2.1|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnote-1.2.2|<tuple|1.2.2|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnote-1.2.3|<tuple|1.2.3|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnote-1.2.4|<tuple|1.2.4|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnote-1.2.5|<tuple|1.2.5|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnr-1.1.1|<tuple|1.1.1|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnr-1.1.10|<tuple|1.1.10|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnr-1.1.11|<tuple|1.1.11|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnr-1.1.2|<tuple|1.1.2|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnr-1.1.3|<tuple|1.1.3|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnr-1.1.4|<tuple|1.1.4|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnr-1.1.5|<tuple|1.1.5|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnr-1.1.6|<tuple|1.1.6|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnr-1.1.7|<tuple|1.1.7|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnr-1.1.8|<tuple|1.1.8|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnr-1.1.9|<tuple|1.1.9|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnr-1.2.1|<tuple|1.2.1|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnr-1.2.2|<tuple|1.2.2|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnr-1.2.3|<tuple|1.2.3|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnr-1.2.4|<tuple|1.2.4|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|footnr-1.2.5|<tuple|1.2.5|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|func getchar|<tuple|1.2.1|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|func putchar|<tuple|3|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|ref includehelp-oct-hex|<tuple|1.1.3|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|term declaration|<tuple|call|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|term definition|<tuple|1.1.1|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|term enumeration|<tuple|linter|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|term escape_sequence|<tuple|enumeration|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|term garbage_collection|<tuple|1.1.10|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|term heap|<tuple|garbage collection|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|term machine-independent|<tuple|<label|term
+ heap>heap|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
<associate|term operand|<tuple|<label|term
- machine-independent>machine-independent|?>>
- <associate|term operator|<tuple|<label|term operand>operand|?>>
- <associate|term stack|<tuple|parameter|?>>
- <associate|term struct|<tuple|1.1.11|?>>
- <associate|term structure_assignment|<tuple|<label|term struct>struct|?>>
- <associate|term text_stream|<tuple|structure assignment|?>>
- <associate|term_argument|<tuple|1.1|?>>
- <associate|term_call|<tuple|assignment|?>>
- <associate|term_expression|<tuple|1.1.4|?>>
- <associate|term_function|<tuple|1.1.8|?>>
- <associate|term_function_call|<tuple|function|?>>
- <associate|term_function_prototype|<tuple|function call|?>>
- <associate|term_linter|<tuple|1.1.2|?>>
- <associate|term_parameter|<tuple|<label|term operator>operator|?>>
- <associate|term_statement|<tuple|<label|term stack>stack|?>>
- <associate|term_type|<tuple|<label|term text_stream>text stream|?>>
+ machine-independent>machine-independent|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|term operator|<tuple|<label|term
+ operand>operand|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|term stack|<tuple|parameter|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|term struct|<tuple|1.1.11|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|term structure_assignment|<tuple|<label|term
+ struct>struct|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|term text_stream|<tuple|structure
+ assignment|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|term_argument|<tuple|1.1|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|term_call|<tuple|assignment|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|term_expression|<tuple|1.1.4|2|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|term_function|<tuple|1.1.8|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|term_function_call|<tuple|function|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|term_function_prototype|<tuple|function
+ call|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|term_linter|<tuple|1.1.2|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|term_parameter|<tuple|<label|term
+ operator>operator|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|term_statement|<tuple|<label|term
+ stack>stack|3|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|term_type|<tuple|<label|term text_stream>text
+ stream|4|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
</collection>
</references>
<with|par-left|<quote|1tab>|1.2.1<space|2spc>Character Input and Output
<datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
<no-break><pageref|auto-4>>
-
- <vspace*|1fn><with|font-series|<quote|bold>|math-font-series|<quote|bold>|2<space|2spc>Utilities>
- <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
- <no-break><pageref|auto-5><vspace|0.5fn>
-
- 2.1<space|2spc>Text Editor <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
- <no-break><pageref|auto-6>
-
- 2.2<space|2spc>Linter <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
- <no-break><pageref|auto-7>
</associate>
</collection>
</auxiliary>
\ No newline at end of file
--- /dev/null
+<TeXmacs|2.1.1>
+
+<project|book.tm>
+
+<style|<tuple|book|style-bk>>
+
+<\body>
+ <chapter|Utilities>
+
+ <section|Text Editor>
+
+ <\itemize>
+ <item><name|Emacs> - GNU text editor. See
+ <hlinkv|https://www.gnu.org/software/emacs/>.
+
+ <item><name|Vim> - text editor See <hlinkv|https://www.vim.org/>.
+ </itemize>
+
+ <section|Linter>
+
+ (TODO: Insert C language linter here)
+</body>
+
+<\initial>
+ <\collection>
+ <associate|page-medium|papyrus>
+ </collection>
+</initial>
+
+<\references>
+ <\collection>
+ <associate|auto-1|<tuple|1|1|../../../../.TeXmacs/texts/scratch/no_name_7.tm>>
+ <associate|auto-2|<tuple|1.1|1|../../../../.TeXmacs/texts/scratch/no_name_7.tm>>
+ <associate|auto-3|<tuple|1.2|1|../../../../.TeXmacs/texts/scratch/no_name_7.tm>>
+ </collection>
+</references>
+
+<\auxiliary>
+ <\collection>
+ <\associate|toc>
+ <vspace*|1fn><with|font-series|<quote|bold>|math-font-series|<quote|bold>|1<space|2spc>Utilities>
+ <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
+ <no-break><pageref|auto-1><vspace|0.5fn>
+
+ 1.1<space|2spc>Text Editor <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
+ <no-break><pageref|auto-2>
+
+ 1.2<space|2spc>Linter <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
+ <no-break><pageref|auto-3>
+ </associate>
+ </collection>
+</auxiliary>
\ No newline at end of file
--- /dev/null
+<TeXmacs|2.1.1>
+
+<project|book.tm>
+
+<style|<tuple|book|style-bk>>
+
+<\body>
+ <chapter|K&R Notes>
+
+ <section|Ch. 1: A Tutorial Introduction>
+
+ <subsection|Sec. 1.1: Getting Started>
+
+ \;
+
+ <\description>
+ <item*|Exercise 1-1>Run the \P<verbatim|hello, world>\Q program on your
+ system. Experiment with leaving out parts of the program, to see what
+ error messages you get.
+
+ <item*|Exercise 1-2>Experiment to find out what happens when
+ <cpp|printf>'s argument string contains <cpp|\\><em|c>, where <em|c> is
+ some character not listed above.
+ </description>
+
+ <subsection|Sec. 1.2: Variables and Arithmetic Expressions>
+
+ <\description>
+ <item*|Exercise 1-3>Modify the temperature conversion program to bring a
+ heading above the table.
+
+ <item*|Exercise 1-4>Write a program to bring the corresponding Celsius to
+ Fahrenheit table.
+ </description>
+
+ <subsection|Sec. 1.3: The For Statement>
+
+ <\description>
+ <item*|Exercise 1-5>Modify the temperature conversion program to print
+ the table in reverse order, that is, from <math|300> degrees to <math|0>.
+ </description>
+
+ <subsection|Sec. 1.4: Symbolic Constants>
+
+ <subsection|Sec. 1.5: Character Input and Output>
+
+ <subsubsection|Sec. 1.5.1: File Copying>
+
+ <\description>
+ <item*|Exercise 1-6>Verify that the expression <cpp|getchar() != EOF> is
+ <math|0> or <math|1>.
+
+ <item*|Exercise 1-7>Write a program to print the value of <cpp|EOF>.
+ </description>
+
+ <subsubsection|Sec. 1.5.2: Character Counting>
+
+ <subsubsection|Sec. 1.5.3: Line Counting>
+
+ <\description>
+ <item*|Exercise 1-8>Write a program to count blanks, tabs, and newlines.
+
+ <item*|Exercise 1-9>Write a program to copy its input to its output,
+ replacing each string of one or more blanks by a single blank.
+
+ <item*|Exercise 1-10>Write a program to copy its input to its output,
+ replacing each tab by <cpp|\\t>, each backspace by <cpp|\\b>, and each
+ backslash by <cpp|\\\\>. This makes tabs and backspaces visible in an
+ unambiguous way.
+ </description>
+
+ <subsubsection|Sec. 1.5.4: Word Counting>
+
+ <\description>
+ <item*|Exercise 1-11>How would you test the word program? What kinds of
+ input are most likely to uncover bugs if there are any?
+
+ <item*|Exercise 1-12>Write a program that prints its input one word per
+ line.
+ </description>
+
+ <subsection|Sec. 1.6: Arrays>
+
+ <\description>
+ <item*|Exercise 1-13>Write a program to print a histogram of the lengths
+ of words in its input. IT is easy to draw the histogram with the bars
+ horizontal; a vertical orientation is more challenging.
+
+ <item*|Exercise 1-14>Write a program to print a histogram of the
+ frequencies of different characters in its input.
+ </description>
+
+ <subsection|Sec 1.7: Functions>
+
+ <\description>
+ <item*|Exercise 1-15>Rewrite the temperature conversion program of
+ Section 1.2 to use a function for conversion.
+ </description>
+
+ <subsection|Sec 1.8: Arguments\UCall by Value>
+
+ <subsection|Sec 1.9: Character Arrays>
+
+ <\description>
+ <item*|Exercise 1-16>Revise the main routine of the longest-line program
+ so it will correctly print the length of arbitrarily long input lines,
+ and as much as possible of the text.
+
+ <item*|Exercise 1-17>Write a program to print all input lines that are
+ longer than <math|80> characters.
+
+ <item*|Exercise 1-18>Write a program to remove trailing blanks and tabs
+ from each line of input, and to delete entirely blank lines.
+
+ <item*|Exercise 1-19>Write a function <cpp|reverse(s)> that reverses the
+ character string <cpp|s>. Use it to write a program that reverses its
+ input a line at a time.
+ </description>
+
+ <subsection|Sec 1.10: External Variables and Scope>
+
+ <\description>
+ <item*|Exercise 1-20>Write a program <cpp|detab> that replaces tabs in
+ the input with the proper number of blanks to space to the next tab stop.
+ Assume a fixed set of tab stops, say every <em|n> columns. Should <em|n>
+ be a variable or a symbolic parameter?
+
+ <item*|Exercise 1-21>Write a program <cpp|entab> that replaces strings of
+ blanks by the minimum number of tabs and blanks to achieve the same
+ spacing. Use the same tab stops as for <cpp|detab>. When either a tab or
+ a single blank would suffice to each a tab stop, which should be given
+ preference?
+
+ <item*|Exercise 1-22>Write a program to \Pfold\Q long input lines into
+ two or more shorter lines after the last non-blank character that occurs
+ before the <em|n>-th column of input. Make sure your program does
+ something intelligent with very long lines, and if there are no blanks or
+ tabs before the specified column.
+
+ <item*|Exercise 1-23>Write a program to remove all comments from a
+ <name|C> program. Don't forget to handle quoted strings and character
+ constants properly. <name|C> comments do not nest.
+
+ <item*|Exercise 1-24>Write a program to check a <name|C> program for
+ rudimentary syntax errors like unbalanced parentheses, brackets and
+ braces. Don't forget about quotes, both single and double, escape
+ sequences, and comments. (This program is hard if you do it in full
+ generality.)
+ </description>
+
+ <section|Ch2: Types, Operators, and Expressions>
+
+ <subsection|Sec 2.1: Variable names>
+
+ <subsection|Sec 2.2: Data Types and Sizes>
+
+ <\description>
+ <item*|Exercise 2-1>Write a program to determine the ranges of
+ <cpp|char>, <cpp|short>, <cpp|int>, and <cpp|long> variables, both
+ <cpp|signed> and <cpp|unsigned>, by printing appropriate values from
+ standard headers and by direct computation. Harder if you compute them:
+ determine the ranges of the various floating-point types.
+ </description>
+
+ <subsection|Sec 2.3: Constants>
+
+ <subsection|Sec 2.4: Declarations>
+
+ <subsection|Sec 2.5: Arithmetic Operators>
+
+ <subsection|Sec 2.6: Relational and Logical Operators>
+
+ <\description>
+ <item*|Exercise 2-2>Write a loop equivalent to the <cpp|for> loop above
+ without using <cpp|&&> or <cpp|\|\|>.
+ </description>
+
+ <subsection|Sec 2.7: Type Conversions>
+
+ <\description>
+ <item*|Exercise 2-3>Write the function <cpp|htoi(s)>, which converts a
+ string of hexadecimal digits (including an optional <cpp|0x> or <cpp|0X>)
+ into its equivalent integer value. The allowable digits are <cpp|0>
+ through <cpp|9>, <cpp|a> through <cpp|f>, and <cpp|A> through <cpp|F>.
+ </description>
+
+ <subsection|Sec 2.8: Increment and Decrement Operators>
+
+ <\description>
+ <item*|Exercise 2-4>Write an alternate version of <cpp|squeeze(s1,s2)>
+ that deletes each character in <cpp|s1> that matches any character in the
+ <em|string> <cpp|s2>.
+
+ <item*|Exercise 2-5>Write the function <cpp|any(s1,s2)>, which returns
+ the first location in the string <cpp|s1> where any character fromt he
+ string <cpp|s2> occurs, or <cpp|-1> if <cpp|s1> contains no characters
+ from <cpp|s2>. (The standard library function <cpp|strpbrk> does the same
+ job but returns a pointer to the location.)
+ </description>
+
+ <subsection|Sec 2.9: Bitwise Operators>
+
+ <\description>
+ <item*|Exercise 2-6>Write a function <cpp|setbits(x,p,n,y)> that returns
+ <cpp|x> with the <cpp|n> bits that begin at position <cpp|p> set to the
+ rightmost <cpp|n> bits of <cpp|y>, leaving the other bits unchanged.
+
+ <item*|Exercise 2-7>Write a function <cpp|invert(x,p,n)> that returns
+ <cpp|x> with the <cpp|n> bits that begin at position <cpp|p> inverted
+ (i.e. <math|1> changed into <math|0> and vice versa), leaving the others
+ unchanged.
+
+ <item*|Exercise 2-8>Write a function <cpp|rightrot(x,n)> that returns the
+ value of the integer <cpp|x> rotated to the right by <cpp|n> bit
+ positions.
+ </description>
+
+ <subsection|Sec 2.10: Assignment Operators and Expressions>
+
+ <\description>
+ <item*|Exercise 2-9>In a two\<#2019\>s complement number system, <cpp|x
+ &= (x-1)> deletes the rightmost <math|1>-bit in <cpp|x>. Explain why. Use
+ this observation to write a faster version of <cpp|bitcount>.
+ </description>
+
+ <subsection|Sec 2.11: Conditional Expressions>
+
+ <\description>
+ <item*|Exercise 2-10>Rewrite the function <cpp|lower>, which converts
+ upper case letters to lower case, with a conditional expression instead
+ of <cpp|if-else>.
+ </description>
+
+ <subsection|Sec 2.12: Precedence and Order of Evaluation>
+
+ \;
+
+ \;
+</body>
+
+<\initial>
+ <\collection>
+ <associate|page-medium|papyrus>
+ </collection>
+</initial>
+
+<\references>
+ <\collection>
+ <associate|auto-1|<tuple|1|1|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-10|<tuple|1.1.5.3|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-11|<tuple|1.1.5.4|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-12|<tuple|1.1.6|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-13|<tuple|1.1.7|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-14|<tuple|1.1.8|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-15|<tuple|1.1.9|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-16|<tuple|1.1.10|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-17|<tuple|1.2|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-18|<tuple|1.2.1|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-19|<tuple|1.2.2|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-2|<tuple|1.1|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-20|<tuple|1.2.3|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-21|<tuple|1.2.4|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-22|<tuple|1.2.5|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-23|<tuple|1.2.6|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-24|<tuple|1.2.7|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-25|<tuple|1.2.8|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-26|<tuple|1.2.9|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-27|<tuple|1.2.10|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-28|<tuple|1.2.11|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-29|<tuple|1.2.12|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-3|<tuple|1.1.1|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-30|<tuple|1.2.13|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-4|<tuple|1.1.2|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-5|<tuple|1.1.3|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-6|<tuple|1.1.4|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-7|<tuple|1.1.5|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-8|<tuple|1.1.5.1|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ <associate|auto-9|<tuple|1.1.5.2|?|../../../../.TeXmacs/texts/scratch/no_name_10.tm>>
+ </collection>
+</references>
+
+<\auxiliary>
+ <\collection>
+ <\associate|toc>
+ <vspace*|1fn><with|font-series|<quote|bold>|math-font-series|<quote|bold>|1<space|2spc>K&R
+ Exercises> <datoms|<macro|x|<repeat|<arg|x>|<with|font-series|medium|<with|font-size|1|<space|0.2fn>.<space|0.2fn>>>>>|<htab|5mm>>
+ <no-break><pageref|auto-1><vspace|0.5fn>
+ </associate>
+ </collection>
+</auxiliary>
\ No newline at end of file