Buscar

atividade avaliativa - Linguagens e Compiladores - semana 6 respostas 3 tentativa

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 3 páginas

Prévia do material em texto

1. 
 
2. 
3. Fazer teste: Semana 6 - Atividade Avaliativa 
PERGUNTA 1 
1. Marque a alternativa que compare corretamente dois ou mais ambientes de execução. 
 
 
Um ambiente baseado em pilhas requer o acompanhamento das referências durante a 
execução. Já o ambiente de execução totalmente dinâmico não precisa desse recurso. 
 
 
Linguagens funcionais precisam de uma forma mais geral de ambiente de execução. 
Nesse caso, o ambiente de execução baseado em pilhas é mais adequado do que os 
demais. 
 
 
Todos os ambientes de execução são muito parecidos. Os criadores das linguagens os 
escolhem por afinidade com as interfaces. 
 
 
Um ambiente de execução totalmente estático dá suporte para que variáveis locais 
recebam novas posições a cada ativação. Isso não acontece em ambientes de execução 
baseados em pilhas. 
 
 
Apesar da complexidade adicional do ambiente de execução totalmente dinâmico, a 
estrutura básica de um registro de ativação continua igual à do ambiente de execução 
baseado em pilhas. 
1,25 pontos 
PERGUNTA 2 
1. No código (em C): 
int main() { 
 int *c; 
 while (1) { 
 int *c = malloc(sizeof(int)); 
 } 
 return 0; 
} 
 
há um problema de estouro de memória, isto é, o espaço de memória reservado para o 
programa termina. A região do ambiente de execução em que esse erro acontece é: 
 
a. a região de código. 
 
b. a memória RAM. 
 
c. a pilha. 
 
d. a região de memória. 
 
e. o heap. 
1,25 pontos 
PERGUNTA 3 
1. Sobre a organização da memória durante a execução de programas, marque a alternativa 
que rotula corretamente as afirmações entre verdadeiras (V) e falsas (F). 
 
( ) Na maioria das linguagens compiladas, não é possível efetuar alterações na área de código 
durante a execução. 
( ) Todos os endereços de código são computáveis durante a compilação. 
( ) O ponto de entrada de cada procedimento e função é conhecido durante a compilação. 
( ) Em C, é necessário alocar espaço na área de dados globais para funções e procedimentos 
globais. 
 
 
 
V; F; V; F. 
 
 
V; V; V; V. 
 
 
F; V; F; V. 
 
 
F; F; F; V. 
 
 
V; V; V; F. 
1,25 pontos 
PERGUNTA 4 
1. Um programa compilado organiza sua memória em um ambiente de execução. Dentro desse 
ambiente, a memória é segmentada em algumas regiões. Quais são essas regiões? 
 
 
Espaço para código, espaço para variáveis globais/estáticas, pilha e heap. 
 
 
Uma CPU, teclado, mouse e monitor. 
 
 
Linguagens de programação, compilador e sistema operacional. 
 
 
Pilha, lista ligada, heap e tabela de símbolos. 
 
 
Um vetor ordenado através do algoritmo mergesort. 
1,25 pontos 
PERGUNTA 5 
1. Marque a alternativa que descreve corretamente uma característica da organização de 
memória durante a execução de programas. 
 
 
A área de memória utilizada para a alocação de dados dinâmicos pode ser organizada 
em uma área de pilha e uma área de heap, com a área de pilha usada para alocação 
dinâmica que não obedece ao protocolo FIFO e nem ao LIFO. 
 
 
A área de memória utilizada para a alocação de dados dinâmicos pode ser organizada 
em uma área de pilha e uma área de heap, com a área de heap usada para dados cuja 
alocação ocorre de forma LIFO. 
 
 
área de memória utilizada para a alocação de dados dinâmicos pode ser organizada em 
uma área de pilha e uma área de heap, com a área de pilha usada para alocação 
dinâmica que não obedece ao protocolo LIFO.  
 
 
Na máquina-alvo, costuma-se incluir uma pilha de processador para ativações de 
procedimentos. 
 
 
registro de ativação de procedimentos contém memória alocada para os dados globais de 
um procedimento ou função na medida em que é ativado. 
1,25 pontos 
PERGUNTA 6 
1. Marque a alternativa que descreve corretamente uma característica de um ambiente de 
execução totalmente dinâmico. 
 
 
Em ambientes totalmente dinâmicos, os registros de ativação precisam ser liberados 
dinamicamente, em instantes pré-determinados durante a execução. 
 
 
Quando um ambiente de execução baseado em pilhas é adequado, o ambiente de 
execução totalmente dinâmico é a melhor escolha. 
 
 
Uma desvantagem de ambientes totalmente dinâmicos é a incapacidade de lidar com 
áreas inacessíveis de memória em instantes arbitrários durante a execução. 
 
 
Assim como ambientes baseado em pilhas, o ambiente totalmente dinâmico requer o 
acompanhamento das referências durante a execução 
 
 
Ambientes totalmente dinâmicos podem retirar os registros de ativação apenas quando 
todas as referências a eles tiverem desaparecido. 
1,25 pontos 
PERGUNTA 7 
1. Em determinadas situações, não sabemos ao certo quanta memória será usada em uma 
variável, por isso recorremos à alocação dinâmica de memória. Porém, isso gera uma 
desvantagem. Qual é essa desvantagem? 
 
 
Causar falha de segmentação mais frequentemente. 
 
 
Gerar programas mais rápidos, que usam memória dinâmica. 
 
 
Gerar programas mais lentos, pois é necessário administrar a memória dinâmica. 
 
 
Gerar programas menores, que otimizam o uso de memória em tempo de execução. 
 
 
Gerar programas maiores, que usam mais memória. 
1,25 pontos 
PERGUNTA 8 
1. Em chamadas de função, tipicamente temos a passagem de parâmetros por valor e a 
passagem de parâmetros por referência. O que é passagem por valor? 
 
 
Uma forma de passar parâmetros na qual é não é criada uma cópia da variável passada, 
de forma que a subrotina ou subprograma consegue modificar seu valor original. 
 
 
Uma avaliação atrasada. 
 
 
Uma forma de passar parâmetros na qual é criada uma cópia da variável passada, de 
forma que a subrotina ou subprograma não consegue modificá-la. 
 
 
Uma forma de passar parâmetros na qual é não é criada uma cópia da variável passada, 
de forma que a subrotina ou subprograma não consegue modificar seu valor original. 
 
 
Uma forma de passar parâmetros na qual é criada uma cópia da variável passada, de 
forma que a subrotina ou subprograma consegue modificar seu valor original. 
1,25 pontos 
Clique em Salvar e Enviar para salvar e enviar. Clique em Salvar todas as respostas 
para salvar todas as respostas. 
 
Salvar e Enviar

Continue navegando