Baixe o app para aproveitar ainda mais
Prévia do material em texto
25/05/2023, 23:09 EPS https://simulado.estacio.br/alunos/ 1/6 Disciplina: COMPILADORES AV Aluno: GABRIEL PAES RIBEIRO 202008225361 Turma: 9001 CCT0838_AV_202008225361 (AG) 11/05/2021 20:44:46 (F) Avaliação: 8,00 pts Nota SIA: 9,00 pts ENSINEME: ANÁLISE LÉXICA 1. Ref.: 3990678 Pontos: 1,00 / 1,00 O GALS além dos tokens permite a escrita de de�nição regulares que facilitam a construção do tokens. Observe a �gura abaixo: Ela faz a especi�cação de um token chamado ID, qual das opções abaixo apresenta o único lexema que atende a especi�cação: A3A AA3 3A A3 AA. 2. Ref.: 3990679 Pontos: 1,00 / 1,00 Diagramas de Sintaxe são forma grá�cas e alternativas para representar as especi�cações de tokens, sem precisa recorrer as Expressões Regulares ao BNF. Considere o diagrama de Sintaxe abaixo: Que expressão regular faria exatamente a mesma de�nição no GALS? Inteiro : [Digito]+ Inteiro : [0-9]+ Inteiro : [0-9]* Inteiro : [Digito]* Inteiro : [0-9]? javascript:alert('C%C3%B3digo da quest%C3%A3o: 3990678.'); javascript:alert('C%C3%B3digo da quest%C3%A3o: 3990679.'); 25/05/2023, 23:09 EPS https://simulado.estacio.br/alunos/ 2/6 ENSINEME: ANÁLISE SEMÂNTICA 3. Ref.: 3992187 Pontos: 0,00 / 1,00 A determinação das dependências de uma árvore anotada e o tipo dos atributos limitam a escolha do esquema de tradução a ser utilizado. Considere a árvore abaixo e seu respectivo grafo de dependência (setas azuis) Ao analisarmos a situação podemos a�rmar: Somente poderá ser utilizado um Esquema S-atribuído Porque No esquema S-atribuído todos os atributos são sintetizados Com base nas a�rmativas podemos concluir que: As duas a�rmativas são falsas As duas são corretas e a segunda justi�ca a primeira As duas são corretas e a segunda não justi�ca a primeira A primeira é verdadeira e a segunda falsa A primeira é falsa e a segunda correta 4. Ref.: 3992188 Pontos: 1,00 / 1,00 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 a�rmativas: 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 a�rmativas: I e IV javascript:alert('C%C3%B3digo da quest%C3%A3o: 3992187.'); javascript:alert('C%C3%B3digo da quest%C3%A3o: 3992188.'); 25/05/2023, 23:09 EPS https://simulado.estacio.br/alunos/ 3/6 I, II e IV II e III I, II e III II, III e IV {ε} ENSINEME: ANÁLISE SINTÁTICA 5. Ref.: 3992530 Pontos: 1,00 / 1,00 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 de�nidos 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? {b} {c} {a} {ε} {$} 6. Ref.: 3992528 Pontos: 1,00 / 1,00 Enade 2017 Em um compilador, um analisador sintático descendente preditivo pode ser implementado com o auxílio de uma tabela construída a partir de uma gramática livre de contexto. Essa tabela, chamada tabela LL(k), indica a regra de produção a ser aplicada olhando-se o k-ésimo próximo símbolo lido, chamado lookahead(k). Por motivo de e�ciência, normalmente busca-se utilizar k=1. Considere a gramática livre de contexto G=(X,Y,Z,a,b,c,d,e,P,X)G=(X,Y,Z,a,b,c,d,e,P,X), em que PP é composto pelas seguintes regras de produção: X→aZbXY|c Y→dX|ε Z→e Considere, ainda, a seguinte tabela LL(1), construída a partir da gramática GG, sendo $$ o símbolo que representa o �m da cadeia. Essa tabela possui duas produções distintas na célula (Y,d)(Y,d), gerando, no analisador sintático, uma dúvida na escolha da regra de produção aplicada em determinados momentos da análise. javascript:alert('C%C3%B3digo da quest%C3%A3o: 3992530.'); javascript:alert('C%C3%B3digo da quest%C3%A3o: 3992528.'); 25/05/2023, 23:09 EPS https://simulado.estacio.br/alunos/ 4/6 Considerando que o processo da construção dessa tabela LL(1), a partir da gramática GG, foi seguido corretamente, a existência de duas regras de produção distintas na célula (Y,d), neste caso especí�co, resulta do uso incorreto do símbolo de cadeia vazia (ε) nas regras de produção. da presença de duas regras de produção com um único terminal no corpo. da ausência do símbolo de �m de cadeia ($) nas regras de produção. de um não determinismo causado por uma ambiguidade na gramática. da presença de duas regras de produção com o mesmo não terminal na cabeça. ENSINEME: GERAÇÃO DE CÓDIGO 7. Ref.: 3993114 Pontos: 1,00 / 1,00 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 �ca 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 a�rmativas 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 a�rma em: Somente II Somente I I e III I, II e III I e II 8. Ref.: 3993121 Pontos: 0,00 / 1,00 O produto �nal 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. javascript:alert('C%C3%B3digo da quest%C3%A3o: 3993114.'); javascript:alert('C%C3%B3digo da quest%C3%A3o: 3993121.'); 25/05/2023, 23:09 EPS https://simulado.estacio.br/alunos/ 5/6 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 $1000 e $3000 $1001 e $1000 $3000 e $3001 $1000 e $1001 $3001 e $3000 ENSINEME: O COMPILADOR 9. Ref.: 3990558 Pontos: 1,00 / 1,00 Considere o extrato abaixo referente a especi�cação de um linguagem de programação ::= inteiro | real | string declaração_variavel::= [ {, } ]; ::= inteiro | real | string ::= + |- | * | / ::= {L} + {L}|{D} ::= {D}+ ::= {D} + [.{D}+] | .{D} ::= ´{C}´ L ::= A..Z a..z D ::= 0..9 Se a seguinte declaração fosse escrita que tipo de erro seria gerado Inteiro AB+, B, C Lógico Léxico javascript:alert('C%C3%B3digo da quest%C3%A3o: 3990558.'); 25/05/2023, 23:09 EPS https://simulado.estacio.br/alunos/ 6/6 Sintático Semântico Execução 10. Ref.: 3990557 Pontos: 1,00 / 1,00 Sobre análise léxica e sintática executadas pelos compiladores, assinale a opção correta. Um analisador léxico gera a entrada para o analisador sintático. Os analisadores léxico e sintático somente se comunicam via tabela de simbolos. Um analisador léxico serve como o passo �nal de um analisador sintático. O analisador sintático processa diretamente o programa fonte a procura de erros. Técnicas para análise léxica são mais complexas do que as necessárias para a análise sintática. javascript:alert('C%C3%B3digo da quest%C3%A3o: 3990557.');
Compartilhar