Buscar

Linguagens e Compiladores - Semana 6

Prévia do material em texto

LINGUAGENS E COMPILADORES – EEL101 
 
Semana 6 - Atividade Avaliativa 
 
P E RG U NT A 1 
 
1. Existe uma série de erros que podem ocorrer em programas de computador. Vários deles podem ser 
detectados em um contexto de compilação. Porém, outros erros são detectados somente na interação do 
programa com o ambiente de execução. Qual dos erros citados pode ser detectado somente nessa interação? 
 
a. Loop inf inito. 
 
b. Erros léxicos. 
 
c. Erros de sintaxe. 
 
d. Desbalanceamento de parêntesis. 
 
e. Estouro de pilha. 
 
P E RG U NT A 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 memória. 
 
b. a região de código. 
 
c. a memória RAM. 
 
d. a pilha. 
 
e. o heap. 
1 pontos 
P E RG U NT A 3 
 
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 pontos 
P E RG U NT A 4 
 
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? 
 
a. Causar falha de segmentação mais f requentemente. 
 
b. Gerar programas maiores, que usam mais memória. 
 
c. Gerar programas mais lentos, pois é necessário administrar a memória dinâmica. 
 
d. Gerar programas menores, que otimizam o uso de memória em tempo de execução. 
 
e. Gerar programas mais rápidos, que usam memória dinâmica. 
1 pontos 
P E RG U NT A 5 
 
1. No ambiente de execução, há uma região na qual existem instruções referentes ao código executável do 
programa. O conteúdo da região de instruções do ambiente de execução é: 
 
a. informações sobre como gerar cada tipo de variável. 
 
b. instruções sobre como executar o programa. 
 
c. a tradução de um código intermediário mediada pela tabela de símbolos. 
 
d. memória alocada estaticamente. 
 
e. memória alocada dinamicamente. 
1 pontos 
P E RG U NT A 6 
 
1. No contexto do ambiente de execução, há um elemento chamado heap. O heap, nesse caso, é: 
 
a. um espaço de memória que pode se expandir e contrair. 
 
b. uma estrutura de dados que permite o armazenamento ef icaz de dados ordenados. 
 
c. um algoritmo ef icaz para ordenação. 
 
d. um espaço de memória que serve para armazenar variáveis estáticas. 
 
e. uma estrutura de dados que permite ordenação em O(n logn). 
1 pontos 
P E RG U NT A 7 
 
1. A chamada: 
void func() { 
 func(); 
} 
leva a um erro porque: 
 
a. em tempo de execução, as chamadas são colocadas no heap e eventualmente a memória 
termina. 
 
b. em tempo de execução, as chamadas são colocadas na pilha e eventualmente a memória 
disponível termina. 
 
c. a chamada leva a uma alocação ilegal de memória. 
 
d. em tempo de compilação, as chamadas são colocadas numa árvore sintática inf inita. 
 
e. não há erro. 
1 pontos 
P E RG U NT A 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? 
 
a. Uma avaliação atrasada. 
 
b. 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 modif icá-la. 
 
c. Uma forma de passar parâmetros na qual é criada uma cópia da variável passada, de forma que 
a subrotina ou subprograma consegue modif icar seu valor original. 
 
d. 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 modif icar seu valor original. 
 
e. 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 modif icar seu valor original. 
1 pontos 
P E RG U NT A 9 
 
1. Ambientes de execução estáticos não têm pilha. Qual elemento de programação não pode ser usado 
nesse tipo de ambiente? 
 
a. Variáveis locais. 
 
b. Chamadas de função. 
 
c. Laços. 
 
d. Variáveis globais. 
 
e. Variáveis de tipo def inido. 
1 pontos 
P E RG U NT A 1 0 
 
1. Em algumas linguagens de programação, como Java, existe um processo automático de preservação de 
memória chamado garbage collector. O que faz um garbage collector? 
 
a. Encontra variáveis não inicializadas e que, portanto, contêm lixo. 
 
b. Encontra regiões inacessíveis da memória e marca-as como livres. 
 
c. Retira o código-objeto que não será usado durante a execução do programa. 
 
d. Otimiza funções que claramente geram falha de segmentação. 
 
e. Remove linhas inacessíveis de um código fonte.

Continue navegando