Prévia do material em texto
Disciplina: COMPILADORES AV Aluno: ALBENIDES FERNANDES DE LIMA 201901298426 Professor: MARIA CLAUDIA ROENICK GUIMARAES Turma: 9001 CCT0838_AV_201901298426 (AG) 27/10/2023 10:20:44 (F) Avaliação: 3,00 pts Nota SIA: 3,00 pts Estação de trabalho liberada pelo CPF 07602463358 com o token 752208 em 27/10/2023 08:27:31. O aproveitamento da Avaliação Parcial será considerado apenas para as provas com nota maior ou igual a 4,0. ENSINEME: ANÁLISE LÉXICA 1. Ref.: 6116822 Pontos: 0,00 / 1,00 (IFB/2017) Considerando-se a de�nição autômatos �nitos, assinale a única alternativa que contém somente cadeias de caracteres totalmente aceitas pelo autômato �nito da �gura. AB, ABAA, ABABAB. AB, ABAB, ABAABA. AB, ABAB, ABABAB. AB, ABBA, ABABAB. AB, ABAB, ABBAAB. 2. Ref.: 3990674 Pontos: 0,00 / 1,00 Autômato Finito é formalmente de�nido por uma quíntupla como por exemplo esta: Q = número de estados = {S0, S1, S2, S3,S4,S5} = símbolos de entrada = {A,E,M,O,S} = transições = (S0,S) = S1 (S1,E) = S2 (S1,O) = S3 (S3,M)= S4 (S4,A) = S5 q0 = estado inicial = {S0} F = conjunto de estados �nais = {S3,S5} Σ δ δ δ δ δ δ javascript:alert('C%C3%B3digo da quest%C3%A3o: 6116822.'); javascript:alert('C%C3%B3digo da quest%C3%A3o: 6116822.'); javascript:alert('C%C3%B3digo da quest%C3%A3o: 3990674.'); javascript:alert('C%C3%B3digo da quest%C3%A3o: 3990674.'); Sabendo-se que os estados �nais quando atingidos caracterizam que a palavra foi aceita, que palavras seriam aceitas por este autômato? "Som" e "Sema" "Se" e "Soma" "Mesa" e "So" "Mesa" e "Ema" "So" e "Sema" ENSINEME: ANÁLISE SEMÂNTICA 3. Ref.: 3992184 Pontos: 0,00 / 1,00 As árvores como representações intermediárias grá�cas 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 a�rmar 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 a�rmativas acima podemos concluir que: As duas a�rmativas são falsas As duas são corretas e a segunda não justi�ca a primeira A primeira é falsa e a segunda correta As duas são corretas e a segunda justi�ca a primeira A primeira é verdadeira e a segunda falsa 4. 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: javascript:alert('C%C3%B3digo da quest%C3%A3o: 3992184.'); javascript:alert('C%C3%B3digo da quest%C3%A3o: 3992184.'); javascript:alert('C%C3%B3digo da quest%C3%A3o: 3992187.'); javascript:alert('C%C3%B3digo da quest%C3%A3o: 3992187.'); 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: A primeira é falsa e a segunda correta As duas são corretas e a segunda justi�ca a primeira As duas a�rmativas são falsas A primeira é verdadeira e a segunda falsa As duas são corretas e a segunda não justi�ca a primeira ENSINEME: ANÁLISE SINTÁTICA 5. Ref.: 3992530 Pontos: 0,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: 0,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|ε javascript:alert('C%C3%B3digo da quest%C3%A3o: 3992530.'); javascript:alert('C%C3%B3digo da quest%C3%A3o: 3992530.'); javascript:alert('C%C3%B3digo da quest%C3%A3o: 3992528.'); javascript:alert('C%C3%B3digo da quest%C3%A3o: 3992528.'); 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. 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 da presença de duas regras de produção com o mesmo não terminal na cabeça. da ausência do símbolo de �m de cadeia ($) nas regras de produção. do uso incorreto do símbolo de cadeia vazia (ε) 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 um único terminal no corpo. ENSINEME: GERAÇÃO DE CÓDIGO 7. 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. 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 $1001 $1000 e $3000 $3000 e $3001 $1001 e $1000 javascript:alert('C%C3%B3digo da quest%C3%A3o: 3993121.'); javascript:alert('C%C3%B3digo da quest%C3%A3o: 3993121.'); $3001 e $3000 8. Ref.: 7815534 Pontos: 1,00 / 1,00 (Exército/2011) No espaço de memória de um sistema computacional, qual área é reservada pelo sistema operacional para a alocação dinâmica de memória? Stack. DMA. Pilha. Cache. Heap. ENSINEME: O COMPILADOR 9. Ref.: 7838474 Pontos: 1,00 / 1,00 Um compilador é um software responsável por traduzir um código fonte escrito em uma linguagem de programação de alto nível para um código de máquina ou linguagem de baixo nível que o computador possa entender e executar diretamente. Nesse contexto, qual é a função da instrução LOAD em um compilador? Ler um dado da memória para um registrador. Gravar o dado de um registrador em uma posição de memória. Realizar operações aritméticas com dois valores. Armazenar permanentemente um valor na memória. Executar uma chamada de função. 10. Ref.: 7838467 Pontos: 1,00 / 1,00 (CONSULPAM/2019 - Adaptada) O processador é chamado de CPU (unidade central de processamento) e está acoplado à placa-mãe. Ele é um pequeno chip que faz todo o controle das operações que serão realizadas pelo computador. Quanto melhor o processador, maior agilidade as tarefas serão realizadas. Um processador tem a função de: Expandir os recursos da máquina. Armazenar informações em um meio físico. Buscar e executar instruções presentes na memória do computador. Aumentar a memória do meu micro. De�nir a linguagem de programação do hardware. javascript:alert('C%C3%B3digo da quest%C3%A3o: 7815534.'); javascript:alert('C%C3%B3digo da quest%C3%A3o: 7815534.'); javascript:alert('C%C3%B3digo da quest%C3%A3o: 7838474.'); javascript:alert('C%C3%B3digo da quest%C3%A3o: 7838474.'); javascript:alert('C%C3%B3digoda quest%C3%A3o: 7838467.'); javascript:alert('C%C3%B3digo da quest%C3%A3o: 7838467.');