Compiler
Translates source code into:
Source code instructions
Library calls
Checks for syntax and other errors; issues warning or error messages
Updates internal tables that store information about data items and program components
Generates CPU instructions or library calls to carry out the source code instruction