Análise semântica é um processo de um compilador (de uma linguagem de programação) na qual são verificados os erros semânticos (por exemplo, divisão de um número inteiro por outro número real (float) no padrão ANSI) no código fonte e coletadas as informações necessárias para a próxima fase da compilação, que é a geração de código objeto.
Análise semântica e sintática
A análise semântica trata a entrada sintática e transforma-a numa representação mais simples e mais adaptada a geração de código. Esta camada do compilador fica igualmente encarregada de analisar a utilização dos identificadores e de ligar cada uma delas a sua declaração. Nesta situação verificar-se se o programa respeita as regras de visibilidade e de porte dos identificadores. Além disso, é também esperado que no processo da compilação verifique se cada expressão definida tem um tipo adequado conforme as regras próprias da linguagem.
O objetivo da análise semântica é trabalhar nesse nível de inter-relacionamento entre partes distintas do programa. As tarefas básicas desempenhadas durante a análise semântica incluem a verificação de tipos, a verificação do fluxo de controle e a verificação da unicidade da declaração de variáveis. Dependendo da linguagem de programação, outros tipos de verificações podem ser necessários.