Baixe o app para aproveitar ainda mais
Prévia do material em texto
08/11/2018 Revisar envio do teste: QUESTIONÁRIO UNIDADE I – D571_... https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_10352847_1&course_id=_21702_1&content_id=_337652_1&outcom… 1/5 Revisar envio do teste: QUESTIONÁRIO UNIDADE I COMP COMP COMPILADORES E COMPUTABILIDADE D571_13701_A_R_20182 CONTEÚDO Usuário IANN LUCAS ISACKSSON OLIVEIRA Curso COMP COMP COMPILADORES E COMPUTABILIDADE Teste QUESTIONÁRIO UNIDADE I Iniciado 26/10/18 20:19 Enviado 26/10/18 20:32 Status Completada Resultado da tentativa 4 em 5 pontos Tempo decorrido 13 minutos Resultados exibidos Respostas enviadas, Perguntas respondidas incorretamente Pergunta 1 Resposta Selecionada: a. Para o desenvolvimento de um compilador é possível que se adote um dos diferentes modelos de construção. Um destes é o que chamamos de modelo de múltiplas passagens, em que as atividades relacionadas a tradução e a escrita do código alvo são realizadas em etapas encadeadas. Cada fase realiza sua tarefa percorrendo todo o código fonte e, após uma conclusão bem-sucedida, inicia-se a etapa subsequente tendo como entrada o resultado da fase anterior. Acerca deste modelo analise as seguintes considerações. - Trata-se de um modelo bastante didático, pois a modularização do processo permite o desenvolvimento gradativo do compilador enquanto se estuda com mais detalhes as atividades pertinentes a cada etapa. - Por outro lado, uma desvantagem inerente ao modelo é que por exemplo um erro semântico localizado nas primeiras linhas do código fonte somente seria detectado após a conclusão das análises léxica e sintática de todas as linhas do programa. Assinale a alternativa que representa o melhor juízo cabível sobre o que se a�rmou. Ambas as assertivas são verdadeiras, sendo a segunda a justi�cativa da primeira. Pergunta 2 Supondo a gramática a seguir e a sentença (a,(a),(a,a)), quais seriam os movimentos realizados por um reconhecedor ascendente para esta cadeia? G = ({L,S}, {“(“, ”)”, ”a”, ”,”}, L, P ) P. L → (S) S → I,S | I I → a | L ASSOCIADA / COLIGADA BIBLIOTECAS MURAL DO ALUNOCONTEÚDOS ACADÊMICOS 0,5 em 0,5 pontos 0,5 em 0,5 pontos IANN OLIVEIRA 08/11/2018 Revisar envio do teste: QUESTIONÁRIO UNIDADE I – D571_... https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_10352847_1&course_id=_21702_1&content_id=_337652_1&outcom… 2/5 Resposta Selecionada: a. (a,(a),(a,a)) ⇒ (I,(a),(a,a)) ⇒ (I,(I),(a,a)) ⇒ (I,(S),(a,a)) ⇒ (I,L,(a,a)) ⇒ (I,I,(a,a)) ⇒ (I,I,(I,a)) ⇒(I,I,(I,I)) ⇒ (I,I,(I,S)) ⇒ (I,I,(S)) ⇒ (I,I,L) ⇒ (I,I,I) ⇒ (I,I,S) ⇒ (I,S) ⇒ (S) ⇒ L. Pergunta 3 Resposta Selecionada: a. 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 a�rmar sobre o Analisador Descendente Recursivo: É 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 veri�car 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 4 Resposta Selecionada: e. 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í�co 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. 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 5 0,5 em 0,5 pontos 0,5 em 0,5 pontos 0 em 0,5 pontos 08/11/2018 Revisar envio do teste: QUESTIONÁRIO UNIDADE I – D571_... https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_10352847_1&course_id=_21702_1&content_id=_337652_1&outcom… 3/5 Resposta Selecionada: e. 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 codi�caçã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í�co. Nesse contexto, assinale a alternativa que descreve o propósito e a principal tarefa realizada pelos compiladores. Permitir que as atividades ligadas a programação de computadores sejam realizadas em um ambiente integrado, provendo recursos relacionados desde a escrita do código até a sua execução no sistema operacional. Pergunta 6 Resposta Selecionada: a. A gramática dada a seguir é LL(1). Nela os elementos +, *, (, ) e id con�guram 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 a�rmar que: A tabela indica que a regra 1 deve ser aplicada quando um símbolo não- terminal E estiver sendo derivado e na entrada houver algum elemento que pertença ao conjunto First(TE’). Pergunta 7 Resposta Selecionada: d. 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. 0 em 0,5 pontos 0,5 em 0,5 pontos 08/11/2018 Revisar envio do teste: QUESTIONÁRIO UNIDADE I – D571_... https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_10352847_1&course_id=_21702_1&content_id=_337652_1&outcom… 4/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 8 Resposta Selecionada: e. Os diferentes elementos básicos que compõe uma linguagem, tais como as palavras reservadas, identi�cadores, operadores e quaisquer outros lexemas estabelecidos por ela, também possuem uma estrutura sintática e podem ser descritos formalmente através de expressões regulares. Entretanto a tarefa de reconhecimento dos lexemas é realizada pelo Analisador Léxico, acontecendo de maneira separada da Análise Sintática do código. Assim, um analisador léxico é antes de mais nada um elemento reconhecedor destas estruturas e pode ser de�nido como um autômato �nito, dada a natureza regular dos elementos da linguagem. Julgue cada uma das a�rmativas a seguir e assinale a alternativa correta. I) As gramáticas regulares não permitem a descrição de estruturas aninhadas e portanto não são capazes de descrever simultaneamente os lexemas e também as demais estruturas típicas nas linguagem de programação, tais como parênteses balanceados e comandos aninhados.II) A separação das etapas permite utilizar gramaticas regulares, que são mais simples e mais e�cientes, para a descrição dos lexemas tornado a implementação do reconhecedor mais fácil. III) O analisador sintático �caria muito mais complexo, pois estaria a todo momento preocupado em prever a ocorrência de símbolos irrelevantes, tais como espaços em branco, que teriam sido eliminados pela análise léxica. Todos itens são verdadeiros e os motivos apresentados justi�cam a separação dos analisadores. Pergunta 9 Resposta Selecionada: e. 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. Detectar os marcadores de início e de �m 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. Pergunta 10 0,5 em 0,5 pontos 0,5 em 0,5 pontos 0,5 em 0,5 pontos 08/11/2018 Revisar envio do teste: QUESTIONÁRIO UNIDADE I – D571_... https://ava.ead.unip.br/webapps/assessment/review/review.jsp?attempt_id=_10352847_1&course_id=_21702_1&content_id=_337652_1&outcom… 5/5 Quinta-feira, 8 de Novembro de 2018 19h17min43s GMT-03:00 Resposta Selecionada: a. Uma das tarefas primordiais ao processo de compilação é que durante a veri�cação da sintática do programa o compilador reporte ao programador todos os erros detectados para que ele os corrija. Neste contexto, a adoção de uma estratégia que permita o tratamento e eventual recuperação diante de erros é parte das decisões que envolvem a construção dos analisadores. Assinale a alternativa que não descreve de maneira apropriada essas estratégias. O Modo Pânico é aquele em que o compilador exibe as mensagens de erro e interrompe qualquer outra atividade do sistema operacional, evitando problemas de gravação dos dados no disco e a corrupção dos dados armazenados. ← OK
Compartilhar