Baixe o app para aproveitar ainda mais
Prévia do material em texto
22/11/2022 22:40 EPS https://simulado.estacio.br/alunos/ 1/6 JULIO CESAR DE SOUZA LIMA Avaliação AV 202209217897 POLO CENTRO - NILÓPOLIS - RJ avalie seus conhecimentos 1 ponto Atualmente o JAVA passou a utilizar uma segunda fase de compilação para acelerar a execução. Está técnica é denominada: (Ref.: 202213230237) 1 ponto O componente do processo de tradução que a partir dos programas objetos gera o módulo de carga é o: (Ref.: 202213230236) 1 ponto Diagramas de Sintaxe são forma gráficas e alternativas para representar as especificações de tokens, sem precisa recorrer as Expressões Regulares ao BNF. Disc.: CCT0838 - COMPILADORES Período: 2022.3 EAD (G) Aluno: JULIO CESAR DE SOUZA LIMA Matr.: 202209217897 Prof.: ROBSON LORBIESKI Turma: 9001 Lupa VERIFICAR E ENCAMINHAR Prezado(a) Aluno(a), Responda a todas as questões com atenção. Somente clique no botão FINALIZAR PROVA ao ter certeza de que respondeu a todas as questões e que não precisará mais alterá-las. A prova será SEM consulta. O aluno poderá fazer uso, durante a prova, de uma folha em branco, para rascunho. Nesta folha não será permitido qualquer tipo de anotação prévia, cabendo ao aplicador, nestes casos, recolher a folha de rascunho do aluno. Valor da prova: 10 pontos. 1. Linkedição JIT Bytecode Montagem JVM 2. Interpretador Carregador Montador Ligador Compilador 3. javascript:voltar(); javascript:diminui(); javascript:aumenta(); 22/11/2022 22:40 EPS https://simulado.estacio.br/alunos/ 2/6 Considere o diagrama de Sintaxe abaixo: Que expressão regular faria exatamente a mesma definição no GALS? (Ref.: 202213230365) 1 ponto Autômatos Finitos são definidos por uma quíntupla (Q, , , q0, F) onde: Q é o conjunto finito de estados, é o conjunto finito de símbolos de entrada, é a função de transição, q0 é o estado inicial (q0 Q - o estado inicial é apontado por uma seta) F o conjunto de estados finais ou de aceitação ( um estado inicial também pode ser final). E podem ser representados por grafos ou de forma tabular considere o seguinte grafo: Qual seria a sua representação tabular? (Ref.: 202213230359) Inteiro : [0-9]+ Inteiro : [0-9]* Inteiro : [Digito]* Inteiro : [0-9]? Inteiro : [Digito]+ 4. Σ δ Σ δ ∈ 22/11/2022 22:40 EPS https://simulado.estacio.br/alunos/ 3/6 1 ponto Gramáticas Livres de Contexto se prestam à definição de Linguagens de programação. Porém, a existência de ambiguidade gera o problema do não determinismo para o parser, já que permite a criação de duas árvores sintáticas distintas para o mesmo comando. Considere as seguintes gramáticas I - A → A + A | A − A | a II -E → E + E | E → E * E | E → b III - S → S + T | S → T | T → T * F | F → c Existe ambiguidade: (Ref.: 202213232201) 5. Somente em I Somente em II Em I e III Em II e III Em I e II 22/11/2022 22:40 EPS https://simulado.estacio.br/alunos/ 4/6 1 ponto Na implementação de Analisadores Sintáticos Descendentes Preditivo, é criada uma tabela para determinar que produção utilizar em função do símbolo não terminal no topo da pilha e do símbolo que está sendo lido na entrada. Para auxiliar no trabalho de criação da tabela, são definidos dois conjuntos o First e o Follow Considere a seguinte gramática X→abY|c Y→dY|ε Z→e Qual seria o conjunto Follow para o não terminal X? (Ref.: 202213232216) 1 ponto As árvores como representações intermediárias gráficas são muito utilizadas para armazenar informações que auxiliam na execução dos passos da etapa de análise da compilação. Quanto a estes aspectos podemos afirmar que: Arvores de Derivação Anotadas prestam um auxílio valioso à Análise Semântica Porque Como seus nós possuem atributos associados podem ser validados quanto a vários aspectos, por exemplo, o tipo de variáveis. Com base nas afirmativas acima podemos concluir que: (Ref.: 202213231870) 1 ponto As representações intermediárias lineares são utilizadas para produzir o resultado da Análise Semântica. As respeito destas representações analise as seguintes afirmativas: I. Código de máquina de pilha é um exemplo de código de um endereço II. Códigos de um endereço utilizam nomes implícitos III. Códigos de dois endereços não utilizam operações destrutivas. IV. Código de três endereços possuem o formato básico r ← x op y Estão corretas apenas as afirmativas: (Ref.: 202213231874) 6. {ε} {$} {c} {b} {a} 7. 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 As duas são corretas e a segunda justifica a primeira A primeira é verdadeira e a segunda falsa II e III I e IV I, II e IV I, II e III II, III e IV {ε} javascript:check();regrava('8','V8MLP96A33992188','3992188','2','1'); 22/11/2022 22:40 EPS https://simulado.estacio.br/alunos/ 5/6 1 ponto O produto final da etapa de síntese do compilador é o código de montagem que será submetido ao montador para gerar o módulo objeto. Em seu trabalho o montador deve, entre outras coisas, determinar os endereços em memória das instruções , dos rótulos e das variáveis. Considere o trecho de código abaixo: Sabendo-se que VALOR e RESULTADO tiveram seus endereços determinados nesta ordem, na tabela de símbolos seus endereços seriam respectivamente (Ref.: 202213232807) 1 ponto A montagem e a ligação são as últimas etapas na criação de um programa executável. A partir deste instante o programa fica disponível para ser executado e quando o usuário solicitar que ele rode o Carregador irá alocá-lo na memória. Várias técnicas foram desenvolvidas para realizar tanto a ligação como o carregamento. Dentro deste contexto analise as afirmativas abaixo: I Na montagem e carregamento combinados não é criado o módulo objeto II Carregamento e Ligação Dinâmicos sempre ocorrem em tempo de execução III Carregador de ligação direta usam relocação de código É verdadeiro o que se afirma em: (Ref.: 202213232800) 9. $1000 e $3000 $3000 e $3001 $1001 e $1000 $1000 e $1001 $3001 e $3000 10. I e II I e III Somente I Somente II I, II e III 22/11/2022 22:40 EPS https://simulado.estacio.br/alunos/ 6/6 VERIFICAR E ENCAMINHAR Não respondida Não gravada Gravada javascript:abre_colabore();
Compartilhar