Analise Semântica
aula-10-analise-semântica.pdf
Analise Semântica

Até o momento vimos a etapa de análise léxica - que quebra o
programa fonte em tokens.

E a análise sintática - que validas as regras de formação da
linguagem de programação.

A semântica de um programa está diretamente ligada ao seu
significado.

A análise semântica é a terceira etapa do processo de
compilação e é nesse memento que ocorre a validação de
verificação de erros semânticos que até então não podem ser
verificados pelas etapas anteriores.
Analise Semântica
Frase: Não é possível representar em uma gramática
livre de contexto uma regra como "Todo identificador
deve ser declarado antes de ser usado", isso resume
muito bem o que deve ser feito na análise semântica
Analise Semântica

O analisador semântico utiliza a árvore sintática produzida na
etapa de analise sintática e a tabela de símbolos produzida e
incrementada desde o início do processo de compilação.

Toda essa estrutura é utilizada gerar uma arvore de sintática e uma
tabela de símbolos mais elaborada e adaptada para as próximas
etapas que compreendem as tarefas do back-end do processo de
compilação e que tratam da geração do código em si.
Principais erros semânticos

Escopo dos identificadores: Deve garantir que variáveis e funções
estejam declaradas em locais que podem ser acessados onde
esses identificadores estão sendo utilizados.
Exemplo: Em uma classe funções declaradas como privadas estão sendo
utilizadas fora da classe.

Compatibilidade de tipos: Verificar se os tipos de dados declarados
a variáveis e funções estão sendo utilizados e atatribuidos
corretamente.
Exemplo: variável declaração como Numérica está recebendo um valor
Literal.
Principais erros semânticos

Mecanismo de passagem de parâmetros: Também é verificado
através dessas ações semânticas, verificação de tipos de
paramentos e quantidade de parâmetros.

Detectar unicidade de nomes de identificadores: Por exemplo
variáveis com o mesmo nome no mesmo escopo não deve ser
permitido.

Detectar o uso correto de comandos de controle de fluxo: Como
exemplo temos os comandos continue e break.
Lembrete
A análise semântica verifica erros semânticos no programa fonte e
captura informações para as fases subsequentes que tratam da
geração do código objeto. Utiliza a estrutura hierárquica criada na
fase de análise sintática a fim de identificar operadores e operações
e enunciados de expressões. Um importante componente da analise
semântica é a verificação de tipos, nela o compilador verifica se
cada operador recebe os operandos permitidos e especificados na
linguagem fonte.
Um exemplo que ilustra muito bem essa etapa de validação de tipos
é a atribuição de objetos de tipos ou classe diferentes.
Curiosidade

Em alguns casos, o compilador realiza a conversão automática de
um tipo para outro que seja adequado à aplicação do operador.
Por exemplo a expressão
Erros semânticos

Veja o exemplo de um código em Object Pascal:
Erros semânticos

No exemplo acima o analisador semântico de ter uma series e
preocupações para validar o significado de cada regra de
produção.

Vamos utilizar como exemplo a regra de produção de atribuição
Erros semânticos

O analisador semântico deve fazer as seguintes validações

O identificador C foi declarado?

O identificador C é uma variável?

Qual o escopo da variável C?

Qual é o tipo da variável C?

O tipo da variável C é compatível com os demais identificadores,
operadores?
TAE – Exercício para entrega
Tradução dirigida por sintaxe

Esse processo é implementado associando-se a cada execução de
uma regra da gramatical (execução do analisador sintático) uma
ação semântica.

Essas ações semânticas são frequentemente implementadas a
chamadas de rotinas semânticas, e podem ser responsáveis por
efetuar a análise semântica, geração de código, armazenamento
de informações na tabela de símbolos.
Exercício para entrega

Fazer uma pesquisa sobre a técnica de Tradução Dirigida por
Sintaxe e elaborar um resumo explicando do que se trata essa
técnica.

A pesquisa deve incluir:

Definição do que é e como é realizado a Tradução Dirigida por Sintaxe.

Incluir a referência ao material pesquisado.

Ao final elaborar 3 questões, 1 questão com alternativa verdadeiro
e falso e 2 questões múltipla escolha com 4 alternativas cada.

Esse trabalho deve ser entregue até o final da aula de hoje
(31/10/2014).

Será considerado como TAE e ira valer nota com peso 5.
Download

Analise Semântica