Buscar

TESTE DE CONHECIMENTO - COMPILADORES

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Teste de
Conhecimento
 avalie sua aprendizagem
(PC-DF/2012) 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.
(IBGE/2010) Ao realizar testes durante a elaboração de um compilador, um analista descobriu que havia, no
compilador, um erro na checagem de tipos de variáveis em expressões, permitindo, por exemplo, a multiplicação
entre tipos de dados que não poderiam ocorrer. Em compiladores, a checagem de tipos de variáveis em expressões é
uma função do:
COMPILADORES
Lupa 
 
CCT0838_202008191076_TEMAS
Aluno: YURI CID DA SILVA LIMA Matr.: 202008191076
Disc.: COMPILADORES 2023.1 EAD (G) / EX
Prezado (a) Aluno(a),
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para
sua avaliação. O mesmo será composto de questões de múltipla escolha.
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se
familiarizar com este modelo de questões que será usado na sua AV e AVS.
ANÁLISE SEMÂNTICA
 
1.
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.
Os montadores buscam referências externas em rotinas de bibliotecas e inserem-nas no código-objeto.
Os link-editores são usados para resolver as referências aos símbolos internos de um programa, produzindo um
código-objeto simplificado.
No processo de compilação, o analisador léxico e o sintático estão preocupados com a semântica e os
significados dos programas como um todo.
Compilação e montagem são processos semelhantes; contudo, o processo de montagem é bem mais complexo.
Data Resp.: 24/02/2023 07:18:14
Explicação:
A análise semântica é uma das etapas do processo de compilação. Ela tem como objetivo verificar a correção
semântica do código-fonte, incluindo a consistência dos tipos de variáveis envolvidos em operações aritméticas.
Esse processo verifica se o código está sendo usado corretamente de acordo com as regras da linguagem.
 
2.
analisador léxico.
otimizador de código.
linker.
scanner.
analisador semântico.
Data Resp.: 24/02/2023 07:18:21
javascript:voltar();
javascript:voltar();
javascript:diminui();
javascript:aumenta();
(INSTITUTO AOCP/2019) A estrutura típica de um compilador possui 3 elementos. Assinale a alternativa que
apresenta corretamente esses elementos.
(CESPE/CEBRASPE/2022 - Adaptada)
Autômatos são estruturas matemáticas que representam uma máquina de estados finitos. Eles são usados para
modelar processos computacionais, como a validação de entradas de linguagens formais (por exemplo, verificar se
uma string é uma sentença válida em uma dada linguagem), e para implementar algoritmos em processamento de
linguagem natural e inteligência artificial. Nesse sentido, o autômato finito determinístico.
(CESGRANRIO/2012) Um compilador é um programa que executa vários passos, dentre os quais, o de analisar uma
sequência de entrada para determinar sua estrutura gramatical segundo uma determinada gramática formal.
O resultado típico dessa análise é uma estrutura conhecida como:
Explicação:
A análise semântica é responsável por verificar a validade da semântica do programa, incluindo a checagem de
tipos de variáveis em expressões. Ela tem como objetivo identificar erros de semântica, tais como operações
inválidas com tipos de variáveis diferentes, declarações duplicadas de variáveis, etc. Por isso, é o analisador
semântico que está responsável por detectar o erro mencionado na questão.
ANÁLISE LÉXICA
 
3.
Front end, interpretador, base de dados.
Front end, interpretador, back end.
Front end, compilador, base de dados.
Front end, analisador, back end.
Front end, otimizador, back end.
Data Resp.: 24/02/2023 07:18:25
Explicação:
A Compilação abrange duas grandes etapas: A Análise (front-end) e a Síntese (back-end). A etapa de Análise
implica em três passos internos: Análise Léxica, Análise Sintática e Análise Semântica. Já a etapa de Síntese é
composta pela Geração de Código Intermediário, Otimização e Geração de Código de Montagem.
 
4.
pode, para cada entrada, transitar a partir do seu estado atual em um e somente um estado.
permite zero, uma ou n transições para os estados de entrada.
corresponde à função de transição que recebe um estado ou um símbolo de entrada que sempre retorna um
conjunto de estados como resultado.
consegue estar em vários estados ao mesmo tempo.
tem a capacidade de adivinhar algo sobre sua entrada ao testar valores.
Data Resp.: 24/02/2023 07:18:28
Explicação:
Um Autômato Finito Determinístico é um autômato no qual para cada estado e para cada entrada só há zero ou
uma transição possível. Existem vários tipos de autômatos, como autômatos finitos determinísticos (DFA),
autômatos finitos não-determinísticos (NFA), autômatos de Pilha, autômatos de Estados Múltiplos (Mealy) e
autômatos de Estados Moore. Cada tipo de autômato é adequado para uma tarefa específica e é projetado para
atender a determinadas restrições computacionais e de tempo de execução.
ANÁLISE SINTÁTICA
 
5.
(FCM/2018 - Adaptada) A Hierarquia de Chomsky é uma classificação das gramáticas formais, proposta pelo linguista
Noam Chomsky, que divide as gramáticas em 4 classes. Nesse sentido, Linguagens livres de contexto são
exatamente as linguagens que podem ser reconhecidas por:
O que faz a análise léxica? 
O tradutor que gera um código objeto a partir de uma linguagem de baixo nível é o
:
gramática dirigida a sintaxe
árvore AVL
fluxo (stream) de tokens
gramática livre de contexto
árvore sintática
Data Resp.: 24/02/2023 07:18:31
Explicação:
A Árvore Sintática é útil na análise sintática, pois permite verificar a correta ordenação dos tokens e a estrutura da
sentença de forma visual e fácil de entender. Além disso, a Árvore Sintática pode ser usada como base para a
geração de código em outras etapas do processo de compilação.
 
6.
autômatos finitos determinísticos.
expressões regulares.
autômatos com pilha.
autômatos finitos não determinísticos.
máquinas de Turing.
Data Resp.: 24/02/2023 07:18:35
Explicação:
Autômatos com pilha (Pushdown Automata) são usados para reconhecer a linguagem livre de contexto, que é uma
classe mais ampla de linguagens do que as reconhecidas pelos autômatos finitos. A pilha permite que o autômato
mantenha o contexto e faça escolhas não-determinísticas.
O COMPILADOR
 
7.
Tratar erros de tipo no programa fonte; 
Verifica se a estrutura gramatical do programa está correta; 
É um sistema que aceita como entrada um programa escrito em uma
linguagem de programação e produz como resultado um programa equivalente
em outra linguagem; 
Lê caractere por caractere do texto encontrando sequências que constituem
tokens; 
Verifica se as estruturas do programa irão fazer sentido 4 durante a execução; 
Data Resp.: 24/02/2023 07:18:38
Explicação:
A resposta correta é: Lê caractere por caractere do texto encontrando sequências
que constituem tokens; 
 
8.
Um programa pode ter parte de sua funcionalidade implementada por um procedimento. Procedimentos são
normalmente compilados a parte e depois ligados ao código principal. Quando um procedimento é chamado é criado
para ele um Registro de Ativação que possui informações de contexto, suas variáveis locais, parâmetros etc.
Com base nisso se um procedimento G chama um procedimento D que chama um procedimento E podemos afirmar
que
 O registro de ativação de E estará no topo da pilha
Porque
Os registros de ativação dos diversos procedimento são empilhados na ordem inversa do retorno
Com base nas afirmativas acima podemos concluir que:
Para determinar qual código é mais otimizado podemos utilizar uma métrica que calcule o custo de cada opção e
determinar qual é o mais otimizado, ou seja qual tem o menor custo.
Considere um processador com o seguinte conjunto de instruções:
Carregador 
InterpretadorLigador 
Compilador 
Montador 
Data Resp.: 24/02/2023 07:18:42
Explicação:
A resposta correta é: Montador.
GERAÇÃO DE CÓDIGO
 
9.
As duas são corretas e a segunda não justifica a primeira
As duas afirmativas são falsas
As duas são corretas e a segunda justifica a primeira
A primeira é verdadeira e a segunda falsa
A primeira é falsa e a segunda correta
Data Resp.: 24/02/2023 07:18:46
Explicação:
Resposta correta: A primeira é verdadeira e a segunda falsa
 
10.
Sabendo que a métrica utilizada gera um custo de 1 para instruções que não acessam a memória RAM e um custo de
2 para as que não acessam analise os trechos de código abaixo
Como base na análise podemos afirmar que o código 2 é melhor que o código 1
Porque
Seu custo é 12 enquanto o do código 1 é 12
Com base nas afirmativas acima podemos concluir que:
 
As duas são corretas e a segunda não justifica a primeira
As duas são corretas e a segunda justifica a primeira
A primeira é falsa e a segunda correta
A primeira é verdadeira e a segunda falsa
As duas afirmativas são falsas
Data Resp.: 24/02/2023 07:18:50
Explicação:
Respsota correta: A primeira é verdadeira e a segunda falsa
 Não Respondida Não Gravada Gravada

Continue navegando