Compiladores e Análise de Linguagens — Questões

Classificado em Computação

Escrito em em português com um tamanho de 17,04 KB

Introdução

Introdução

Anotações e Exercícios

Exercício 1

[ENADE 2008] Qual tipo de software tradutor deve ser utilizado para programas em

A) Compiladores.

Exercício 2

As linguagens de programação podem ser classificadas

A) Alto, baixo, alto, alto, baixo e baixo.

Exercício 3

A respeito do processo em que se define uma linguagem de programação, é

E) As linguagens irregulares são reconhecidas por autômatos finitos.

Exercício 4

A respeito da relação existente entre linguagens, reconhecedores, compiladores e outras

E) Os pré-processadores são uma classe de interpretadores.

Exercício 5

Considerando-se os aspectos teóricos e práticos relacionados com as tarefas realizadas por

B) As linguagens formais e autômatos constituem uma

Exercício 6

Tradutores de linguagem são programas que traduzem

A) Compiladores são projetados para um tipo específico de hardware e de sistema operacional.

Exercício 7

Um analista está responsável pelo projeto de um compilador para uma nova linguagem que sua empresa está desenvolvendo

D) Ligação dos módulos.

Exercício 8

[ESAF - 2010 - CVM - Analista de TIC - Infraestrutura - prova 2] Assinale a opção

B) O compilador é responsável por gerar um programa em linguagem de máquina não executável, a partir de um programa escrito em uma linguagem de alto nível.

Exercício 9

[ESAF - 2001 - SEFAZ-PI - Auditor – Superior] Marque a opção correta.

A) O compilador transforma o código-fonte em código-objeto.

Exercício 10

[ESAF - 2002 - STN - Analista de Finanças e Controle – Superior] Assinale a opção correta.

A) Um programa em linguagem de alto nível é armazenado em um arquivo do tipo texto.

Exercício 11

[ESAF - 2002 - Banco Central - Procurador – Superior] Um programa em linguagem de máquina é um programa:

E) Sob a forma de instrução de máquina, mesmo que tenha sido escrito em linguagem de alto nível.

Exercício 12

[ESAF - 2002 - PM - FORTALEZA - Procurador Municipal - Superior] (modificada) Um tradutor é um programa

D) Um compilador traduz todo o programa-fonte para instruções em linguagem de máquina, antes que o programa seja executado.

Exercício 13

[ESAF - 2003 - SRF - Procurador da Fazenda - Superior] (modificada) Qual das alternativas abaixo é CORRETA com relação

B) Programas compilados para código nativo sempre serão mais rápidos que programas interpretados.

Exercício 14

[FEC - 2002 - CAERD - Técnico de Nível Superior - Direito - Superior] No que diz respeito a interpretadores e compiladores, pode-se afirmar que:

E) A interpretação executa a instrução sem gerar um programa-objeto.

Exercício 15

[UFPA - 2001 - TRT 8ª - Analista Judiciário – Superior] (modificada) Em programação, quando a tradução de um código-fonte

D) Interpretação.

Exercício 16

[TRF 5ª - 1999 - TRF 5ª - Juiz Substituto - Superior] Acerca dos conceitos de montadores, compiladores e interpretadores, assinale a alternativa incorreta.

A) Programas-fontes podem ser particionados em vários módulos e armazenados em arquivos separados.

Exercício 17

[Poscomp, 2005] No processo de geração de um código executável (em linguagem de máquina)

A) B C H G A D F E

Análise Léxica

Exercício 18

Uma forma bastante comum para a troca de informações entre diferentes plataformas é o intercâmbio de arquivos textuais

E) I, II e III.

Exercício 19

Dentre os diferentes tipos de mensagens de erro que podem ser reportadas por um compilador, quais dentre as apresentadas abaixo são de natureza léxica?

B) Esperado fim de comentário.

Exercício 20

Os diferentes lexemas presentes em uma linguagem de programação podem ser

C) Tanto as palavras reservadas quanto os identificadores apresentam o mesmo padrão, sendo distinguidos apenas durante a classificação do token, após concluída a sua composição. A classificação de cada token é obtida de acordo com o estado final corrente.

Exercício 21

Supondo o programa C dado abaixo:

1

int main (void)

C) I e II, apenas.

Exercício 22

[COPEVE-UFAL - 2011 - UFAL - Analista de Tecnologia da Informação] Em um compilador, o analisador léxico:

C) Cria uma sequência de símbolos.

Exercício 23

[CESGRANRIO - 2010 - Petrobrás - Analista de Sistemas Júnior - Infraestrutura] No contexto dos compiladores, os scanners são responsáveis por executar a:

A) Análise léxica.

Exercício 24

[CESPE - 2010 - TRE-MT - Analista Judiciário - Tecnologia da Informação] Durante a compilação de um código-fonte, a fase do compilador que é responsável por produzir uma sequência de tokens é a:

A) Análise léxica.

Exercício 25

A respeito da estreita relação existente entre os formalismos teóricos de computação e as técnicas empregadas na construção de compiladores, analise cada uma das alternativas a seguir e assinale a que for incorreta.

C) O fechamento recursivo e transitivo de um alfabeto qualquer é definido como um conjunto finito composto por todas as cadeias que podem ser construídas sobre o alfabeto dado.

Exercício 26

O projeto de um compilador apoia-se na teoria e formalismos oriundos da teoria da computação. Tendo em mente as relações entre tais elementos e as tarefas de compilação, assinale a afirmativa incorreta.

D) A classe das linguagens irregulares é reconhecida por autômatos finitos. Desta forma, é possível projetar um analisador léxico para qualquer linguagem desta categoria.

Exercício 27

Expressões regulares são comumente utilizadas para descrever os lexemas de uma

D) II e III.

E) I, II e III.

Exercício 28

Supondo o programa C dado abaixo:

1

int main (void)

2

{

3

int x,y,z;

4

x=1;y=2;z=3;

5

z+++=++x+y++;

6

}

E) I e III, apenas.

Exercício 29

A maioria das linguagens de programação define as mesmas regras para a formação de identificadores:

  • Podem ser compostos por letras, números e _ (sublinhado ou underline);
  • Não podem começar com um dígito;

E) I, II e III.

Análise Sintática

Exercício 30

[FCC - 2001 - TRF 1ª Região - Analista Judiciário (judiciária) – Superior] No processo de compilação, as partes que compõem a análise do código-fonte são:

B) Análise léxica, análise sintática e análise semântica.

Exercício 31

[FCC - 2012 - TRE-SP - Analista Judiciário - Análise de Sistemas] Analise o texto a seguir:

Na compilação, a análise consiste em três fases

A) Sintática.

Exercício 32

Analise cada uma das afirmações dadas a seguir e indique a que julgar incorreta.

A) Os parsers top-down não apresentam problemas em relação a gramáticas recursivas à esquerda.

Exercício 33

Analise cada uma das afirmações dadas a seguir e indique a que julgar incorreta.

B) Yacc é um exemplo de gerador de analisador sintático a partir de expressões regulares.

Exercício 34

Suponha a seguinte gramática, em que os símbolos terminais são dados entre aspas:

A) Não é ambígua.

Exercício 35

[FCC - 2012 - METRÔ-SP - Analista Desenvolvimento Gestão Júnior - Área Ciências da

D) Árvore.

Exercício 36

[Poscomp, 2002] Qual das afirmações a seguir, relativas à análise sintática, está INCORRETA?

A) As gramáticas LL podem descrever mais linguagens do que as gramáticas LR.

Exercício 37

[Poscomp, 2003] Um compilador detecta:

C) Erros de sintaxe do programa.

Exercício 38

[Poscomp, 2007] Analise as seguintes afirmativas sobre os parsers descendentes recursivos.

E) I, II e III.

Exercício 39

[Poscomp, 2007] Considere as seguintes afirmativas sobre a fase de análise (Front-End) de um compilador.

E) II e III, apenas.

Exercício 40

[Poscomp, 2004] Qual das seguintes expressões pós-fixas é equivalente à expressão infixa A + (B / C) * ((D – E) / F)?

C) ABC/DE-F/*+

D) ABC/D-EF*/+

Exercício 41

Sobre as técnicas para recuperação de erros sintáticos, analise as assertivas a seguir:

E) I, II e III.

Análise Sintática I – Análise Descendente

Exercício 42

A notação BNF (Backus-Naur Form) é bastante utilizada para representar gramáticas

B) A construção de um parser LL(1) não seria possível neste caso, pois trata-se de uma gramática ambígua.

Exercício 43

Dada a gramática abaixo, em que E, T, F, E’ e T’ são símbolos não terminais e os +, *, (

B) A regra 1 deverá ser aplicada quando o símbolo não terminal E for o derivado e na entrada houver um elemento que pertença ao conjunto First(E).

Exercício 46

Analise cada alternativa apresentada e assinale a incorreta:

D) Analisadores sintáticos que empregam os métodos universais são usualmente muito eficientes para compiladores de produção, visto que podem tratar qualquer tipo de gramática livre de contexto.

Exercício 47

[Poscomp, 2003] Dada a seguinte linguagem, em que ε representa a string vazia e $ representa um marcador de fim de entrada:

D) O conjunto FOLLOW(B) = {c, $}.

Exercício 48

[Poscomp, 2004] Dada a seguinte linguagem, em que ε representa a sentença vazia:

B) {a, b, f, c, g}

Exercício 49

[Poscomp, 2008] Considere as seguintes afirmativas sobre o FRONT-END de um compilador.

E) I e III, apenas.

Exercício 50

[Poscomp, 2009] Considere uma produção pertencente a uma gramática G dada por:

L → L a S | S

B)

L → S R

R → a S R | ε

Análise Sintática II - Ascendente

Exercício 1

Julgue as afirmativas a seguir e assinale a alternativa incorreta:

D) A descoberta de erros pode ocorrer em dois modos da análise:

I. Tempo mais cedo – em operações sobre a pilha, quando, numa redução, não se encontra na pilha o elemento esperado.
II. Tempo mais tarde – na leitura da sentença da entrada, quando o token lido não é o esperado, acontece nos reconhecedores LL, LR e de precedência.

Exercício 2

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 3

[Poscomp, 2003] Considere as seguintes afirmativas sobre as linguagens usadas para análise sintática:

C) Apenas a afirmativa III é verdadeira.

Análise Semântica

Exercício 1

[FUNIVERSA - 2012 - PC-DF - Perito Criminal – Informática] Com relação

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 - Desenvolvimento de Aplicações]

A) Analisador semântico.

Exercício 3

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 4

A respeito da chamada 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.

Geração de Código

Exercício 1

[FCC - 2001 - TRF 1ª Região - Analista Judiciário (judiciária) - Superior] O resultado do processo de análise de um programa-fonte, escrito em linguagem de alto nível, após

E) Código-objeto.

Exercício 2

[FCC - 2012 - TJ-PE - Técnico Judiciário - Suporte Técnico] No contexto do módulo executável de um programa de computador, menor tempo de execução, menor

E) Compilação, compilação, interpretação, interpretação.

Assemblers, Linkeditors e Carregadores

Exercício 1

[NCE - 2005 - AGE-MT - Analista de Sistemas - Superior] A programação dos primeiros computadores

A) A criação dos chamados programas montadores, ou Assemblers, simplificou a tarefa de programação de uma máquina, permitindo que se utilize uma linguagem simbólica, ou Assembly, para a construção de programas a serem posteriormente convertidos para a linguagem de máquina pelo montador. Em função de sua ainda estreita relação com a arquitetura da máquina, as linguagens Assembly são também específicas para cada tipo de CPU.

Exercício 2

Parte fundamental no funcionamento dos equipamentos, os programas de

C) I e II, apenas.

Exercício 3

A construção de programas de computador possui características diferentes em função

B) II, apenas.

Exercício 4

[FCC - 2012 - METRÔ-SP - Analista Desenvolvimento Gestão Júnior - Área Ciências da

C) O programador de linguagem de montagem tem acesso a aspectos e instruções disponíveis na arquitetura-alvo não disponíveis em linguagens de alto nível.

Exercício 5

[FCC - 2012 - METRÔ-SP - Analista Desenvolvimento Gestão Júnior - Área Ciências da

D) Quando uma DLL é criada, é obrigatório especificar uma função de ponto de entrada (DllMain).

Exercício 1

[FGV - 2010 - CODESP-SP - Analista de Sistemas - Tipo 1] A figura abaixo mostra as cinco fases para execução de programa Java.

A) Bytecode.

Exercício 2

[ESAF - 2010 - CVM - Analista de Sistemas - prova 2] O interpretador:

D) É considerado um tradutor que não gera módulo-objeto.

Exercício 3

[ESAF - 2010 - SUSEP - Analista Técnico - Prova 2 - Tecnologia da Informação] Em relação a compiladores, ligadores (linkeditors) e interpretadores, é correto afirmar que:

D) O linkeditor é o utilitário responsável por gerar, a partir de um ou mais módulos-objeto, um único programa executável.

Exercício 4

[CESPE - 2007 - TRE - AP - Analista Judiciário - Psicologia - Superior] A combinação de módulos montados separadamente em um único módulo de carregamento é executada:

A) Por ligadores.

Exercício 5

[CESPE - 2007 - PGE - PA - Administrador – Médio] Para combinar módulos montados ou compilados separadamente em um único modo de carregamento, o ligador precisa,

B) Resolver referências de endereços externos aos módulos que estão sendo ligados.

Exercício 6

[ESAF - 2000 - SRF - Técnico da Receita Federal - Superior] O utilitário responsável por gerar um programa

E) Montador.

Exercício 7

[FEC - 2003 - TRF 2ª - Analista Judiciário (ex. mandados) - Superior] O processo de traduzir um programa em linguagem de montagem para um programa em linguagem

C) Existe um mapeamento "um para um" de comandos em linguagem de montagem para seus correspondentes em linguagem de máquina.

Exercício 8

[FCC - 2003 - TRT 21ª - Analista Judiciário - Judiciária – Superior] Um programa completo,

A) De carga.

Exercício 9

[FCC - 2004 - TRT 17ª - Analista Judiciário - Oficial de Justiça – Superior] (modificada) Considerando-se os conceitos e funções dos softwares básicos, assinale a opção

D) Os interpretadores não analisam sintaticamente os códigos-fonte, uma vez que os traduzem para um formato interno. Por isso, um interpretador

Exercício 10

[Prova: ESAF - SUSEP/2010 - Analista Técnico da SUSEP] Em relação a compiladores, ligadores (linkeditors) e interpretadores, é correto afirmar que:

D) O linkeditor é o utilitário responsável por gerar, a partir de um ou mais módulos-objeto, um único programa executável.

Entradas relacionadas: