Análise semântica: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Elilopes (discussão | contribs)
wikificação
Linha 1:
{{Ver desambiguação|Semântica}}
{{Sem-fontes|data=março de 2014}}
{{Predefinição:Execução de Programa}}'''Análise semântica''' é um processo de um [[compilador]] (de uma [[linguagem de programação]]), é a terceira fase da [[compiladores|compilação]] onde se verificam os erros semânticos, (por exemplo, fazer a divisão de um número inteiro por outro numero real ([[float,]]) na linguagem Cno padrão [[ANSI)]]) no [[código fonte]] e coletam-secoleta as informações necessárias para a próxima fase da compilação, que é a [[Gerador de código|geração]] de [[código objeto]].
 
'''Análise semântica''' é a terceira fase da [[compiladores|compilação]] onde se verificam os erros semânticos, (por exemplo, fazer a divisão de um número inteiro por outro numero float, na linguagem C padrão ANSI)) no [[código fonte]] e coletam-se as informações necessárias para a próxima fase da compilação, que é a [[Gerador de código|geração]] de [[código objeto]].
 
A análise semântica trata a entrada sintática e transforma-a numa representação mais
Linha 8 ⟶ 7:
encarregada de analisar a utilização dos identificadores e de ligar cada uma delas a sua
declaração. Nesta situação verificar-se que o programa respeita as regras de visibilidade
e de porte dos identificadores. Nesta fase é também esperado que no processo da compilação verifique que cada expressão definida tenha um tipo adequado conforme as regras próprias da linguagem.
linguagem.
 
O objetivo da análise semântica é trabalhar nesse 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 e a verificação da unicidade da declaração de variáveis. Dependendo da linguagem de programação, outros tipos de verificações podem ser necessários.
 
== Etapas da análise ==
 
A análise semântica engloba duas tarefas principais: análise de contexto com geração de código e, verificação de erros em frases sintaticamente corretas.
'''ETAPAS DA ANÁLISE SEMÂNTICA'''
 
A análise semântica engloba duas tarefas principais:
 
A Análise de contexto e a Geração de código.
Verificação de erros em frases que estão sintaticamente corretos.
 
A saída da fase de análise semântica é anotada na árvore do analisador gramatical. As gramáticas de atributo são usadas para descrever a semântica de estática de um programa.
Linha 29 ⟶ 22:
E por fim, a fase de geração de código tem como objetivo analisar o código já otimizado e gerar um código objeto definitivo para uma máquina alvo. Normalmente este código objeto é um código de máquina relocável ou um código de montagem. Nesta etapa as localizações de memória são selecionadas para cada uma das variáveis usadas pelo programa. Então, as instruções intermediárias são, cada uma, traduzidas numa seqüência de instruções de máquina que realizam a mesma tarefa.
 
Exemplos típicos de erros semânticos são: uma variável não declarada; uma multiplicação entre tipos de dados diferentes, e; atribuição de um literal para outro tipo, como um inteiro em um texto ([[string]]) ou vice-versa.
Exemplos típicos de erros semânticos são:
 
Uma variável não declarada
Uma multiplicação entre tipos de dados diferentes
Atribuição de um literal para outro tipo, como um inteiro em uma string ou vice-versa.
 
== Ver também ==
 
* [[JIT|Compilador Just in Time (JIT)]]
* [[Interpretador|Interpretadores]]
* [[Linguagens formais e compiladores|Linguagens formais]]
* [[Linker]]
* [[Teoria da computação]]
* [[Compiladores]]
* [[Análise léxica]]
* [[Análise sintática (computação)|Análise sintática]]
* {{Link|pt|2=http://pt.wikiversity.org/wiki/Introdu%C3%A7%C3%A3o_%C3%A0_Teoria_dos_Compiladores/An%C3%A1lise_Sem%C3%A2ntica |3=Análise Semântica (Wikivesity)}}
 
== Ligações externas ==
{{Esboço-programação}}
 
* {{Link|pt|2=http://pt.wikiversity.org/wiki/Introdu%C3%A7%C3%A3o_%C3%A0_Teoria_dos_Compiladores/An%C3%A1lise_Sem%C3%A2ntica |3=Análise Semântica|descr=no (Wikivesity)[[Wikiversidade]]}}
* {{Link|en|http://www.thefreecountry.com/compilers/index.shtml|Compiladores livres|descr=por Free Country}}
{{Esboço-programação}}{{Portal3|ti}}
{{DEFAULTSORT:Analise Semantica}}
[[Categoria:Compiladores]]