Análise de Gramáticas e Compiladores
Análise de Gramáticas e Compiladores
A sintaxe geralmente é de�nida por uma Gram. Livre de Contexto, mas estas não são capazes de
descrever aspectos sobre a compatibilidade de tipos ou regras de escopo de identi�cadores.
Analise as informações a seguir e assinale a alternativa correta.
I) Uma Gramática de Atributos é uma gramática livre de contexto estendida com regras de cálculo
e/ou ações semânticas de modo a fornecer sensitividade ao contexto através de elementos
chamados de atributos, que estão associados aos símbolos terminais e não terminais utilizados
na regra de produção.
II) Um atributo é qualquer propriedade da estrutura da linguagem que se deseja quanti�car ou
caracterizar, como por exemplo, o tipo e o escopo das variáveis, valores de expressões, etc.
III) O valor dos atributos é estabelecido tomando como base a árvore sintática explícita do
programa e podem ser calculados tanto em tempo de compilação quanto em tempo de
execução, de acordo com a propriedade que representam.
Um dos tipos de analisadores ascendentes é o conhecido como LR(1), que constrói a árvore
sintática do programa realizando reduções através das regras da gramática geradora da
linguagem. Considerando o estado corrente do mecanismo reconhecedor (um autômato de
pilha) e apenas um símbolo da entrada é possível determinar com precisão qual a regra
apropriada e que de ser aplicada em cada momento do processo de análise do programa.
A construção desse autômato começa com uma ampliação das regras da gramática, as quais
acrescenta-se uma nova regra que sinalize o início do processo de derivação e permita
diferenciar qualquer ocorrência do símbolo inicial daquela que se con�gura como raiz da árvore
sintática.
Adicionalmente caracterizamos os diferentes momentos de derivação de uma regra através de
uma representação na forma de item. Num item dado por o marcador sinaliza os
símbolos que já foram encontrados pelo parser (os símbolos de α) e também aqueles que ainda
faltam para que a regra tenha sido completamente derivada .
Quando todos os símbolos tiverem sido encontrados, ou seja, tivermos um item na forma
é possível então realizar a redução da sequência correspondente por A.
Supondo a gramática dada a seguir:
Sabendo que já encontra-se aumentada pela inclusão da regra 0, assinale a alternativa que
corresponde ao primeiro estado (inicial) do autômato de reconhecimento deste analisador.
← OK
Resposta Selecionada:
d.
b.
Supondo a expressão dada pela árvore sintática abaixo, assinale a alternativa que corresponde
ao código intermediário gerado na forma de quádruplas.
Resposta Selecionada:
a.
A tabela de símbolos é uma estrutura de dados que tem por propósito armazenar todos os
nomes declarados pelo programador juntamente com os seus respectivos atributos. É
considerada fundamental para o processo de compilação, pois participa de várias etapas do
processo inclusive para a geração de código. Durante a análise semântica o compilador busca
nesta tabela as informações sobre os identi�cadores que participam de suas análises, como por
exemplo, para recuperar os tipos dos identi�cadores envolvidos no cálculo de uma expressão
com o propósito de veri�car a compatibilidade entre eles.
Sobre a tabela de símbolos e a análise semântica é incorreto a�rmar que:
Resposta a.
Selecionada: Questões relacionadas a declaração prévia dos identi�cadores, escopo de
utilização e a veri�cação dos argumentos informados como parâmetro
durante a chamada de uma sub-rotina são aspectos pertinentes ao
componente semântico de tempo de execução.
Resposta e.
Selecionada: Reunir os módulos objeto em um único elemento chamado de módulo
absoluto de carga.