Baixe o app para aproveitar ainda mais
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.
Compartilhar