Buscar

Linguagens e Compiladores Semana 6

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

Linguagens e Compiladores Semana 6
PERGUNTA 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 região de memória.
c. o heap.
d. a pilha.
e. a memória RAM.
1 pontos 
PERGUNTA 2
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. Erros de sintaxe.
b.
Estouro de pilha.
c. Loop infinito.
d. Desbalanceamento de parêntesis.
e. Erros léxicos.
1 pontos 
PERGUNTA 3
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 
PERGUNTA 4
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 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. 
b.
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. 
c. Uma avaliação atrasada. 
d.
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. 
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 modificar seu valor original. 
1 pontos 
PERGUNTA 5
No contexto do ambiente de execução, há um elemento chamado heap. O heap, nesse caso, 
é: 
a. um espaço de memória que serve para armazenar variáveis estáticas.
b. uma estrutura de dados que permite o armazenamento eficaz de dados ordenados.
c. um algoritmo eficaz para ordenação.
d. uma estrutura de dados que permite ordenação em O(n logn).
e.
um espaço de memória que pode se expandir e contrair. 
1 pontos 
PERGUNTA 6
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. Otimiza funções que claramente geram falha de segmentação.
b. Retira o código-objeto que não será usado durante a execução do programa.
c. Encontra regiões inacessíveis da memória e marca-as como livres. 
d. Encontra variáveis não inicializadas e que, portanto, contêm lixo.
e. Remove linhas inacessíveis de um código fonte.
1 pontos 
PERGUNTA 7
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. memória alocada estaticamente.
c. instruções sobre como executar o programa.
d. memória alocada dinamicamente.
e.
a tradução de um código intermediário mediada pela tabela de símbolos. 
1 pontos 
PERGUNTA 8
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. Gerar programas mais rápidos, que usam memória dinâmica.
b. Gerar programas menores, que otimizam o uso de memória em tempo de execução.
c. Gerar programas maiores, que usam mais memória.
d. Causar falha de segmentação mais frequentemente.
e.
Gerar programas mais lentos, pois é necessário administrar a memória dinâmica.
1 pontos 
PERGUNTA 9
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 de tipo definido.
b. Chamadas de função.
c. Variáveis locais.
d. Variáveis globais.
e. Laços.
1 pontos 
PERGUNTA 10
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 compilação, as chamadas são colocadas numa árvore sintática infinita.
c. a chamada leva a uma alocação ilegal de memória.
d. em tempo de execução, as chamadas são colocadas na pilha e eventualmente a memória 
disponível termina.
e. não há erro.

Continue navegando