Answer from cs61c-aw (wing hin kao 16500429) for Question 1 The preprocessor have two functions. one is to include the contents of a file during compilation. second is to replace a token by an arbitrary sequence of characters. so its input should be a C language. and its output should be assembly language. since the output is an assembly language, it should be other brench of compiler step located at step 1 and step 2.