Exercícios resolvidos sobre compiladores: análise léxica, sintática e semântica
Resumo
Esta coleção reúne exercícios resolvidos de concursos sobre compiladores e linguagens de programação. As questões abordam a análise semântica, a tabela de símbolos, analisadores sintáticos LR(k) e LL(1), código-objeto e a diferença entre compilação e interpretação. O estudante poderá revisar as etapas de tradução de programas de alto nível para código executável.
Pontos-chave
- A checagem de tipos em expressões é função do analisador semântico.
- A tabela de símbolos começa a ser construída durante a análise léxica, quando os identificadores são reconhecidos.
- A classe LL(1) não aceita recursões diretas à esquerda, como L → La.
- O resultado da tradução de um programa-fonte para linguagem binária é o código-objeto.
- A compilação tende a oferecer menor tempo de execução, enquanto a interpretação facilita a identificação de erros.
- Os montadores (Assemblers) permitiram programar em linguagem simbólica convertida depois para linguagem de máquina.
Exercício 1
[FUNIVERSA - 2012 - PC-DF - Perito Criminal – Informática] Com relação aos softwares básicos envolvidos no processo de transformação de um programa escrito em linguagem de alto nível para um código executável ou interpretado, assinale a alternativa correta:
- A) No processo de análise semântica da compilação, é verificada a consistência dos tipos de variáveis envolvidas em operações aritméticas.
Exercício 2
[CESGRANRIO - 2010 - IBGE - Analista de Sistemas] Ao realizar testes durante a elaboração de um compilador, um analista descobriu um erro na checagem de tipos de variáveis em expressões, permitindo a multiplicação entre tipos de dados incompatíveis. Em compiladores, a checagem de tipos é uma função do:
- A) Analisador semântico.
Exercício 3
A respeito dos analisadores sintáticos ascendentes LR(k), não se pode afirmar que:
- E) Na análise LR, os erros são identificados sempre no momento mais tarde, isto é, na leitura de tokens.
Exercício 4
[Poscomp, 2003] Considere as seguintes afirmativas sobre as linguagens usadas para análise sintática: I. A classe LL(1) não aceita linguagens com produções que apresentam recursões diretas à esquerda (por exemplo, L → La), mas aceita linguagens com recursões indiretas (por exemplo, L → Ra, R → Lb).
- C) Apenas a afirmativa III é verdadeira.
Exercício 5
Pode-se afirmar sobre a tabela de símbolos:
- C) Começa a ser construída durante a análise léxica, quando os identificadores são reconhecidos.
Exercício 6
A respeito da tabela de símbolos criada durante a etapa de análise, é correto afirmar que:
- D) Tem entradas que podem não ser uniformes para classes distintas de identificadores.
Exercício 7
[FCC - 2001 - TRF 1ª Região - Analista Judiciário] O resultado do processo de análise de um programa-fonte, escrito em linguagem de alto nível, após sua conversão ou tradução em um programa escrito em linguagem binária, é:
- E) Código-objeto.
Exercício 8
[FCC - 2012 - TJ-PE - Técnico Judiciário] No contexto do módulo executável de um programa de computador, menor tempo de execução, menor consumo de memória, maior tempo na execução de loops e menor dificuldade de identificação de erros estão associados, respectivamente, aos métodos:
- E) Compilação, compilação, interpretação, interpretação.
Exercício 9
[NCE - 2005 - AGE-MT - Analista de Sistemas] A programação dos primeiros computadores digitais era realizada em linguagem de máquina. Julgue os itens a seguir:
- A) A criação dos programas montadores (Assemblers) simplificou a tarefa de programação, permitindo o uso de linguagem simbólica (Assembly) para a construção de programas convertidos posteriormente para a linguagem de máquina.
Baixar
PDF Word HTMLPerguntas frequentes
Qual etapa do compilador verifica a consistência dos tipos?
A verificação da consistência dos tipos de variáveis em operações aritméticas ocorre na análise semântica. Essa função é atribuída ao analisador semântico, conforme a questão do concurso da CESGRANRIO.
O que é código-objeto?
Código-objeto é o resultado do processo de tradução de um programa escrito em linguagem de alto nível para uma linguagem binária. Segundo a questão da FCC, esse é o produto final da análise e conversão do programa-fonte.
Teste-se
Cartões de revisão
Clique em um cartão para ver a resposta.
Teste
Perguntas geradas com IA a partir do documento: verifique as respostas com o texto.