Baixe o app para aproveitar ainda mais
Prévia do material em texto
1a Questão (Ref.: 202009439075) (IFB/2017) Considerando-se a definição autômatos finitos, assinale a única alternativa que contém somente cadeias de caracteres totalmente aceitas pelo autômato finito da figura. AB, ABAB, ABABAB. AB, ABBA, ABABAB. AB, ABAB, ABBAAB. AB, ABAA, ABABAB. AB, ABAB, ABAABA. 2a Questão (Ref.: 202007312932) 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. Considere o diagrama de Sintaxe abaixo: Que expressão regular faria exatamente a mesma definição no GALS? Inteiro : [0-9]+ Inteiro : [0-9]* Inteiro : [Digito]* Inteiro : [Digito]+ Inteiro : [0-9]? 3a Questão (Ref.: 202007314435) As representações intermediárias gráficas se prestam a representar vários aspectos analisados do programa fonte. Cada uma delas possui características distintas e se prestam a uma determinada finalidade. A figura a seguirbaixo: corresponde a que tipo de representação intermediária gráfica? Árvore Semântica Arvore de Derivação Grafo de Dependência Grafo acíclico direcionado Árvore de Derivação anotada 4a Questão (Ref.: 202007314437) 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: A primeira é verdadeira e a segunda falsa As duas são corretas e a segunda justifica a primeira As duas são corretas e a segunda não justifica a primeira A primeira é falsa e a segunda correta As duas afirmativas são falsas 5a Questão (Ref.: 202007312804) Atualmente o JAVA passou a utilizar uma segunda fase de compilação para acelerar a execução. Está técnica é denominada: Linkedição JIT Bytecode Montagem JVM 6a Questão (Ref.: 202007312811) Considere o extrato abaixo referente a especificaçã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 Semântico Execução Léxico Sintático 7a Questão (Ref.: 202007314783) 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? {$} {b} {a} {c} {ε} 8a Questão (Ref.: 202007314781) 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 eficiê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 fim 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ífico, 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. de um não determinismo causado por uma ambiguidade na gramática. da ausência do símbolo de fim de cadeia ($) nas regras de produção. da presença de duas regras de produção com o mesmo não terminal na cabeça. 9a Questão (Ref.: 202007315367) 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: Somente II I e II Somente I I, II e III I e III 10a Questão (Ref.: 202007315374) 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 $1001 e $1000 $1000 e $3000 $3001 e $3000 $3000 e $3001 $1000 e $1001
Compartilhar