Baixe o app para aproveitar ainda mais
Prévia do material em texto
1a Questão Acerto: 1,0 / 1,0 O que faz a análise léxica? Lê caractere por caractere do texto encontrando sequências que constituem tokens; É 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; Tratar erros de tipo no programa fonte; Verifica se a estrutura gramatical do programa está correta; Verifica se as estruturas do programa irão fazer sentido 4 durante a execução; Explicação: A resposta correta é: Lê caractere por caractere do texto encontrando sequências que constituem tokens; 2a Questão 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, V, VI, IV, I e II III, IV, V, VI, I e II II, V, VI, IV, I e III III, IV, VI, V, I e II II, VI, V, IV, I e III Explicação: A resposta correta é: II, VI, V, IV, I e III. 3a Questão 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: NumInt e 0 Id e Soma TermCom e ; Id e A OpArit e + Explicação: A resposta correta é: Id e A 4a Questão 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: Continuar a análise após realizar a recuperação do erro e anotá-lo para informação posterior. Ignorar totalmente o erro e prosseguir a análise como se nada tivesse acontecido. Tentar corrigir o erro reescrevendo a parte onde foi encontrado. Passar o erro para o analisador sintático para que este o trate. Abortar a análise e reportar imediamente o erro. Explicação: A resposta correta é: Continuar a análise após realizar a recuperação do erro e anotá-lo para informação posterior. 5a Questão 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 e III II III e IV II e IV I Explicação: Resposta correta: II 6a Questão 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}+ Oper:{Op} Atrib:{At} Fc : ; ::= Id Atrib ; ::= | Id | Int; ::= Oper; Qual das opções abaixo possui apenas erro sintático. A := 7; 10 * 5; A = b + C; A = C d - 10 Explicação: Resposta correta: A := 7; 7a Questão Acerto: 1,0 / 1,0 As árvores de sintaxe são a forma mais comum de representação intermediária gráfica. Dentre estas árvores temos as de Derivação, Sintática e Derivação Anotada. Com relação a estas árvores avalie as afirmativas abaixo: I. Decorar uma árvore é o ato de, durante a fase de parser, realizar a associação dos símbolos aos seus atributos na árvore de derivação. II. A Árvore Sintática é obtida eliminando-se os nós referentes aos símbolos não terminais na árvore de derivação. III. A árvore de Derivação possui em suas folhas apenas símbolos não terminais. Podemos afirmar que está correto o que se afirma apenas em: III I e III I e II II II e III Explicação: Resposta correta: I e II. A ideia básica é eliminar todos os nós com símbolos não terminais, mantendo apenas os nós com símbolos terminais. Na árvore de Derivação, cada nó é rotulado por um símbolo da gramática, sendo que os símbolos terminais aparecem nas folhas e os não terminais, nas raízes das subárvores. 8a Questão Acerto: 1,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: I, II e III I e III I e II II, III e IV I, II e IV Explicação: Resposta correta: I, II e IV 9a Questão Acerto: 1,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 afirmativas são falsas As duas são corretas e a segunda justifica a primeira A primeira é falsa e a segunda correta Explicação: Resposta correta: A primeira é verdadeira e a segunda falsa 10a Questão 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: 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 afirmativas são falsas A primeira é falsa e a segunda correta A primeira é verdadeira e a segunda falsa As duas são corretas e a segunda não justifica a primeira As duas são corretas e a segunda justifica a primeira Explicação: Respsota correta: A primeira é verdadeira e a segunda falsa
Compartilhar