Answer from cs61c-cl (Hiroki Terashima 16032281) for Question 1 Preprocessor performs the first steps of compilation like macro substitution, conditional compilation, and inclusion of named files. Preprocessor serves several purposes, including replacement of trigraph sequences by their equivalents, deletion of a '\n' characters (therefore splicing lines), replacement of escape sequences in character constants and string literals to their equivalents, and linking the translated result together with other programs and libraries. About language- lines beginning with # communicate with the preprocessor. Its output is the result of the linking its result with other programs and libraries. In Figure 3.21, since preprocessor is the first step of compilation, it would be performed before the compiler.