Compiladores

1524 palavras 7 páginas
Análise Semântica
• A análise sintática consegue verificar se uma expressão obedece às regras de formação de uma dada gramática.
• No entanto, seria muito difícil expressar através de gramáticas algumas regras usuais em linguagem de programação, como “todas as variáveis devem ser declaradas” e situações onde o contexto em que ocorre a expressão ou o tipo da variável deve ser verificado.

Análise Semântica
• O objetivo da análise semântica é trabalhar no 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
– Verificação da unicidade da declaração de variáveis Análise Semântica
• Dependendo da linguagem de programação, outros tipos de verificações podem ser necessários.
• Exemplo de código em C: int f1(int a, float b) { return a%b;
}

• A tentativa de compilar esse código irá gerar um erro detectado pelo analisador semântico, mais especificamente pelas regras de verificação de tipos, indicando que o operador módulo % não pode ter um operador real.
• No compilador gcc, essa mensagem é
– In function `f1': ...: invalid operands to binary %

Análise Semântica
• 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, na expressão em C
– a = x - '0';

• A constante do tipo caractere '0' é automaticamente convertida para inteiro para compor corretamente a expressão aritmética na qual ela toma parte
• Todo char (caractere) em uma expressão é convertido pelo compilador para um int.
• Esse procedimento de conversão de tipo é denominado coerção (cast).

Análise Semântica
• Em C, a sequencia de regras determina a realização automática de coerção em expressões aritméticas:
1. char e short são convertidos para int, float para double;
2. se um dos operandos é double, o outro é convertido

Relacionados

  • Compiladores
    568 palavras | 3 páginas
  • Compiladores
    2425 palavras | 10 páginas
  • Compiladores
    970 palavras | 4 páginas
  • Compiladores
    569 palavras | 3 páginas
  • compiladores
    780 palavras | 4 páginas
  • Compiladores
    1018 palavras | 5 páginas
  • Compiladores
    1037 palavras | 5 páginas
  • compiladores
    1300 palavras | 6 páginas
  • Compiladores
    9795 palavras | 40 páginas
  • Compiladores
    4177 palavras | 17 páginas