Buscar

Atividade Avaliativa Linguagens e Compiladores Semana 4 Univesp 2022

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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.

Outros materiais