Logo Passei Direto
Buscar

AO2_ Paradigmas de Linguagens de Programação

User badge image
test1msof

em

Ferramentas de estudo

Mês do Cliente Passei Direto

Quer receber 70% de desconto para assinar o PasseIA?

Questões resolvidas

Leia o texto a seguir: “A World Wide Web é mantida por uma eclética coleção de linguagens, que vão desde linguagens de marcação, como HTML, que não é de programação, até linguagens de programação de propósito geral, como Java. Dada a necessidade universal de conteúdo dinâmico na Web, alguma capacidade de computação geralmente é incluída na tecnologia de apresentação de conteúdo. Essa funcionalidade pode ser fornecida por código de programação embarcado em um documento HTML. Tal código é normalmente escrito com uma linguagem de scripting, como JavaScript ou PHP (Tatroe, 2013).” Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018.
Considerando as informações apresentadas, assinale a opção correta:
HTML é dispensável na Web, podendo ser substituída por JavaScript ou PHP.
Java é uma linguagem de scripting.
HTML não é usada para escrever algoritmos.

Leia o texto a seguir: “Um ambiente de programação é a coleção de ferramentas usadas no desenvolvimento de software. Essa coleção pode consistir em apenas um sistema de arquivos, um editor de textos, um ligador e um compilador. Ou pode incluir uma grande coleção de ferramentas integradas, cada uma acessada por meio de uma interface de usuário uniforme. Neste último caso, o desenvolvimento e a manutenção de software são enormemente melhorados. Logo, as características de uma linguagem de programação não são a única medida da capacidade de desenvolvimento de um sistema.” Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018.
Considerando o trecho acima, avalie as afirmacoes abaixo: I. A geração automática de códigos é um recurso que pode ser oferecido pelo ambiente de programação. II. Cada ambiente de programação é exclusivo para uma única linguagem de programação. III. É possível desenvolver em múltiplas linguagens utilizando o mesmo ambiente. IV. Cada linguagem possui um ambiente nativo que deverá ser obrigatoriamente utilizado em seu desenvolvimento. É correto o que se afirma em:
I e IV, apenas.
I, III e IV, apenas.
II e IV, apenas.
I, II e IV, apenas.
I e III, apenas.

Leia o texto a seguir: “Um programa grande normalmente é escrito por muitos desenvolvedores, que trabalham de maneira independente, talvez até em localizações geográficas diferentes. Isso requer que as unidades lógicas do programa sejam independentes, mas que ainda seja possível trabalhar em conjunto. Além disso, cria um problema de nomeação: como desenvolvedores que trabalham independentemente criam nomes para suas variáveis, métodos e classes sem acidentalmente usar nomes já utilizados por outro programador em uma parte diferente do mesmo sistema de software?” Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018.
Assinale a alternativa correta:
O problema descrito pode ser resolvido pela adoção da programação modular.
Para evitar o problema descrito, programadores não devem trabalhar paralelamente em módulos distintos.
A programação modular exige atenção ao escopo de classes, variáveis e funções.
O problema descrito é exclusivo da programação orientada a objeto.
A compilação independente de cada módulo resolve o problema descrito.

Leia o texto a seguir: “Considerando as informações apresentadas, assinale a opção correta: Observe a tabela a seguir: Critérios de avaliação de linguagens e as características que os afetam. Critérios Característica Legibilidade Facilidade de escrita Confiabilidade Simplicidade • • • Ortogonalidade • • • Tipos de dados • • • Projeto de sintaxe • • • Suporte para abstração • • Expressividade • •” Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018.
Considerando as afirmações sobre critérios de avaliação de linguagens, avalie as afirmações abaixo: I. Linguagens simples não são confiáveis, pois são as estruturas que garantem o funcionamento adequado do programa que adicionam complexidade à linguagem. II. Linguagens com alta legibilidade permitem que uma pessoa não familiarizada com um projeto de software consiga compreender facilmente o que seu código faz. III. Linguagens com facilidade de escrita ajudam a reduzir o custo do projeto, devido à economia de horas de trabalho e prevenção de erros. É correto o que se afirma em:
I e II, apenas.
I, apenas.
I e III, apenas.
III, apenas.
II e III, apenas.

Leia o texto a seguir: “Algumas vezes, um implementador pode fornecer tanto implementações compiladas quanto interpretadas para uma linguagem. Nesses casos, o interpretador é usado para desenvolver e depurar programas. Então, após um estado (relativamente) livre de erros ser alcançado, os programas são compilados para aumentar sua velocidade de execução.” Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018.
Considerando o trecho acima, avalie as asserções abaixo e a relação proposta entre elas. I. É mais rápido testar programas em fase de desenvolvimento se eles forem compilados. PORQUE II. Programas compilados passam por uma série de otimizações e executam em binário nativo. Assinale a alternativa com a relação correta entre as asserções I e II:
As asserções I e II são falsas.
A asserção I é verdadeira e a asserção II é falsa.
A asserção II é verdadeira e a asserção I é falsa.
As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.
As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.

Considerando o trecho acima, avalie as seguintes asserções e a relação proposta entre elas:
Assinale a alternativa com a relação correta entre as asserções I e II:
I. As linguagens assembly possuem excelente desempenho computacional.
II. As linguagens assembly são mais difíceis de compreender do que as linguagens consideradas de alto nível.
As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.
As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.
A asserção I é falsa e a asserção II é verdadeira.
A asserção I é verdadeira e a asserção II é falsa.
Ambas as asserções são falsas.

Leia o texto a seguir: "Uma classe C++ pode conter tanto entidades ocultas quanto visíveis (ocultas dos clientes ou visíveis para os clientes da classe). Entidades ocultas são colocadas em uma cláusula private e entidades visíveis, ou públicas, aparecem em uma cláusula public. Logo, a cláusula public descreve a interface para instâncias da classe."
Avalie as seguintes asserções e a relação proposta entre elas:
I. As cláusulas private e public são úteis para implementar, respectivamente, os princípios do encapsulamento e abstração.
II. Idealmente, atributos devem ser privados e métodos devem ser públicos.
A+
A
A-

Leia o texto a seguir: "As primeiras implementações de Java eram todas híbridas. Seu formato intermediário, chamado de bytecode, fornece portabilidade para qualquer máquina que tenha um interpretador de bytecodes e um sistema de tempo de execução associado. Juntos, eles são chamados de Máquina Virtual Java. Existem agora sistemas que traduzem bytecodes Java em código de máquina, de forma a possibilitar uma execução mais rápida."
Considerando o trecho acima, avalie as afirmacoes abaixo:
I. O código Java é interpretado pela Máquina Virtual, gerando como resultado o bytecode.
II. O bytecode é interpretado pela Máquina Virtual, sendo traduzido para instruções nativas.
III. O código Java é compilado pelo JIT, gerando bytecode para ser interpretado pela Máquina Virtual.
IV. O bytecode é compilado pelo JIT, gerando código de máquina nativo.
A+
A
A-

Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

Leia o texto a seguir: “A World Wide Web é mantida por uma eclética coleção de linguagens, que vão desde linguagens de marcação, como HTML, que não é de programação, até linguagens de programação de propósito geral, como Java. Dada a necessidade universal de conteúdo dinâmico na Web, alguma capacidade de computação geralmente é incluída na tecnologia de apresentação de conteúdo. Essa funcionalidade pode ser fornecida por código de programação embarcado em um documento HTML. Tal código é normalmente escrito com uma linguagem de scripting, como JavaScript ou PHP (Tatroe, 2013).” Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018.
Considerando as informações apresentadas, assinale a opção correta:
HTML é dispensável na Web, podendo ser substituída por JavaScript ou PHP.
Java é uma linguagem de scripting.
HTML não é usada para escrever algoritmos.

Leia o texto a seguir: “Um ambiente de programação é a coleção de ferramentas usadas no desenvolvimento de software. Essa coleção pode consistir em apenas um sistema de arquivos, um editor de textos, um ligador e um compilador. Ou pode incluir uma grande coleção de ferramentas integradas, cada uma acessada por meio de uma interface de usuário uniforme. Neste último caso, o desenvolvimento e a manutenção de software são enormemente melhorados. Logo, as características de uma linguagem de programação não são a única medida da capacidade de desenvolvimento de um sistema.” Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018.
Considerando o trecho acima, avalie as afirmacoes abaixo: I. A geração automática de códigos é um recurso que pode ser oferecido pelo ambiente de programação. II. Cada ambiente de programação é exclusivo para uma única linguagem de programação. III. É possível desenvolver em múltiplas linguagens utilizando o mesmo ambiente. IV. Cada linguagem possui um ambiente nativo que deverá ser obrigatoriamente utilizado em seu desenvolvimento. É correto o que se afirma em:
I e IV, apenas.
I, III e IV, apenas.
II e IV, apenas.
I, II e IV, apenas.
I e III, apenas.

Leia o texto a seguir: “Um programa grande normalmente é escrito por muitos desenvolvedores, que trabalham de maneira independente, talvez até em localizações geográficas diferentes. Isso requer que as unidades lógicas do programa sejam independentes, mas que ainda seja possível trabalhar em conjunto. Além disso, cria um problema de nomeação: como desenvolvedores que trabalham independentemente criam nomes para suas variáveis, métodos e classes sem acidentalmente usar nomes já utilizados por outro programador em uma parte diferente do mesmo sistema de software?” Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018.
Assinale a alternativa correta:
O problema descrito pode ser resolvido pela adoção da programação modular.
Para evitar o problema descrito, programadores não devem trabalhar paralelamente em módulos distintos.
A programação modular exige atenção ao escopo de classes, variáveis e funções.
O problema descrito é exclusivo da programação orientada a objeto.
A compilação independente de cada módulo resolve o problema descrito.

Leia o texto a seguir: “Considerando as informações apresentadas, assinale a opção correta: Observe a tabela a seguir: Critérios de avaliação de linguagens e as características que os afetam. Critérios Característica Legibilidade Facilidade de escrita Confiabilidade Simplicidade • • • Ortogonalidade • • • Tipos de dados • • • Projeto de sintaxe • • • Suporte para abstração • • Expressividade • •” Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018.
Considerando as afirmações sobre critérios de avaliação de linguagens, avalie as afirmações abaixo: I. Linguagens simples não são confiáveis, pois são as estruturas que garantem o funcionamento adequado do programa que adicionam complexidade à linguagem. II. Linguagens com alta legibilidade permitem que uma pessoa não familiarizada com um projeto de software consiga compreender facilmente o que seu código faz. III. Linguagens com facilidade de escrita ajudam a reduzir o custo do projeto, devido à economia de horas de trabalho e prevenção de erros. É correto o que se afirma em:
I e II, apenas.
I, apenas.
I e III, apenas.
III, apenas.
II e III, apenas.

Leia o texto a seguir: “Algumas vezes, um implementador pode fornecer tanto implementações compiladas quanto interpretadas para uma linguagem. Nesses casos, o interpretador é usado para desenvolver e depurar programas. Então, após um estado (relativamente) livre de erros ser alcançado, os programas são compilados para aumentar sua velocidade de execução.” Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman, 2018.
Considerando o trecho acima, avalie as asserções abaixo e a relação proposta entre elas. I. É mais rápido testar programas em fase de desenvolvimento se eles forem compilados. PORQUE II. Programas compilados passam por uma série de otimizações e executam em binário nativo. Assinale a alternativa com a relação correta entre as asserções I e II:
As asserções I e II são falsas.
A asserção I é verdadeira e a asserção II é falsa.
A asserção II é verdadeira e a asserção I é falsa.
As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.
As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.

Considerando o trecho acima, avalie as seguintes asserções e a relação proposta entre elas:
Assinale a alternativa com a relação correta entre as asserções I e II:
I. As linguagens assembly possuem excelente desempenho computacional.
II. As linguagens assembly são mais difíceis de compreender do que as linguagens consideradas de alto nível.
As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.
As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.
A asserção I é falsa e a asserção II é verdadeira.
A asserção I é verdadeira e a asserção II é falsa.
Ambas as asserções são falsas.

Leia o texto a seguir: "Uma classe C++ pode conter tanto entidades ocultas quanto visíveis (ocultas dos clientes ou visíveis para os clientes da classe). Entidades ocultas são colocadas em uma cláusula private e entidades visíveis, ou públicas, aparecem em uma cláusula public. Logo, a cláusula public descreve a interface para instâncias da classe."
Avalie as seguintes asserções e a relação proposta entre elas:
I. As cláusulas private e public são úteis para implementar, respectivamente, os princípios do encapsulamento e abstração.
II. Idealmente, atributos devem ser privados e métodos devem ser públicos.
A+
A
A-

Leia o texto a seguir: "As primeiras implementações de Java eram todas híbridas. Seu formato intermediário, chamado de bytecode, fornece portabilidade para qualquer máquina que tenha um interpretador de bytecodes e um sistema de tempo de execução associado. Juntos, eles são chamados de Máquina Virtual Java. Existem agora sistemas que traduzem bytecodes Java em código de máquina, de forma a possibilitar uma execução mais rápida."
Considerando o trecho acima, avalie as afirmacoes abaixo:
I. O código Java é interpretado pela Máquina Virtual, gerando como resultado o bytecode.
II. O bytecode é interpretado pela Máquina Virtual, sendo traduzido para instruções nativas.
III. O código Java é compilado pelo JIT, gerando bytecode para ser interpretado pela Máquina Virtual.
IV. O bytecode é compilado pelo JIT, gerando código de máquina nativo.
A+
A
A-

Prévia do material em texto

AO2
Entrega 16 jun em 23:59
Pontos 6
Perguntas 10
Disponível 8 jun em 0:00 - 16 jun em 23:59
Limite de tempo Nenhum
Tentativas permitidas 2
Instruções
Este teste não está mais disponível, pois o curso foi concluído.
Histórico de tentativas
Tentativa Tempo Pontuação
MAIS RECENTE Tentativa 1 13 minutos 5,4 de 6
Pontuação desta tentativa: 5,4 de 6
Enviado 8 jun em 16:58
Esta tentativa levou 13 minutos.

Pergunta 1
0,6 / 0,6 pts
 HTML é uma linguagem de scripting.
 HTML garante o dinamismo do conteúdo Web.
Importante:
Caso você esteja realizando a atividade através do aplicativo "Canvas Student", é necessário que
você clique em "FAZER O QUESTIONÁRIO", no final da página.
Leia o texto a seguir:
“A World Wide Web é mantida por uma eclética coleção de linguagens, que vão desde linguagens de
marcação, como HTML, que não é de programação, até linguagens de programação de propósito
geral, como Java. Dada a necessidade universal de conteúdo dinâmico na Web, alguma capacidade
de computação geralmente é incluída na tecnologia de apresentação de conteúdo. Essa
funcionalidade pode ser fornecida por código de programação embarcado em um documento HTML.
Tal código é normalmente escrito com uma linguagem de scripting, como JavaScript ou PHP (Tatroe,
2013).”
Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman,
2018.
Considerando as informações apresentadas, assinale a opção correta:
A+
A
A-
https://famonline.instructure.com/courses/35428/quizzes/183440/history?version=1
 HTML é dispensável na Web, podendo ser substituída por JavaScript ou PHP.
 Java é uma linguagem de scripting.
Correto!
 HTML não é usada para escrever algoritmos.
Alternativa correta, pois o HTML não é uma linguagem de programação propriamente dita, mas uma
linguagem de marcação. Ou seja, ela é utilizada para criar a estrutura de documentos. Portanto, ela
não pode ser utilizada para escrever algoritmos. Sem a possibilidade de escrever algoritmos, ela não
é capaz de garantir sozinha um dinamismo.

Pergunta 2
0,6 / 0,6 pts
 I e IV, apenas.
 I, III e IV, apenas.
 II e IV, apenas.
 I, II e IV, apenas.
Correto!
 I e III, apenas.
Alternativa correta.
A afirmativa I é verdadeira, pois algumas IDEs possuem recursos de geração automática de código.
Isso inclui a criação automática da estrutura principal de um programa ao criarmos um novo arquivo
em branco, a geração automática de funções ou métodos padrão, como getters e setters para
Leia o texto a seguir:
“Um ambiente de programação é a coleção de ferramentas usadas no desenvolvimento de software.
Essa coleção pode consistir em apenas um sistema de arquivos, um editor de textos, um ligador e
um compilador. Ou pode incluir uma grande coleção de ferramentas integradas, cada uma acessada
por meio de uma interface de usuário uniforme. Neste último caso, o desenvolvimento e a
manutenção de software são enormemente melhorados. Logo, as características de uma linguagem
de programação não são a única medida da capacidade de desenvolvimento de um sistema.”
Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman,
2018.
Considerando o trecho acima, avalie as afirmações abaixo:
I. A geração automática de códigos é um recurso que pode ser oferecido pelo ambiente de
programação.
II. Cada ambiente de programação é exclusivo para uma única linguagem de programação.
III. É possível desenvolver em múltiplas linguagens utilizando o mesmo ambiente.
IV. Cada linguagem possui um ambiente nativo que deverá ser obrigatoriamente utilizado em seu
desenvolvimento.
É correto o que se afirma em:
A+
A
A-
atributos de classes, e até mesmo a geração do código para criar uma interface gráfica montada
através de cliques do mouse.
 
A afirmativa III é verdadeira, pois um mesmo ambiente pode atender a múltiplas linguagens, e em
diferentes níveis: um pacote de compiladores pode oferecer uma forma unificada de compilar
diferentes linguagens, uma mesma IDE pode oferecer recursos de edição para diferentes
linguagens, um ambiente pode suportar toda uma família de linguagens que compartilhem uma
plataforma (como a família .NET), entre outros – sendo assim, ambientes de programação não são
necessariamente exclusivos para uma mesma linguagem.
As afirmativas II e IV são falsas, pois, geralmente, o desenvolvedor tem um ambiente completo
fornecido por um fabricante, mas não é obrigado a utilizar e tem a opção de optar por diferentes
IDEs, compiladores, entre outros.

Pergunta 3
0,6 / 0,6 pts
 
Ela gera programas em uma linguagem intermediária, como um bytecode, e em seguida executa esse programa.
 Ela utiliza inteligência artificial (IA) para gerar automaticamente programas em Lisp.
 Ela compila o código Lisp, gerando um código binário nativo ao final que pode ser executado múltiplas vezes.
Correto!
 
Ela traduz o código Lisp para binário nativo em tempo de execução. Essa tradução é executada novamente toda
vez que o programa é executado.
 
Ela gera programas em uma linguagem intermediária, e na hora da primeira execução ela compila essa linguagem
intermediária para binário nativo.
Alternativa correta, pois a implementação de EVAL funciona como um interpretador Lisp. No
processo de interpretação, o programa escrito em uma linguagem de alto nível é interpretado por
outro programa, que irá executar instruções nativas da máquina. O resultado da interpretação não é
Leia o texto a seguir:
“McCarthy desenvolveu de maneira bem-sucedida uma função universal que poderia avaliar
qualquer outra função. Ela foi chamada EVAL e tinha a forma de uma expressão. Dois
pesquisadores do Projeto IA que estavam desenvolvendo Lisp, Stephen B. Russell e Daniel J.
Edwards, deram-se conta de que uma implementação de EVAL poderia servir como um interpretador
Lisp e prontamente construíram tal implementação.”
Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman,
2018.
Assinale a alternativa correta sobre o provável funcionamento da implementação de EVAL:
A+
A
A-
salvo, e toda a “tradução” da linguagem de alto nível para linguagem nativa é refeito a cada
execução.
Esse procedimento é o oposto da compilação, onde o compilador traduz o programa original para
binário nativo uma única vez.

Pergunta 4
0,6 / 0,6 pts
 Programação orientada a objeto.
 Programação orientada a eventos.
 Programação concorrente.
Correto!
 Paradigma funcional.
 Paradigma procedural.
Alternativa correta, pois o paradigma funcional é caracterizado pela ausência de estado. Os
programas correspondem a coleções de definições matematicamente rigorosas de funções,
garantindo um alto grau de determinismo.

Pergunta 5
0,6 / 0,6 pts
Leia o texto a seguir:
“Uma das características fundamentais dos programas escritos em linguagens imperativas é o fato
de terem estado, o qual muda ao longo do processo de execução. Esse estado é representado pelas
variáveis do programa. O autor e todos os leitores do programa devem entender os usos de suas
variáveis e compreender como o estado do programa muda durante a execução. Para um programa
grande, é uma tarefa intimidante.”
Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman,
2018.
Assinale a alternativa correspondente ao paradigma que não possui estado:
Leia o texto a seguir:
“Um programa grande normalmente é escrito por muitos desenvolvedores, que trabalham de
maneira independente, talvez até em localizações geográficas diferentes. Isso requer que as
unidades lógicas do programa sejam independentes, mas que ainda seja possível trabalhar em
conjunto. Além disso, cria um problema de nomeação: como desenvolvedores que trabalham
independentemente criam nomes para suas variáveis, métodos e classes sem acidentalmente usar
nomes já utilizados por outro programador em uma parte diferente do mesmo sistema de software?”
Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman,
2018.
A+
A
A-
 O problemadescrito pode ser resolvido pela adoção da programação modular.
 Para evitar o problema descrito, programadores não devem trabalhar paralelamente em módulos distintos.
Correto!
 A programação modular exige atenção ao escopo de classes, variáveis e funções.
 O problema descrito é exclusivo da programação orientada a objeto.
 A compilação independente de cada módulo resolve o problema descrito.
Alternativa correta, pois o escopo de uma estrutura diz respeito a quais partes do código ela é visível
ou acessível – por exemplo, uma variável criada dentro de uma função geralmente não é acessível
fora dela. Portanto, variáveis com o mesmo nome dentro de diferentes funções não terão
interferência entre si. Porém, dentro da mesma função haveria problema.

Pergunta 6
0,6 / 0,6 pts
Considerando as informações apresentadas, assinale a opção correta:
Observe a tabela a seguir:
 
Critérios de avaliação de linguagens e as características que os afetam
 
 Critérios
Característica Legibilidade
Facilidade de
escrita
Confiabilidade
Simplicidade • • •
Ortogonalidade • • •
Tipos de dados • • •
Projeto de
sintaxe
• • •
Suporte para
abstração
 • •
Expressividade • •
A+
A
A-
 I e II, apenas.
 I, apenas.
 I e III, apenas.
 III, apenas.
Correto!
 II e III, apenas.
Alternativa correta.
A afirmativa I é falsa, pois a legibilidade diz respeito a quão fácil é compreender o funcionamento de
um código através de sua leitura. Portanto, linguagens com boa legibilidade são desejáveis porque
uma primeira leitura do código já trará bastante informação sobre seu funcionamento.
 
A afirmativa II é verdadeira, pois a facilidade de escrita diz respeito a quão fácil é escrever códigos
novos na linguagem. Essa característica permite um desenvolvimento mais rápido de novos
programas, bem como ajuda a evitar erros por parte dos programadores, já que eles sabem
exatamente o que estão escrevendo.
 
Verificação de
tipos
 •
Tratamento de
exceções
 •
Apelidos
restritos
 •
 
Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman,
2018.
Considerando as afirmações sobre critérios de avaliação de linguagens, avalie as afirmações abaixo:
I. Linguagens simples não são confiáveis, pois são as estruturas que garantem o funcionamento
adequado do programa que adicionam complexidade à linguagem.
II. Linguagens com alta legibilidade permitem que uma pessoa não familiarizada com um projeto de
software consiga compreender facilmente o que seu código faz.
III. Linguagens com facilidade de escrita ajudam a reduzir o custo do projeto, devido à economia de
horas de trabalho e prevenção de erros.
É correto o que se afirma em:
A+
A
A-
A afirmativa III é verdadeira, pois a confiabilidade é influencia uma série de características diferentes.
A simplicidade de uma linguagem, que é uma das principais características tanto em linguagens com
boa legibilidade quanto em linguagens com facilidade de escrita, também é importante para a
confiabilidade: linguagens muito complexas se tornam difíceis de ler e escrever, aumentando a
chance do programador cometer erros.

Pergunta 7
0,6 / 0,6 pts
Correto!
 A asserção I é falsa e a asserção II é verdadeira.
 As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.
 As asserções I e II são falsas.
 As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.
 A asserção I é verdadeira e a asserção II é falsa.
Alternativa correta, pois a asserção I é uma proposição falsa, e a asserção II é uma proposição
verdadeira.
A asserção I é falsa, pois os durante a etapa de desenvolvimento, frequentemente precisamos
validar modificações pontuais. Em linguagens compiladas, ao realizar uma modificação pontual é
necessário recompilar o programa inteiro, ou ao menos um módulo. Isso faz com que o processo de
desenvolvimento se torne bastante lento, visto que o processo de compilação consome tempo. Por
isso algumas linguagens oferecem o recurso descrito no texto: o programador pode realizar diversos
testes pontuais sem precisar recompilar o programa, e uma vez que esteja satisfeito com o
resultado, pode compila-lo uma única vez, gerando um binário otimizado para ser disponibilizado
para os usuários.
Leia o texto a seguir:
“Algumas vezes, um implementador pode fornecer tanto implementações compiladas quanto
interpretadas para uma linguagem. Nesses casos, o interpretador é usado para desenvolver e
depurar programas. Então, após um estado (relativamente) livre de erros ser alcançado, os
programas são compilados para aumentar sua velocidade de execução.”
Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman,
2018.
Considerando o trecho acima, avalie as asserções abaixo e a relação proposta entre elas.
I. É mais rápido testar programas em fase de desenvolvimento se eles forem compilados.
PORQUE
II. Programas compilados passam por uma série de otimizações e executam em binário nativo.
Assinale a alternativa com a relação correta entre as asserções I e II:
A+
A
A-
A asserção II é verdadeira, pois os programas compilados, de fato, passam por otimizações (em
vários níveis diferentes) que melhoram seu desempenho. Além disso, executar diretamente em
linguagem nativa de máquina tende a tornar os programas mais rápidos do que processos de
interpretação.

Pergunta 8
0,6 / 0,6 pts
 As asserções I e II são falsas.
 A asserção I é verdadeira e a asserção II é falsa.
 A asserção II é verdadeira e a asserção I é falsa.
 As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.
Correto!
 As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.
Alternativa correta, pois as asserções I e II são verdadeiras, mas a II não é uma justificativa correta
da I. Ao invés disso ambas possuem uma justificativa em comum: a linguagem assembly é uma
linguagem bastante próxima da máquina, e suas instruções correspondem diretamente a instruções
nativas do hardware. Essa proximidade com o hardware permite a escrita de programas com um
desempenho computacional inatingível por linguagens ditas de “alto nível”, dado o nível de controle
que o programador terá do que exatamente a máquina fará. Por outro lado, essa proximidade
também significa que não existem estruturas de controle e estruturas de dados para auxiliar no
Leia o texto a seguir:
“A simplicidade em linguagens pode, é claro, ser levada ao extremo. Por exemplo, a forma e o
significado da maioria das sentenças de uma linguagem assembly são modelos de simplicidade,
como você pode ver quando considera as sentenças que aparecem na próxima seção. Essa
simplicidade extrema, entretanto, torna menos legíveis os programas escritos em linguagem
assembly. Devido à falta de sentenças de controle mais complexas, a estrutura de um programa é
menos óbvia; como as sentenças são simples, mais delas são necessárias do que em programas
equivalentes escritos em uma linguagem de alto nível.”
Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman,
2018.
Considerando o trecho acima, avalie as seguintes asserções e a relação proposta entre elas:
I. As linguagens assembly possuem excelente desempenho computacional.
PORQUE
II. As linguagens assembly são mais difíceis de compreender do que as linguagens consideradas de
alto nível.
Assinale a alternativa com a relação correta entre as asserções I e II:
A+
A
A-
desenvolvimento dos programas ou automatizar parte da tarefa de programação, além de exigir do
programador um conhecimento muito grande da arquitetura do hardware.

Pergunta 9
0 / 0,6 pts
Resposta correta
 As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.
 As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.
 A asserção I é falsa e a asserção II é verdadeira.
Você respondeu
 A asserção I é verdadeira e a asserção II é falsa.
 Ambas as asserções são falsas.
Alternativa incorreta.A asserção I é verdadeira, pois o princípio do encapsulamento diz que os
atributos de uma classe devem ser acessíveis apenas pela própria classe. Dessa maneira, a
cláusula “private” em C++ pode ser utilizada para ocultar os atributos de uma classe, reforçando este
princípio. O princípio da abstração defende que a complexidade de uma classe deve ficar “oculta”
dentro de seus métodos, que por sua vez devem constituir uma interface simples de ser utilizada.
Como o próprio texto diz, a cláusula “public” pode ser utilizada para descrever a interface da classe.
Podemos utilizá-la para tornar os métodos públicos, criando a interface defendida pelo princípio da
abstração. A asserção II é verdadeira porque descreve um dos padrões mais comuns para assegurar
o respeito aos princípios do encapsulamento e abstração. A asserção I é verdadeira e é justificada
pela II porque ela descreve uma forma de usar as cláusulas para implementar os padrões descritos.

Leia o texto a seguir:
“Uma classe C++ pode conter tanto entidades ocultas quanto visíveis (ocultas dos clientes ou
visíveis para os clientes da classe). Entidades ocultas são colocadas em uma cláusula private e
entidades visíveis, ou públicas, aparecem em uma cláusula public. Logo, a cláusula public descreve
a interface para instâncias da classe.”
Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman,
2018.
Avalie as seguintes asserções e a relação proposta entre elas:
I. As cláusulas private e public são úteis para implementar, respectivamente, os princípios do
encapsulamento e abstração.
PORQUE
II. Idealmente, atributos devem ser privados e métodos devem ser públicos.
Assinale a alternativa com a relação correta entre as asserções I e II:
A+
A
A-
Pergunta 10
0,6 / 0,6 pts
 I e II, apenas.
 I e IV, apenas.
Correto!
 II e IV, apenas.
 III e IV, apenas.
 II e III, apenas.
Alternativa correta.
A afirmativa I é falsa, pois o código Java é traduzido uma vez para bytecode, um código binário
“fictício”. Esse processo corresponde a uma compilação, porém, tendo como alvo a Máquina Virtual,
e não o binário nativo. 
A afirmativa II é verdadeira, pois uma das formas de lidar com o bytecode é interpretando-o, um
processo realizado pela Máquina Virtual Java. Esse processo é menos eficiente e deve ser repetido
todas as vezes que o programa for executado.
A afirmativa III é falsa, pois o código Java é compilado para bytecode, o qual pode ser interpretado
pela Máquina Virtual. Alternativamente, o bytecode (e não o código Java original) atualmente é
compilado pelo compilador JIT (Just In Time) em sua primeira execução em uma máquina, gerando
um código binário nativo.
A afirmativa IV é verdadeira, pois, alternativamente, o programa pode passar por uma segunda
compilação, onde o bytecode é traduzido permanentemente para código nativo de máquina. Isso é
Leia o texto a seguir:
“As primeiras implementações de Java eram todas híbridas. Seu formato intermediário, chamado de
bytecode, fornece portabilidade para qualquer máquina que tenha um interpretador de bytecodes e
um sistema de tempo de execução associado. Juntos, eles são chamados de Máquina Virtual Java.
Existem agora sistemas que traduzem bytecodes Java em código de máquina, de forma a
possibilitar uma execução mais rápida.”
Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed. Porto Alegre: Bookman,
2018.
Considerando o trecho acima, avalie as afirmações abaixo:
I. O código Java é interpretado pela Máquina Virtual, gerando como resultado o bytecode.
II. O bytecode é interpretado pela Máquina Virtual, sendo traduzido para instruções nativas.
III. O código Java é compilado pelo JIT, gerando bytecode para ser interpretado pela Máquina
Virtual.
IV. O bytecode é compilado pelo JIT, gerando código de máquina nativo.
É correto o que se afirma em:
A+
A
A-
realizado pelo compilador JIT (Just-In-Time), que executará na primeira execução do programa e irá
gerar código nativo e otimizado especificamente para a plataforma onde ele está executando.
Pontuação do teste: 5,4 de 6
A+
A
A-

Mais conteúdos dessa disciplina