Performs only syntax and semantic checking on the source file, but does not produce any object or executable code.