Baixe o app para aproveitar ainda mais
Prévia do material em texto
25/08/2022 18:43 Revisar envio do teste: QUESTIONÁRIO UNIDADE I – ... https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_83493168_1&course_id=_233933_1&content_id=_2836006_1&retur… 1/5 UNIP CONTEÚDOS ACADÊMICOS BIBLIOTECAS MURAL DO ALUNO COMPILADORES E COMPUTABILIDADE D571_15801_R_20222 CONTEÚDO Revisar envio do teste: QUESTIONÁRIO UNIDADE I Usuário Curso COMPILADORES E COMPUTABILIDADE Teste QUESTIONÁRIO UNIDADE I Iniciado 25/08/22 18:35 Enviado 25/08/22 18:43 Status Completada Resultado da tentativa 5 em 5 pontos Tempo decorrido 7 minutos Resultados exibidos Respostas enviadas, Perguntas respondidas incorretamente Pergunta 1 0,5 em 0,5 pontos Um analisador sintático descendente constrói a árvore de derivação do programa de cima para baixo, isto é, partindo da raiz (símbolo inicial da gramática) e seguindo em direção as folhas (símbolos do programa). Todos os métodos que adotam esta estratégia seguem esta abordagem, variando pontualmente a forma como resolvem o problema de selecionar a regra a ser aplicada em cada momento. Pode-se afirmar sobre o Analisador Descendente Recursivo: Resposta Selecionada: a. É um reconhecedor obtido através da transcrição das regras de produção da gramática na forma de um conjunto de sub-rotinas. Assim, cada sub-rotina é responsável por verificar os elementos relativos a uma produção em particular. O processo de reconhecimento se inicia com a chamada da sub-rotina equivalente a regra que deriva o símbolo inicial da gramática. A partir disto, chamadas subsequentes para outras sub-rotinas são realizadas sempre que um símbolo não terminal é encontrado na produção. Quando todos os elementos são consumidos, a chamada inicial retorna sinalizando que se trata de uma sentença é válida. Pergunta 2 0,5 em 0,5 pontos https://ava.ead.unip.br/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_49_1 https://ava.ead.unip.br/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_25_1 https://ava.ead.unip.br/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_27_1 https://ava.ead.unip.br/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_47_1 https://ava.ead.unip.br/webapps/blackboard/execute/courseMain?course_id=_233933_1 https://ava.ead.unip.br/webapps/blackboard/content/listContent.jsp?course_id=_233933_1&content_id=_2821431_1&mode=reset 25/08/2022 18:43 Revisar envio do teste: QUESTIONÁRIO UNIDADE I – ... https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_83493168_1&course_id=_233933_1&content_id=_2836006_1&retur… 2/5 A gramática dada a seguir é LL(1). Nela os elementos +, *, (, ) e id configuram como símbolos terminais, enquanto os E, T, F, E’ e T’ são considerados não-terminais. A tabela de movimentos M fornece ao reconhecedor o número da regra que deve ser aplicada durante a análise da sentença, sendo necessário apenas conhecer o não-terminal a ser derivado e o primeiro símbolo presente no restante da entrada. Sobre a construção de analisadores sintáticos deste tipo é incorreto afirmar que: Resposta Selecionada: d. A aplicação da regra 8 deve ser feita antes da regra 7, segundo a interpretação que temos da tabela. Esse fato se comprova ao observarmos que o símbolo “(“ poderia ocorrer imediatamente após um “id” segundo o que determina as produções da gramática. Pergunta 3 0,5 em 0,5 pontos O processo de programar um computador para realizar uma determinada tarefa, quando analisado em relação às atividades que são necessárias desde a codificação do algoritmo até a execução propriamente dita do programa, pode ser visto como um processo complexo e que envolve vários elementos, cada qual com propósito bastante específico. Nesse contexto, assinale a alternativa que descreve o propósito e a principal tarefa realizada pelos compiladores. Resposta Selecionada: b. Possibilitar a programação de computadores utilizando linguagens de alto nível (que permitem descrever as ideias em termos mais abstratos e mais independentes da arquitetura da máquina), pois são responsáveis pela tradução do algoritmo em seu correspondente em um linguagem de baixo nível. Pergunta 4 0,5 em 0,5 pontos Os métodos ligados a análise sintática se agrupam em ascendentes e descendentes, de acordo com a forma como derivam a estrutura sintática da sentença do programa. Assinale a alternativa incorreta a respeito dos analisadores sintáticos. Resposta d. Selecionada: 25/08/2022 18:43 Revisar envio do teste: QUESTIONÁRIO UNIDADE I – ... https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_83493168_1&course_id=_233933_1&content_id=_2836006_1&retur… 3/5 Dentre a categoria de analisadores descendentes podemos citar os parses Descendentes Recursivos, de Cocke‐Younger‐Kasami e os analisadores do tipo LR(k). Pergunta 5 0,5 em 0,5 pontos Analisadores sintáticos do tipo LL(k) realizam a verificação da sentença de modo descendente, entretanto tem como restrição poderem ser aplicados apenas aos casos em que a gramática da linguagem é LL(k). Considerando a produção S → S x K | K qual, dentre as alternativas a seguir, poderia substituí-la de modo a eliminar a recursão a esquerda e criar uma gramática equivalente? (Considere ε representando a sentença vazia). Resposta Selecionada: e. Pergunta 6 0,5 em 0,5 pontos No modelo de Análise e Síntese o processo é dividido em duas grandes etapas. Na primeira, são realizadas todas as tarefas pertinentes a análise e compreensão do código fonte, enquanto na segunda, as atividades de otimização e a geração do código propriamente dito. Cada uma destas grandes etapas pode ser decompostas em fases, de propósito específico e cujo resultado de seu processamento servirá como dado de entrada para a próxima fase. Analise as alternativas a seguir e assinale aquela cuja atividade não corresponde a nenhuma das subfases deste modelo. Resposta Selecionada: e. A fase de link edição, ou ligação, é responsável por criar o arquivo executável combinando todos os arquivos objetos em um único módulo de carga. Pergunta 7 0,5 em 0,5 pontos Durante o processo de verificação da estrutura sintática de um programa, o analisador simula o processo de construção da árvore de derivação para o programa que está sendo compilado. Usualmente esse processo é realizado adotando-se uma dentre duas abordagens possíveis. a top-down, em que se parte do símbolo inicial da gramática e tenta-se alcançar os elementos que compõe o programa; e a botton-up, que segue o princípio contrário, partindo do código e realizado reduções na sentença 25/08/2022 18:43 Revisar envio do teste: QUESTIONÁRIO UNIDADE I – ... https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_83493168_1&course_id=_233933_1&content_id=_2836006_1&retur… 4/5 até que se alcance o símbolo inicial que caracterize o elemento raiz da árvore. A respeito destas estratégias assinale a alternativa correta. Resposta Selecionada: a. Os métodos descendentes são usualmente mais convenientes em casos de implementação manual, enquanto os métodos ascendentes (botton-up) são considerados mais favoráveis para construtores automáticos de analisadores. Pergunta 8 0,5 em 0,5 pontos Um analisador sintático LL(1) somente pode ser construído para uma classe restrita de gramáticas, que também recebem este mesmo nome. Uma de suas características é que suas produções não apresentem prefixos comuns para cadeias distintas derivadas a partir de um mesmo não-terminal. Ou seja, se duas produções que começam com o mesmo símbolo ou conjunto de símbolos (prefixo), por exemplo, como nas regras A→αβ e A→αδ e sendo First(α) ≠ ∅, implicará numa interseçãoentre os conjuntos First(αβ) e First(αδ) e o analisador não será capaz de decidir qual regra escolher utilizando um único símbolo da entrada. Usualmente o problema pode ser resolvido substituindo as produções da gramática que causam o problema por outras que acomodem essa restrição, mantendo a equivalência entre elas. Supondo a produção S → if E then S else S fi | if E then S fi | K e considerando ε como a sentença vazia, quais dentre as alternativas a seguir representa uma substituição válida para resolver o problema apresentado e obter uma gramática equivalente que seja LL(1)?. Resposta Selecionada: S → if E then S R fi | K a. R → else S | ε Pergunta 9 0,5 em 0,5 pontos Assinale a alternativa que representa a principal tarefa realizada pela Análise léxica. Resposta Selecionada: c. Varrer o arquivo fonte, lendo-o caractere por caractere e agrupá-los em blocos de um ou mais elementos de acordo com o significado dentro da linguagem. Pergunta 10 0,5 em 0,5 pontos 25/08/2022 18:43 Revisar envio do teste: QUESTIONÁRIO UNIDADE I – ... https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_83493168_1&course_id=_233933_1&content_id=_2836006_1&retur… 5/5 Durante a varredura do código fonte pelo Scanner (Analisador Léxico) várias tarefas ditas secundárias são realizadas. Assinale a alternativa cuja tarefa não corresponde as atribuições esperadas para um analisador léxico. Resposta e. Selecionada: Detectar os marcadores de início e de fim de blocos para que os comandos possam ser agrupados em um único elemento e entregues para a fase de análise sintática com um comando único. Quinta-feira, 25 de Agosto de 2022 18h43min45s BRT ← OK
Compartilhar