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 5 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

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

23/11/2020 Teste: Atividade para avaliação - Semana 6
https://cursos.univesp.br/courses/3181/quizzes/13240/take 1/5
1 ptsPergunta 1
Posição de memória;
Área de Código;
Memória Estática;
Memória dinâmica.
Área de Dados;
Em um programa fonte, uma variável declarada possui um identificador, um conteúdo e uma
localização, que durante a execução a memória alocada será caracterizada como:
respectivamente:
1 ptsPergunta 2
Alocação de valor e alocação de instrução;
Alocação otimizada e alocação dinâmica;
Alocação otimizada e não otimizada;
Alocação dinâmica e alocação estática;
Alocação estática e alocação dinâmica;
Quanto a alocação de memória para dados, pode ser realizada na fase de compilação do
programa fonte ou na fase execução. Estes tipos de alocação são respectivamente:
1 ptsPergunta 3
São estruturas simples de linguagem da área de dados;
Alocados na área de dados para armazenar informações em tempo de execução
São instruções que surgem do gerenciamento de memória da área de dados;
Um programa fonte possui instruções executáveis que são carregadas na memória em tempo
de execução. Esta área de memória é chamada área de código. Em relação aos
subprogramas é correto afirmar:
23/11/2020 Teste: Atividade para avaliação - Semana 6
https://cursos.univesp.br/courses/3181/quizzes/13240/take 2/5
São carregados em áreas de dados, para armazenamento das informações;
São ativados e desativados em tempo de execução;
1 ptsPergunta 4
A memória alocada para variáveis é feita em tempo de execução do programa;
Não poderá ocorrer para variáveis locais;
A memória alocada para variáveis não locais poderá ser acessada por um subprograma através da passagem de
parâmetro por valor;
A alocação poderá ser estática;
São alocadas na área de código;
Em relação a alocação de memória dinâmica de memória para armazenamento de
informações É correto afirmar:
1 ptsPergunta 5
É o tipo mais simples de ambiente;
Cada subprograma possui um único registro de ativação alocado em tempo de execução.
As variáveis locais dos subprogramas são alocadas dinamicamente;
Não há separação entre área de dados e área de código.
Os valores das variáveis locais são modificados;
A alocação estática de memória possui vantagens, pois não há necessidade de código de
gerenciamento de memória durante a execução. Dentre as vantagens, é correto afirmar:
1 ptsPergunta 6
Considere a linhas de código fonte em Java abaixo:
 
public class Fatorial {
 public int fat (int n) {
23/11/2020 Teste: Atividade para avaliação - Semana 6
https://cursos.univesp.br/courses/3181/quizzes/13240/take 3/5
Variáveis locais recebem as mesmas posições de memória a cada alocação;
Um mesmo subprograma tenha vários registros de ativação;
A área de dados tenha tamanho variável;
A pilha e a área de heap tenham tamanhos fixos.
A área de código tenha tamanho variável;
 if (n==0)
 return 1;
 else
 return (n*fat(n-1));
 }
 public static void main(String[] args) {
 // TODO Auto-generated method stub
 Fatorial x = new Fatorial();
 System.out.println("Fatorial: "+ x.fat(4));
 }
}
 
A classe de objetos Fatorial, possui um método fat, que calcula o fatorial de inteiro n, de forma
recursiva. Este método, é um subprograma que deverá ter sua alocação em memória de pilha.
Assim, ambientes de execução baseados em pilhas permitem que:
1 ptsPergunta 7
Após a execução os registros são armazenados;
A ordem das chamadas é determinada pela execução do programa;
Os registros de ativação são destruídos quando desempilhados;
Os registros de ativação são criados no momento do empilhamento;
Os registros de ativação possuem informações sobre: o estado do contador de programa; uma área de dados para
variáveis locais; uma área para parâmetros e o controle da pilha;
Quando um subprograma é implementado de forma recursiva, a alocação em memória de
pilha é realizada pelo empilhar e desempilhar registros de ativação. Sobre estes registros de
ativação é INCORRETO afirmar:
23/11/2020 Teste: Atividade para avaliação - Semana 6
https://cursos.univesp.br/courses/3181/quizzes/13240/take 4/5
1 ptsPergunta 8
É uma variável local que recebe o valor na passagem de parâmetro e usará diferentes posições de memória
quando do empilhamento do método recursivo;
É uma variável local que recebe uma referência na passagem de parâmetro e usará diferentes posições de
memória quando do empilhamento do método recursivo;
É uma variável local que recebe uma referência na passagem de parâmetro e usará a mesma posição de memória
quando do empilhamento do método recursivo;
É uma variável global que recebe o valor na passagem de parâmetro e usará diferentes posições de memória
quando do empilhamento do método recursivo;
É uma variável global que recebe uma referência na passagem de parâmetro e usará diferentes posições de
memória quando do empilhamento do método recursivo;
Considere a linhas de código fonte em Java abaixo:
 
public class Fatorial {
 public int fat (int n) {
 if (n==0)
 return 1;
 else
 return (n*fat(n-1));
 }
 public static void main(String[] args) {
 // TODO Auto-generated method stub
 Fatorial x = new Fatorial();
 System.out.println("Fatorial: "+ x.fat(4));
 }
}
 
A variável n do método fat(n), recebe o valor 4 do método principal. Em relação a alocação de
memória desta variável, podemos afirmar que:
23/11/2020 Teste: Atividade para avaliação - Semana 6
https://cursos.univesp.br/courses/3181/quizzes/13240/take 5/5
Nenhum dado novo para salvar. Última verificação às 20:36 
1 ptsPergunta 9
Em cada instância da função, só são diretamente acessíveis os parâmetros criados para esta instância, não sendo
diretamente acessíveis os parâmetros de outras instâncias.
Em cada instância da função, só são diretamente acessíveis os parâmetros criados para outra instância, não sendo
diretamente acessíveis os parâmetros de mesma instância.
Uma estrutura em árvore, chamada árvore de ativação é criada, definindo a ordem de empilhamento e
desempilhamento das instruções
O tempo de vida de uma ativação, refere-se ao ciclo empilhar e desempilhar dos registros de ativação.
Cada vez que uma função é chamada de forma recursiva, é alojado e guardado uma cópia dos seus parâmetros de
forma a não perder os valores dos parâmetros das chamadas anteriores.
Na alocação de memória das variáveis de um subprograma/função recursivo NÃO é correto
afirmar:
1 ptsPergunta 10
A instrução if C<D then X≔Y+Z else X≔Y-Z será armazenada em uma área de memória de código em tempo de
execução a partir de código intermediário e respectiva tabela de símbolos;
Na instrução if C<D then X≔Y+Z else X≔Y-Z as variáveis C, D serão armazenada em uma área de memória de
código junto da instrução if e as variáveis , X, Y e Z em uma área de dados;
Na instrução if C<D then X≔Y+Z else X≔Y-Z as variáveis C, D, X, Y e Z serão armazenada em uma área de
memória de código alocada dinamicamente;
Na instrução if C<D then X≔Y+Z else X≔Y-Z as variáveis C, D, X, Y e Z serão armazenada em uma área de
memória de código junto da instrução if;
Na instrução if C<D then X≔Y+Z else X≔Y-Z as variáveis C, D, X, Y e Z serão armazenada em uma área de
memória de código alocada estaticamente;
Considere a seguinte expressão: . Podemos afirmar
que:
Enviar teste

Continue navegando