·
Engenharia da Computação ·
Programação
Send your question to AI and receive an answer instantly
Recommended for you
Preview text
21/11/2022 09:31 Estácio: Alunos Meus Simulados Teste seu conhecimento acumulado Disc.: COMPILADORES Aluno(a): RAFAEL CRUZ FERREIRA 201901278131 21/11/2022 Acertos: 0,0 de 10,0 1ª Questão Acerto: 0,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: ☐ análise semântica. ☑ análise sintática. ☐ análise léxica. ☐ otimização do código ☐ geração do código. Explicação: A resposta correta é: análise semântica. 2ª Questão Acerto: 0,0 / 1,0 O tradutor que gera um código objeto a partir de uma linguagem de baixo nível é o: ☑ Montador ☐ Carregador ☐ Interpretador ☒ Compilador ☐ Ligador Explicação: A resposta correta é: Montador. https://simulado.estacio.br/aluno/?user_cod=&matr_integracao=201901278131 1/7 21/11/2022 09:31 Estácio: Alunos 3ª Questão Acerto: 0,0 / 1,0 Considere a seguinte especificação de tokens com sua descrição informal: TOKEN LEXEMA EXEMPLO DESCRIÇÃO INFORMAL DO PADRÃO Se Se Comando Se Senao Senao Clausula senao do comando Se OpRela <,>,=,<=,>= Operadores Relacionais ou < ou > ou <= ou >= OpArit +,-,/,* Operadores Aritméticos ou + ou - ou / Id Área, lado Pelo menos uma letra seguida por outras Atrib = atribuição NumInt 10 21 35 Número Inteiro TermCom ; Terminador de Comando 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 ☐ TermCom e ; ☐ OpArit e + ☑ Id e Soma ☐ Id e A Explicação: A resposta correta é: Id e A 4ª Questão Acerto: 0,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. ☑ 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 reservando a parte onde foi encontrado. ☐ Abortar a análise e reportar imediatamente 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. https://simulado.estacio.br/aluno/?user_cod=&matr_integracao=201901278131 2/7 21/11/2022 09:31 Estácio: Alunos 5ª Questão Acerto: 0,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. S → 15|01A|ε A → 1S|0|B|ε B → 15|B|ε 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 ☑ II ☐ I ☐ III e IV ☐ I e III Respota correta: II 6ª Questão Acerto: 0,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 : ; https://simulado.estacio.br/aluno/?user_cod=&matr_integracao=201901278131 3/7 21/11/2022 09:31 Estácio: Alunos ::= Id Atrib ; ::= Id | Int; ::= Oper; Qual das opções abaixo possui apenas erro sintático. ☐ d - 10 ☐ A = b + C; ☐ A = C; ☐ A := 7; ☐ 10 * 5; Explicação: Resposta correta: A := 7; Questão Acertei: 0,0 / 1,0 Verificação de tipos é uma atividade extremamente importante na análise semântica já que determinados erros somente são percebidos nesta atividade, pois passam despercebidos nas Análises Léxica e Sintática. Considere o seguinte trecho de programa : inteiro a,b,c; { ... c:= a + b; ... } Quanto a expressão c:= a + b; podemos afirmar que: O seu tipo será Inteiro porque todos os operandos são do tipo inteiro Com base nas afirmativas podemos concluir que: ☐ As duas afirmativas são falsas ☐ As duas são corretas e a segunda justifica a primeira ☐ A primeira é verdadeira e a segunda falsa ☐ As duas são corretas e a segunda não justifica a primeira ☒ A primeira é falsa e a segunda correta Explicação: Resposta correta: As duas são corretas e a segunda justifica a primeira https://simulado.estacio.br/alunos/?user_cod=&matr_integracao=201901278131 21/11/2022 09:31 Estácio: Alunos Questão Acertei: 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. no hash de base 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 II ☐ II, IV ☒ I e III ☒ I, II e IV Explicação: Resposta correta: I, I I e IV Questão Acertei: 0,0 / 1,0 Um programa pode ter parte de sua funcionalidade implementada por um procedimento. Procedimentos são normalmente compilados à 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 ☐ 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 justifica a primeira Explicação: Resposta correta: A primeira é verdadeira e a segunda falsa https://simulado.estacio.br/alunos/?user_cod=&matr_integracao=201901278131 21/11/2022 09:31 Estácio: Alunos Questão Acertei: 0,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 código é mais otimizado, ou seja qual tem o menor custo. Considere um processador com o seguinte conjunto de instruções: Comando Operação Significado MOVE r r r = r Mover o conteúdo do registrador r para o registrador r MOVE x r r = x Mover o conteúdo do registrador para a posição de memória de x MOVE r x x = r Mover da posição de memória de x para o registrador r ADD r r r = r + r realize a soma do valor do registrador r com o valor do ADD r x r = r + x Leia x na memória realize a soma com o valor do registrador e deixe o resultado no registrador r SUB r r r = r - r realize a subtração do valor do registrador e deixe o resultado em r SUB r x r = r - x Leia x na memória e subtraia do valor do registrador e deixe o resultado no até registrador r MULT r r r = r * r multiplique o valor de registrador e o resultado no registrador r MULT r x r = r * x Leia x na memória e o multiplique pelo valor do registrador r, deixe o resultado no registrador r 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 Código 1 MOVE r0 a ADD r0 b MOVE r0 r1 MOVE r1 0 SUB r1 c MULT r1 r MOVE x r0 Código 2 MOVE r0 a ADD r0 b MOVE r0 r1 MOVE r1 c SUB r1 d MULT r0 r1 MOVE x r0 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 ⛝ A primeira é falsa e a segunda correta ☐ A primeira é verdadeira e a segunda falsa ☐ As duas afirmativas são falsas ☐ As duas são corretas e a segunda justifica a primeira Explicação: Resposta correta: A primeira é verdadeira e a segunda falsa https://simulado.estacio.br/alunos/?user_cod=&matr_integracao=201901278131 21/11/2022 09:31 Estácio: Alunos Resposta correta: A primeira é verdadeira e a segunda falsa Sugira! Sinalize! Construa! Antes de finalizar, clique aqui para dar a sua opinião sobre as questões deste simulado. https://simulado.estacio.br/alunos/?user_cod=&matr_integracao=201901278131 7/7
Send your question to AI and receive an answer instantly
Recommended for you
Preview text
21/11/2022 09:31 Estácio: Alunos Meus Simulados Teste seu conhecimento acumulado Disc.: COMPILADORES Aluno(a): RAFAEL CRUZ FERREIRA 201901278131 21/11/2022 Acertos: 0,0 de 10,0 1ª Questão Acerto: 0,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: ☐ análise semântica. ☑ análise sintática. ☐ análise léxica. ☐ otimização do código ☐ geração do código. Explicação: A resposta correta é: análise semântica. 2ª Questão Acerto: 0,0 / 1,0 O tradutor que gera um código objeto a partir de uma linguagem de baixo nível é o: ☑ Montador ☐ Carregador ☐ Interpretador ☒ Compilador ☐ Ligador Explicação: A resposta correta é: Montador. https://simulado.estacio.br/aluno/?user_cod=&matr_integracao=201901278131 1/7 21/11/2022 09:31 Estácio: Alunos 3ª Questão Acerto: 0,0 / 1,0 Considere a seguinte especificação de tokens com sua descrição informal: TOKEN LEXEMA EXEMPLO DESCRIÇÃO INFORMAL DO PADRÃO Se Se Comando Se Senao Senao Clausula senao do comando Se OpRela <,>,=,<=,>= Operadores Relacionais ou < ou > ou <= ou >= OpArit +,-,/,* Operadores Aritméticos ou + ou - ou / Id Área, lado Pelo menos uma letra seguida por outras Atrib = atribuição NumInt 10 21 35 Número Inteiro TermCom ; Terminador de Comando 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 ☐ TermCom e ; ☐ OpArit e + ☑ Id e Soma ☐ Id e A Explicação: A resposta correta é: Id e A 4ª Questão Acerto: 0,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. ☑ 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 reservando a parte onde foi encontrado. ☐ Abortar a análise e reportar imediatamente 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. https://simulado.estacio.br/aluno/?user_cod=&matr_integracao=201901278131 2/7 21/11/2022 09:31 Estácio: Alunos 5ª Questão Acerto: 0,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. S → 15|01A|ε A → 1S|0|B|ε B → 15|B|ε 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 ☑ II ☐ I ☐ III e IV ☐ I e III Respota correta: II 6ª Questão Acerto: 0,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 : ; https://simulado.estacio.br/aluno/?user_cod=&matr_integracao=201901278131 3/7 21/11/2022 09:31 Estácio: Alunos ::= Id Atrib ; ::= Id | Int; ::= Oper; Qual das opções abaixo possui apenas erro sintático. ☐ d - 10 ☐ A = b + C; ☐ A = C; ☐ A := 7; ☐ 10 * 5; Explicação: Resposta correta: A := 7; Questão Acertei: 0,0 / 1,0 Verificação de tipos é uma atividade extremamente importante na análise semântica já que determinados erros somente são percebidos nesta atividade, pois passam despercebidos nas Análises Léxica e Sintática. Considere o seguinte trecho de programa : inteiro a,b,c; { ... c:= a + b; ... } Quanto a expressão c:= a + b; podemos afirmar que: O seu tipo será Inteiro porque todos os operandos são do tipo inteiro Com base nas afirmativas podemos concluir que: ☐ As duas afirmativas são falsas ☐ As duas são corretas e a segunda justifica a primeira ☐ A primeira é verdadeira e a segunda falsa ☐ As duas são corretas e a segunda não justifica a primeira ☒ A primeira é falsa e a segunda correta Explicação: Resposta correta: As duas são corretas e a segunda justifica a primeira https://simulado.estacio.br/alunos/?user_cod=&matr_integracao=201901278131 21/11/2022 09:31 Estácio: Alunos Questão Acertei: 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. no hash de base 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 II ☐ II, IV ☒ I e III ☒ I, II e IV Explicação: Resposta correta: I, I I e IV Questão Acertei: 0,0 / 1,0 Um programa pode ter parte de sua funcionalidade implementada por um procedimento. Procedimentos são normalmente compilados à 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 ☐ 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 justifica a primeira Explicação: Resposta correta: A primeira é verdadeira e a segunda falsa https://simulado.estacio.br/alunos/?user_cod=&matr_integracao=201901278131 21/11/2022 09:31 Estácio: Alunos Questão Acertei: 0,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 código é mais otimizado, ou seja qual tem o menor custo. Considere um processador com o seguinte conjunto de instruções: Comando Operação Significado MOVE r r r = r Mover o conteúdo do registrador r para o registrador r MOVE x r r = x Mover o conteúdo do registrador para a posição de memória de x MOVE r x x = r Mover da posição de memória de x para o registrador r ADD r r r = r + r realize a soma do valor do registrador r com o valor do ADD r x r = r + x Leia x na memória realize a soma com o valor do registrador e deixe o resultado no registrador r SUB r r r = r - r realize a subtração do valor do registrador e deixe o resultado em r SUB r x r = r - x Leia x na memória e subtraia do valor do registrador e deixe o resultado no até registrador r MULT r r r = r * r multiplique o valor de registrador e o resultado no registrador r MULT r x r = r * x Leia x na memória e o multiplique pelo valor do registrador r, deixe o resultado no registrador r 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 Código 1 MOVE r0 a ADD r0 b MOVE r0 r1 MOVE r1 0 SUB r1 c MULT r1 r MOVE x r0 Código 2 MOVE r0 a ADD r0 b MOVE r0 r1 MOVE r1 c SUB r1 d MULT r0 r1 MOVE x r0 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 ⛝ A primeira é falsa e a segunda correta ☐ A primeira é verdadeira e a segunda falsa ☐ As duas afirmativas são falsas ☐ As duas são corretas e a segunda justifica a primeira Explicação: Resposta correta: A primeira é verdadeira e a segunda falsa https://simulado.estacio.br/alunos/?user_cod=&matr_integracao=201901278131 21/11/2022 09:31 Estácio: Alunos Resposta correta: A primeira é verdadeira e a segunda falsa Sugira! Sinalize! Construa! Antes de finalizar, clique aqui para dar a sua opinião sobre as questões deste simulado. https://simulado.estacio.br/alunos/?user_cod=&matr_integracao=201901278131 7/7