Análise Semântica

O que é:

  • É a terceira fase do front-end de um compilador, ocorre logo seguinte a análise sintática;
  • Diferente do analizador sintático, que análisa a gramática dó código, o analisador semântico verifica o sentido, ou seja, verifica se o código vai conseguir ser compilado e funcionar de forma correta;
  • Por ele ser a última linha de “segurança”, ele é responsável por detectar todos os erros que foram passados despercibidos pela análise léxica e pela análise sintática;

Para cada linguagem há uma análise semântica diferente, um compilador de C é diferente de um compilador de C++, porém, existem algumas coisas que são usadas em todos os compiladores na parte semântica, mesmo que sejam linguagens diferentes, que são:

  • verificar se os identificadores foram declarados antes de serem usados nos cálculos;
  • verificar se as palavras-chaves reservadas não estão sendo usadas indevidamente;
  • verificar se os tipos estão declarados corretamente, caso a linguagem seja explicitamente tipada;
  • verificar se os cálculos são consistentes em termos de tipo, sempre que possível;

Bibliografia:

https://pgrandinetti-github-io.translate.goog/compilers/page/what-is-semantic-analysis-in-compilers/?_x_tr_sl=en&_x_tr_tl=pt&_x_tr_hl=pt&_x_tr_pto=tc


Table of contents


This site uses Just the Docs, a documentation theme for Jekyll.