Baixe o app para aproveitar ainda mais
Prévia do material em texto
Meus Simulados Teste seu conhecimento acumulado Disc.: COMPILADORES Aluno(a): PEDRO HENRIQUE CORREA TEIXEIRA 202104184271 Acertos: 8,0 de 10,0 29/06/2023 Acerto: 0,0 / 1,0 Um compilador está veri�cando se uma variável foi declarada somente uma vez, se foi declarada antes do seu primeiro uso, se foi declarada e nunca foi usada e se os tipos de dados em uma expressão aritmética são compatíveis. Essas veri�cações são realizadas na fase de: otimização do código análise semântica. geração do código. análise léxica. análise sintática. Respondido em 29/06/2023 10:06:22 Explicação: A resposta correta é: análise semântica. Acerto: 1,0 / 1,0 Os compiladores são responsáveis por abstrair a complexidade da programação e proporcionar uma vida mais tranquila para os desenvolvedores. Sobre a análise léxica e sintática executadas pelos compiladores, assinale a opção correta. Técnicas para análise léxica são mais complexas do que as necessárias para a análise sintática. Os analisadores léxico e sintático somente se comunicam via tabela de simbolos. Um analisador léxico gera a entrada para o analisador sintático. Um analisador léxico serve como o passo �nal de um analisador sintático. O analisador sintático processa diretamente o programa fonte a procura de erros. Respondido em 29/06/2023 10:07:21 Explicação: O analisador léxico realiza o primeiro passo da etapa de análise da compilação. Uma de suas responsabilidades é gerar a entrada para o analisador sintático. Questão1 a Questão2 a https://ead.estacio.br/alunos/inicio.asp javascript:voltar(); Acerto: 1,0 / 1,0 (INSTITUTO AOCP/2019) Qual é o elemento de um compilador que lê um �uxo de entrada (caracteres) e produz um �uxo de saída que contém palavras das quais cada uma é rotulada com sua categoria sintática, equivalente a uma classe gramatical da palavra na linguagem natural? Interface. Scanner. Parsing. Input. Reader. Respondido em 29/06/2023 10:09:21 Explicação: O scanner, também conhecido como análise léxica, é o primeiro passo no processo de compilação. O scanner lê o código fonte como um �uxo de entrada de caracteres e produz um �uxo de saída que consiste em tokens, que são palavras rotuladas com sua categoria sintática. Essas categorias sintáticas correspondem às classes gramaticais dessas palavras na linguagem natural, como palavras-chave, identi�cadores, números, símbolos, entre outros. Acerto: 1,0 / 1,0 Considerando a ciência da criação de um compilador, há vários objetos que são importantes para o processo de compilação. Esse é um componente importante para o processo e representa uma estrutura de dados que contém um registro para cada nome de variável, com campos para os atributos do nome. Assinale a alternativa que apresenta o nome desse componente. Otimizador de código. Ligador (Linker). Tabela de Símbolos. Árvore de Sintaxe. Fluxo de tokens. Respondido em 29/06/2023 10:09:59 Explicação: A tabela de símbolos é uma estrutura de dados utilizada pelo compilador para armazenar informações sobre nomes de variáveis, constantes, funções, etc. presentes no código fonte. Ela é construída durante a fase de análise sintática e mantida atualizada ao longo do processo de compilação. A tabela de símbolos é importante pois permite ao compilador realizar veri�cações de semântica, alocação de memória, geração de código objeto, entre outras tarefas. Acerto: 1,0 / 1,0 (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: Questão3 a Questão4 a Questão5 a árvore AVL �uxo (stream) de tokens gramática livre de contexto gramática dirigida a sintaxe árvore sintática Respondido em 29/06/2023 10:10:25 Explicação: A Árvore Sintática é útil na análise sintática, pois permite veri�car 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. Acerto: 1,0 / 1,0 (FCM/2018 - Adaptada) A Hierarquia de Chomsky é uma classi�caçã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: expressões regulares. autômatos �nitos determinísticos. autômatos com pilha. máquinas de Turing. autômatos �nitos não determinísticos. Respondido em 29/06/2023 10:11:14 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 �nitos. A pilha permite que o autômato mantenha o contexto e faça escolhas não-determinísticas. Acerto: 1,0 / 1,0 (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: scanner. linker. analisador léxico. otimizador de código. analisador semântico. Respondido em 29/06/2023 10:11:39 Explicação: A análise semântica é responsável por veri�car a validade da semântica do programa, incluindo a checagem de tipos de variáveis em expressões. Ela tem como objetivo identi�car erros de semântica, tais como operações inválidas com Questão6 a Questão7 a 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. Acerto: 1,0 / 1,0 (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. No processo de análise semântica da compilação, é veri�cada a consistência dos tipos de variáveis envolvidas em operações aritméticas. Os link-editores são usados para resolver as referências aos símbolos internos de um programa, produzindo um código-objeto simpli�cado. Compilação e montagem são processos semelhantes; contudo, o processo de montagem é bem mais complexo. No processo de compilação, o analisador léxico e o sintático estão preocupados com a semântica e os signi�cados dos programas como um todo. Os montadores buscam referências externas em rotinas de bibliotecas e inserem-nas no código-objeto. Respondido em 29/06/2023 10:11:49 Explicação: A análise semântica é uma das etapas do processo de compilação. Ela tem como objetivo veri�car 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 veri�ca se o código está sendo usado corretamente de acordo com as regras da linguagem. Acerto: 1,0 / 1,0 (UFAL/2016 - Adaptada) Considere as a�rmativas: I. cria o código objeto traduzindo as instruções da linguagem de montagem (assembly) para código de máquina; II. recebe como entrada um conjunto de arquivos objetos e bibliotecas, e produz como resultado um arquivo objeto de saída; III. traduz um programa descrito em uma linguagem de alto nível para um programa em linguagem simbólica ou linguagem de máquina. Nessa ordem, os itens de I a III referem-se a: Ligador, montador e interpretador. Interpretador, ligador e compilador. Compilador, ligador e montador. Montador, ligador e compilador. Ligador, montador e compilador. Respondido em 29/06/2023 10:12:08 Explicação: O montador cria o código objeto traduzindo as instruções da linguagem de montagem (assembly) para código de máquina. O ligador recebe como entrada um conjunto de arquivosobjetos e bibliotecas, e produz como resultado um Questão8 a Questão9 a arquivo objeto de saída. O compilador traduz um programa descrito em uma linguagem de alto nível para um programa em linguagem simbólica ou linguagem de máquina. Acerto: 0,0 / 1,0 (FGV/2009 - Adaptada) No contexto das estruturas de dados avançadas como listas, pilhas, �las e árvores é comum se encontrar referência à notação polonesa reversa (notação pos�xa). Nesse sentido, a expressão X* (Y+W)/(X-Y) é representada nessa notação, como: XYW*+XY/- XYW+*XY-/ XYW+*XY/- XYW+*/XY- XYW*+XY-/ Respondido em 29/06/2023 10:12:23 Explicação: Nessa notação.: 1. Temos o primeiro operando: X 2. O segundo: Y+W -> YW+ 3. Pos�xando o operador multiplicação: XYW+* 4. Segundo operando da divisão: X-Y -> XY- 5. Pos�xando o operador divisão: XY/ 5. juntando os passos anteriores temos: XYW+* XY-/ Questão10 a
Compartilhar