Answer from cs61c-as (Gerardo Bonilla 15311015) for Question 1 The purpose of the preprocessor is to go through the code before it is compiled and do things such as file inclusion and macro substitution. The input comes from the programmer so it would be a type of pseudocode and the output is c code, such as when #define is used, and lines are replaced. If it were a seperate step in the figure it would go before the compiler.