Analisador semantico

Disponível somente no TrabalhosFeitos
  • Páginas : 26 (6324 palavras )
  • Download(s) : 0
  • Publicado : 15 de março de 2012
Ler documento completo
Amostra do texto
[pic]



FACNET – Faculdade de Negócios e Tecnologias da Informação
SESLA – Sociedade de Ensino Superior do Lago
Curso de Bacharelado em Sistemas de Informação
Disciplina: Fundamentos da Computação e Compiladores
Turma: BSI-7A
Professor: Reinaldo Mangialardo



Analisador Semântico









Gustavo Mendes Pereira
Luis Henrique de Araújo Carvalho
Renato Souza de Almeida
Ulisses Alves daConceição





















Brasília, 01 de Dezembro de 2011

Analisador Semântico














Gustavo Mendes Pereira
Luis Henrique de Araújo Carvalho
Renato Souza de Almeida
Ulisses Alves da Conceição













Professor: Reinaldo Mangialardo


Fundamentos da Computação e Compiladores














FACNET – Faculdade de Negócios e Tecnologias da Informação
Dezembro de 2011


Sumário
1. Traduçãodirigida pela Sintase 4
1.1 Definição e atribuições 4
1.2 Verificação de Contexto 7
2. Tabelas de Símbolos 9
2.1. Atributos dos nomes dos identificadores 9
2.2. HASHING 16
3. Exemplo prático de construção de uma ANALISE SEMÂNTICA 21
3.1. Exemplo 21
4. Referências Bibliográficas 23









































Tradução dirigida pela Sintase


1 Definição e atribuições


Semântica estárelacionada com o significado. Um programa pode estar sintaticamente correto mas não ter significado, pois contem erros semânticos. A frase acima, “eu vamos para o praia”, é sintaticamente incorreta porque viola as regras da conjugação de verbos e de concordância.


A fase de análise semântica de um compilador conecta as definições das variáveis com sua utilização, verifica se cada expressãopossui um tipo correto e traduz a análise sintática para uma representação mais simples visando à geração de código de máquina [Appel e Palsberg, 2002].


Dessa forma, pode-se dizer que 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 geralmente incluem a verificação detipos, a verificação do fluxo de controle e a verificação da unicidade da declaração de variáveis.


A tradução do código de alto nível para o código do processador está associada a traduzir para a linguagem-alvo a representação da árvore gramatical obtida para as diversas expressões do programa .


Numa primeira etapa, a representação intermediária será gerada em forma de “fragmentos”, ouseja, blocos de comandos referentes a cada nó pertencente à árvore de sintaxe abstrata.

Embora a análise sintática consiga verificar se uma expressão obedece às regras de formação de uma dada gramática, 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 aexpressão ou o tipo da variável deve ser verificado.

Outro objetivo da análise semântica é trabalhar nesse nível de inter-relacionamento entre partes distintas do programa. As tarefas básicas desempenhada 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.


2 Verificação de Contexto




É comum fazer a análise semântica não como uma fase totalmente separada, mas de forma simultânea à análise sintática. Usando gramáticas de atributos, isso significa que sempre que o analisador decide uma produção da gramática que foi tomada, as regras associadas são avaliadas.

Isso impõe restrições ao tipode gramáticas de atributos que podem ser avaliadas durante a análise sintática, como visto: se o analisador for ascendente, apenas gramáticas S-atribuídas são permitidas. Se for usado um analisador descendente, é possível avaliar apenas gramáticas L-atribuídas.

Para avaliar gramáticas mais gerais é preciso organizar a análise semântica como uma fase separada de análise, e construir a...
tracking img