Baixe o app para aproveitar ainda mais
Prévia do material em texto
PERGUNTA 1 1. Ao longo de nosso estudo, verificamos que a computação de atributos varia muito. Quando aparece explicitamente em um compilador, pode ocorrer em qualquer ponto da compilação: embora associemos a computação de atributos mais fortemente à análise semântica, tanto a varredura como a análise sintática podem precisar de informações dos atributos, e algumas das análises semânticas podem ser requeridas durante a análise sintática. Com base nas informações apresentadas, assinale a alternativa correta. a. A quantidade de dígitos significativos em um número é um atributo frequentemente não tratado de forma explícita durante a compilação. b. A alocação de uma variável somente pode ser estática. c. O compilador não é responsável por gerar códigos para computar seus valores durante a execução de dados. d. O compilador é responsável por gerar imagens para computar seus valores durante a execução de dados. e. Em uma linguagem com tipos estáticos, como C ou Pascal, o tipo de dado de uma variável ou expressão se torna um atributo insignificante durante a compilação. 1,43 pontos PERGUNTA 2 1. Um atributo é qualquer propriedade de uma construção de linguagem de programação. Os atributos podem variar imensamente em conteúdo e complexidade, particularmente no momento em que, durante a tradução/execução, podem ser determinados. Assinale a alternativa que apresente um exemplo típico de atributos. a. Variável. b. Código-fonte de um procedimento. c. Tempo de amarração. d. Quantidade de dígitos significativos em um número. e. Não variável. 1,43 pontos PERGUNTA 3 1. Linguagens de programação são baseadas em paradigmas, que são modelos aplicados à forma de desenvolvimento de um código. Como exemplo, temos o paradigma imperativo, que objetiva explicar como algo deve ser feito, além de usar conceitos de subprogramas, ou seja, procedurais. As linguagens sob o paradigma imperativo têm muita dificuldade associada ao contexto. Com relação às características da linguagem que dificultam o contexto, analise as afirmativas a seguir e assinale V para a(s) verdadeira(s) e F para a(s) falsa(s) . I. ( ) Um dos problemas é que a linguagem imperativa faz uso do endereçamento de memória para armazenar e ler valores guardados por variáveis. II. ( ) Toda variável deve ser declarada inicialmente antes de ser usada para averiguação correta dos tipos de dados. III. ( ) Se faz necessário especificar o escopo da variável do programa quando a mesma for usada dentro de um subprograma. IV. ( ) Nas linguagem ADA, os nomes de subprograma devem ser fechados com o mesmo nome de abertura. Assinale a alternativa que apresenta a sequência CORRETA. a. F, F, F, V. b. V, F, V, F. c. V, V, F, V. d. F, V, V, V. e. V, V, V, V. 1,43 pontos PERGUNTA 4 1. A análise léxica e a análise sintática, as duas primeiras fases do processo de compilação, fazem uso da tabela de símbolos. Essa tabela é o repositório de todas as informações dentro do compilador, e, por essa razão, é o ponto central de comunicação entre as partes do compilador, como a fase léxica e a sintática. Com base no apresentado, avalie as afirmações a seguir e relacione adequadamente os termos aos seus conceitos. 1. Escopo de variáveis. 2. Linguagem estática. 3. Interface. I. Linguagens como C e estruturadas em blocos permitem que variáveis com mesmo nome possam ter valores distintos. II. Um exemplo desse conceito é a linguagem Cobol, que não se estrutura em blocos e utiliza uma tabela de símbolos única e a lista linear de registros. III. Funções são usadas para gerar novos contextos na tabela de símbolos, por exemplo, na definição do tamanho da tabela. Assinale a alternativa que correlaciona adequadamente os dois grupos de informação. a. 1 – I; 2 – II; 3 – III. b. 1 – II; 2 – III; 3 – I. c. 1 – I; 2 – III; 3 – II. d. 1 – II; 2 – I; 3 – III. e. 1 – III; 2 – II; 3 – I. 1,43 pontos PERGUNTA 5 1. A tabela de símbolos em um compilador é uma estrutura de dados típica de dicionário. A eficiência das três operações básicas — inserir, verificar e remover — varia de acordo com a organização da estrutura de dados. Considerando a informação apresentada, analise as afirmativas a seguir e assinale V para a(s) verdadeira(s) e F para a(s) falsa(s). I. ( ) A tabela de hashing, frequentemente, é a melhor opção para a implementação da tabela de símbolos, pois permite que todas as três operações sejam efetuadas em tempo quase constante e é a mais utilizada na prática. II. ( ) Implementações típicas de estruturas de dicionários são listas lineares, diversas estruturas de árvores de busca (árvores de busca binárias, árvores AVL e árvores B) e tabelas de hashing. III. ( ) As principais operações na tabela de símbolos são “inserir”, “permanecer” e “remover”. IV. ( ) As listas lineares são uma boa estrutura de dados básica para implementações fáceis e diretas das três operações básicas. Assinale a alternativa que apresenta a sequência CORRETA. a. F, V, V, V. b. V, F, V, F. c. V, V, F, V. d. F, F, F, V. e. V, V, V, V. 1,43 pontos PERGUNTA 6 1. O uso de uma expressão if-then-else estende os tipos de expressões úteis que podem aparecer em uma equação de atributos. A coleção de expressões permitidas em uma equação de atributos é chamada de metalinguagem para a gramática de atributos. Em geral, queremos uma metalinguagem cujo significado seja suficientemente claro, a fim de evitar o surgimento de confusão a respeito de sua própria semântica. Com relação às características que compõem uma expressão na metalinguagem, avalie as afirmativas a seguir. I. Uma característica adicional útil para a especificação de equações de atributos é o acréscimo do uso de funções na metalinguagem. II. É esperada uma metalinguagem próxima de uma linguagem de programação existente. III. Equações de atributos têm que ser um código executável em um analisador semântico. IV. É necessário que o valor de um atributo seja especificado para todos os símbolos gramaticais. Está correto o que se afirma em: a. I, III e IV, apenas. b. I e III, apenas. c. I, II e IV, apenas. d. II, apenas. e. I, II e III, apenas. 1,43 pontos PERGUNTA 7 1. A forma como os dados são representados por um compilador, a forma como uma tabela de símbolos mantém as informações sobre tipos e as regras utilizadas por um verificador de tipos para inferência, tudo isso depende das expressões de tipos disponíveis em uma linguagem e das regras da linguagem que governam o uso dessas expressões. Com relação ao apresentado, analise as asserções a seguir e as relações propostas entre elas. I. Informações sobre tipos, explícitas ou implícitas, contidas em declarações são mantidas na tabela de símbolos e recuperadas pelo verificador de tipos sem que os nomes associados sejam referenciados. PORQUE II. Em seguida, novos tipos são inferidos, a partir dos já existentes, e associados aos nós apropriados na árvore sintática. Analisando as asserções anteriores, conclui-se que: a. as duas asserções são falsas. b. a primeira asserção é falsa, e a segunda é verdadeira. c. as duas asserções são verdadeiras, e a segunda justifica a primeira. d. as duas asserções são verdadeiras, e a segunda não justifica a primeira. e. a primeira asserção é verdadeira, e a segunda é falsa. 1,42 pontos Clique em Salvar e Enviar para salvar e enviar. Clique em Salvar todas as respostas para salvar todas as respostas.
Compartilhar