# Problem
Identify the function of each part of the toolchain.
# Process
...
# Answer
* Compiler - Converts high-level code to assembly (`.c` to `.s`).
* Assembler - Converts assembly code to machine code (`.s` to `.o`).
* Linker - Combines object files to create a complete program executable.
* Preprocessor - Prepares high-level code to be compiled and generates the symbol table.
* `objcopy` - Converts an executable to a binary image file for loading into hardware.
* `objdump` - Disassembles machine code to assembly for an executable.