From your perspective, a CodeWarrior compiler is a single program. Internally, however, a CodeWarrior compiler has two parts:
- The front-end, shared by all CodeWarrior compilers, translates human-readable source code into a platform-independent intermediate representation of the program being compiled
- The back-end, customized to generate software for a target platform, converts the intermediate representation into object code containing data and native instructions for the target processor
A CodeWarrior compiler coordinates its front-end and back-end to translate source code into object code in several steps:
- Configure settings requested from the compiler to the CodeWarrior IDE or passed to the linker from the command-line
- Translate human-readable source code into an intermediate representation
- Optionally output symbolic debugging information
- Optimize the intermediate representation
- Convert the intermediate representation to native object code
- Optimize the native object code
- Output the native, optimized object code