Baixe o app para aproveitar ainda mais
Prévia do material em texto
1a Questão Acerto: 1,0 / 1,0 O que faz a análise léxica? É um sistema que aceita como entrada um programa escrito em uma linguagem de programação e produz como resultado um programa equivalente em outra linguagem; Lê caractere por caractere do texto encontrando sequências que constituem tokens; Verifica se a estrutura gramatical do programa está correta; Verifica se as estruturas do programa irão fazer sentido 4 durante a execução; Tratar erros de tipo no programa fonte; Explicação: A resposta correta é: Lê caractere por caractere do texto encontrando sequências que constituem tokens; 2a Questão Acerto: 1,0 / 1,0 Considere os seguintes passos da compilação: I. Otimização II. Análise Léxica III. Geração de Código IV. Geração de Código Intermediário V. Análise Semântica VI. Análise Sintática A ordem correta dos passos durante a compilação é: II, V, VI, IV, I e III III, V, VI, IV, I e II III, IV, VI, V, I e II III, IV, V, VI, I e II II, VI, V, IV, I e III Explicação: A resposta correta é: II, VI, V, IV, I e III. 3a Questão Acerto: 1,0 / 1,0 Os Meta-caracteres são caracteres especiais na especificação de Expressões Regulares, que aumentam muito sua expressividade. Eles podem ser quantificadores, definidores de classes de caracteres, definidores de lista etc.... O Meta-caracter que corresponde a seguinte classe [A-Za-z0-9] é o A ordem correta dos passos durante a compilação é: \c \W \d \C \w Explicação: A resposta correta é: \w 4a Questão Acerto: 1,0 / 1,0 O GALS é um gerador de analisadores léxicos que a partir de expressões regulares cria um autômato finito determinístico que as analisa. Para que possa funcionar ele deve ter os seus tokens especificados. Como seria a especificação do token no GALS para identificadores (Id) formados pela primeira letra maiúscula sendo seguido de pelo menos uma ou mais letras minúsculas deverá existir pelo menos um letra? Id: [A-Za-z]+ Id:[A-Z]* Id:[a-z]+ Id:[A-Z] [a-z]*. Id:[A-Z] [a-z]+. Explicação: A resposta correta é: Id:[A-Z] [a-z]+. 5a Questão Acerto: 1,0 / 1,0 Considere a seguinte gramática S → XYZ X → aXb | ε Y → cYZcX | d Z → eZYe | f Levando-se em conta a necessidade de criar a tabela sintática, seriam gerados os conjuntos First e Follow de cada um dos não terminais. Qual seria o conjunto First de S? {a, c, d, e} {a, c, d} {a, c, e} {c, d, e} { a, d} Explicação: Resposta correta: {a, c, d} 6a Questão Acerto: 1,0 / 1,0 ANO: 2010 BANCA: CESPE ÓRGÃO: INMETRO PROVA: PESQUISADOR - CIÊNCIAS DA COMPUTAÇÃO Considere que, em uma linguagem de programação hipotética, um comando condicional IF exija o uso de THEN, representando a cláusula então. Nesse caso, se a instrução THEN não for usada no código fonte, uma resposta do compilador na identificação do erro de programação estará no nível léxico no nível lógico no nível semântico nos níveis sintático e semântico, ao mesmo tempo no nível sintático Explicação: Resposta correta: no nível sintático 7a Questão Acerto: 1,0 / 1,0 Uma tabela de simbolos pode ser organizada de várias formas diferentes, cada uma com suas vantagens e desvantagens. Quanto as formas de organização da tabela, avalie as afirmativas abaixo: I na Lista linear o algoritmo de busca exige O(n) sondagens por pesquisa, na média, onde n é o número de símbolos na tabela. II Na Busca binária a pesquisa possui uma complexidade de O(n²) III Na tabela de hash a complexidade de busca tende a ser, na média, O(1) IV No hashing aberto a complexidade de busca é O(Log2n) Com base nas afirmativas podemos concluir que estão corretas apenas II e III I e III II e IV I e II III e IV Explicação: Resposta correta: I e III 8a Questão Acerto: 1,0 / 1,0 Verificação de tipos é uma atividade extremamente importante na análise semântica já que determinados erros somente são percebidos nesta atividade, pois passam despercebidos nas Análises Léxicas e Sintáticas. Considere o seguinte trecho de programa : inteiro a,b,c; { .... c:= a + b; .... } Quanto a expressão c:= a + b; podemos afirmar que: O seu tipo será inteiro porque todos os operandos são do tipo inteiro Com base nas afirmativas podemos concluir que: As duas são corretas e a segunda não justifica a primeira A primeira é verdadeira e a segunda falsa A primeira é falsa e a segunda correta As duas são corretas e a segunda justifica a primeira As duas afirmativas são falsas Explicação: Resposta correta: As duas são corretas e a segunda justifica a primeira 9a Questão Acerto: 1,0 / 1,0 Procedimentos são rotinas que complementam as funcionalidades de um programa. Quando um procedimento é chamado um Registro de Ativação é criado e colocado na pilha. Neste registro são armazenadas a variáveis locais, o contexto e os parametrosdo procedimento. Com base nisso considere a seguinte expressão onde p1 e p2 são funções x = p1 (a, p2(b)); Sabendo-se que o código abaixo mostra a implementação do trecho em código intermediário em que ?1, ?2, ?3 e ?4 representam partes faltantes do código . param a param b _t1 := call ?1, ?2 param _t1 x := call ?3, ?4 Quais seriam os valores de ?1, ?2, ?3 e ?4 respectivamente? p1 - 2 - p2 - 1 p2 - 2 - p1 - 1 p1 - 1 - p2 - 2 p2 - 2 - p1 - 2 p2 - 1 - p1 - 2 Explicação: Resposta correta: p2 - 1 - p1 - 2 10a Questão Acerto: 1,0 / 1,0 Existem varios tipos de representações intermediárias tanto graficas como textuais. Durante a fase de síntese a Geração de Código Intermediário irá transformar o resultado da fase de análise em uma outra representação. Uma das formas de representação intermediária é a notação posfixa. Considerando a seguinte expressão em notação infixa (a+b)*(c+d) qual seria a notação posfixa correspondente? a b * c d + + a b + * c d + a b * + c d + a b + c d * + a b + c d + * Explicação: Resposta correta: a b + c d + *
Compartilhar