Baixe o app para aproveitar ainda mais
Prévia do material em texto
Disc.: COMPILADORES Acertos: 8,0 de 10,0 03/09/2022 Acerto: 1,0 / 1,0 Considere os seguintes passos da compilação: I. Otimização II. Análise Léxica III. Geração de Código IV. Geração de Código Intermediário V. Análise Semântica VI. Análise Sintática A ordem correta dos passos durante a compilação é: III, IV, V, VI, I e II III, IV, VI, V, I e II II, V, VI, IV, I e III III, V, VI, IV, I e II II, VI, V, IV, I e III Respondido em 03/09/2022 14:22:37 Explicação: A resposta correta é: II, VI, V, IV, I e III. Acerto: 1,0 / 1,0 Um compilador está verificando 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 verificações são realizadas na fase de: otimização do código análise léxica. geração do código. análise semântica. Questão1a Questão2a https://simulado.estacio.br/alunos/inicio.asp javascript:voltar(); análise sintática. Respondido em 03/09/2022 14:24:48 Explicação: A resposta correta é: análise semântica. Acerto: 1,0 / 1,0 Considere a seguinte especificação de tokens com sua descrição informal: SE fosse submetida ao Analisador a seguinte expressão: Soma = 0; Soma = A + B; O sétimo token reconhecido e seu lexema seriam respectivamente: OpArit e + NumInt e 0 Id e A TermCom e ; Id e Soma Respondido em 03/09/2022 14:26:01 Explicação: A resposta correta é: Id e A Acerto: 1,0 / 1,0 Durante o processo de Análise o scanner lê os caracteres um por um e tenta associa-los ao padrão correspondente a algum token. Neste processo ele eventualmente pode encontrar algum padrão que não corresponda ao tokens. Nesse caso, ele deve: Passar o erro para o analisador sintático para que este o trate. Tentar corrigir o erro reescrevendo a parte onde foi encontrado. Ignorar totalmente o erro e prosseguir a análise como se nada tivesse acontecido. Questão3a Questão4a Continuar a análise após realizar a recuperação do erro e anotá-lo para informação posterior. Abortar a análise e reportar imediamente o erro. Respondido em 03/09/2022 14:27:12 Explicação: A resposta correta é: Continuar a análise após realizar a recuperação do erro e anotá-lo para informação posterior. Acerto: 1,0 / 1,0 Enade 2011 Considere a gramática a seguir, em que S, A e B são símbolos não terminais, 0 e 1 são terminais e Ɛ é a cadeia vazia. A respeito dessa gramática, analise as afirmações a seguir. I. Nas cadeias geradas por essa gramática, o último símbolo é 1. II. O número de zeros consecutivos nas cadeias geradas pela gramática é, no máximo, dois. III. O número de uns em cada cadeia gerada pela gramática é maior que o número de zeros. IV. Nas cadeias geradas por essa gramática, todos os uns estão à esquerda de todos os zeros. É correto apenas o que se afirma em I II II e IV I e III III e IV Respondido em 03/09/2022 14:29:00 Explicação: Resposta correta: II Acerto: 1,0 / 1,0 Ao realizarmos a análise sintática, podem ser detectados erros que não foram vistos durante a análise léxica. Considerando a seguinte gramática L: [A-Z] D: [0-9] Op:["+""-"] At:["="] Id:{L} ({L}|{D})* Int:{D}+ Questão5a Questão6a Oper:{Op} Atrib:{At} Fc : ; ::= Id Atrib ; ::= | Id | Int; ::= Oper; Qual das opções abaixo possui apenas erro sintático. 10 * 5; A := 7; A = b + C; d - 10 A = C Respondido em 03/09/2022 14:30:13 Explicação: Resposta correta: A := 7; Acerto: 0,0 / 1,0 Por melhor que seja a fórmula de hashing adotada na implementação de uma tabela de símbolos usando uma tabela hash, as colisões sempre irão ocorrer. Quando estas ocorrem se torna necessário fazer o seu tratamento. Este tratamento pode ser realizado de várias formas e uma preocupação constante deve ser o de minimizar o tempo de resposta e poupar o espaço de armazenamento. Quanto a estes aspectos analise as afirmativas abaixo: I. no hash aberto os símbolos que colidem são encadeados em uma lista apontada pelo slot que a fórmula calculou II. no endereçamento aberto é realizado um rehashing para determinar o novo slot para o símbolo que causou a colisão III. o hash de balde utiliza duas fórmulas de hashing para tratar a colisão IV. Para minimizar o espaço de armazenamento pode ser utilizada uma pilha para armazenar os símbolos que colidiram no hash aberto É correto o que se afirma apenas em: II, III e IV I, II e IV I e III I e II I, II e III Respondido em 03/09/2022 14:32:13 Explicação: Resposta correta: I, II e IV Acerto: 1,0 / 1,0 Apesar de ser considerada o terceiro passo da etapa de análise, a Análise Semântica é normalmente realizada de forma Questão7a Questão8a concomitante com a Análise Sintática, sendo que o parser vai executar as ações semânticas estabelecidas para as produções da gramática. A respeito da situação descrita podemos afirmar que: I. Quando um esquema de tradução não produz efeitos colaterais ele é chamado de Gramática de Atributos. II. O Esquema de Tradução corresponde a uma restrição aplicada a Gramática Livre de Contexto (GLC) que define a linguagem de programação. III. A Tradução Dirigida por Sintaxe é a técnica que permite realizar a Análise Semântica de forma concomitante com a análise sintática. É correto o que se afirma apenas em: I II e III III I e II I e III Respondido em 03/09/2022 14:34:42 Explicação: Resposta correta: II e III Acerto: 0,0 / 1,0 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: As duas são corretas e a segunda não justifica a primeira A primeira é verdadeira e a segunda falsa As duas são corretas e a segunda justifica a primeira A primeira é falsa e a segunda correta As duas afirmativas são falsas Respondido em 03/09/2022 14:35:22 Explicação: Resposta correta: A primeira é verdadeira e a segunda falsa Acerto: 1,0 / 1,0 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: Questão9a Questão10a 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: A primeira é verdadeira e a segunda falsa As duas são corretas e a segunda justifica a primeira As duas afirmativas são falsas A primeira é falsa e a segunda correta As duas são corretas e a segunda não justifica a primeira Respondido em 03/09/2022 14:35:58 Explicação: Respsota correta: A primeira é verdadeira e a segunda falsa javascript:abre_colabore('38403','292242094','5611103151');
Compartilhar