A análise léxica consiste em ler o código fonte caractere a caractere para identificar constantes, comentários, palavras reservadas, operadores, identificadores, ignorar tabs e espaços em branco, processar includes, se for o caso. Por outro lado, a análise sintática é responsável por identificar na sequência de elementos léxicos as construções da linguagem, como por exemplo, as estruturas condicionais. Essa análise irá verificar a condição da estrutura e a quais comandos ela está associada. Já a análise semântica tem por objetivo verificar se as construções identificadas pela análise sintática estão de acordo com as "regras" da linguagem. Por exemplo, em C, caso uma variável não tenha sido anunciada antes de ter sido citada, o compilador acusará esse erro no código fonte.