Upload
internet
View
110
Download
3
Embed Size (px)
Citation preview
Analise Semânticaaula-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.