Análise Semântica no Projeto do Compilador
A Análise Semântica é a terceira fase do Compilador . A Análise Semântica garante que as declarações e instruções do programa sejam semanticamente corretas. É uma coleção de procedimentos chamados pelo analisador conforme e quando exigido pela gramática. A árvore de sintaxe da fase anterior e a tabela de símbolos são usadas para verificar a consistência do código fornecido. A verificação de tipo é uma parte importante da análise semântica, onde o compilador garante que cada operador tenha operandos correspondentes.
Analisador Semântico:
Ele usa árvore de sintaxe e tabela de símbolos para verificar se o programa fornecido é semanticamente consistente com a definição da linguagem. Ele reúne informações de tipo e as armazena na árvore de sintaxe ou na tabela de símbolos. Essas informações de tipo são subsequentemente usadas pelo compilador durante a geração do código intermediário.
Erros semânticos: os
erros reconhecidos pelo analisador semântico são os seguintes:
- Tipo incompatível
- Variáveis não declaradas
- Uso indevido de identificador reservado
Funções de Análise Semântica:
- Verificação de tipo -
garante que os tipos de dados sejam usados de maneira consistente com sua definição. - Verificação de rótulos -
um programa deve conter referências de rótulos. - Verificação de controle de fluxo -
mantém uma verificação de que as estruturas de controle são usadas de maneira adequada. (Exemplo: nenhuma instrução de interrupção fora de um loop)
Exemplo:
float x = 10.1; float y = x*30;
No exemplo acima, o número inteiro 30 será projetado para flutuar 30.0 antes da multiplicação, pelo analisador semântico.
Semântica estática e dinâmica:
- Semântica estática -
tem esse nome devido ao fato de que são verificados em tempo de compilação. A semântica estática e o significado do programa durante a execução estão indiretamente relacionados. - Análise Semântica Dinâmica -
define o significado de diferentes unidades de programa, como expressões e declarações. Eles são verificados em tempo de execução, ao contrário da semântica estática.
Aprenda todos os conceitos do GATE CS com aulas gratuitas ao vivo em nosso canal do youtube.
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva