software program translating high level source code into low-level machine code (binary) that computer processor can execute - translator

example

  • gcc
  • javac
  • clang

basic steps

  1. lexical analysis
    • convert code into tokens describing diff parts of code
    • similar logic used by syntax highlighting
    • component focused, no deeper understanding on how parts fit together
  2. syntax analysis / parsing
  3. code generation