Buscar

AO2 Substitutiva_ Paradigmas de Linguagens de Programação correta

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

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 6, do total de 15 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

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 9, do total de 15 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

Prévia do material em texto

AO2 Substitutiva
Entrega 29 jun em 23:59 Pontos 6 Perguntas 10
Disponível 28 jun em 0:00 - 29 jun em 23:59 Limite de tempo Nenhum
Instruções
Histórico de tentativas
Tentativa Tempo Pontuação
MAIS RECENTE Tentativa 1 9 minutos 6 de 6
 As respostas corretas estarão disponíveis em 30 jun em 0:00.
Pontuação deste teste: 6 de 6
Enviado 28 jun em 10:31
Esta tentativa levou 9 minutos.
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.
0,6 / 0,6 ptsPergunta 1
Leia o texto a seguir:
“A motivação para Ruby foi a falta de satisfação de seu projetista com
Perl e Python. Apesar de tanto Perl quanto Python oferecem suporte à
programação orientada a objetos, nenhuma delas é uma linguagem
puramente orientada a objetos, ao menos no sentido de cada uma ter
tipos primitivos (não objetos) e aceitar o uso de funções.”
SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed.
Porto Alegre: Bookman, 2018.
Analise a validade das asserções abaixo e a relação proposta entre
elas.
I. Subprogramas em Ruby devem ser métodos.
A+
A
A-
https://famonline.instructure.com/courses/19621/quizzes/82015/history?version=1
PORQUE
II. Métodos são subprogramas chamados a partir de objetos.
Assinale a alternativa com a relação correta entre as asserções I e II:
  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 é falsa e a asserção II é verdadeira. 
  A asserção I é verdadeira e a asserção II é falsa. 
 
As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.
Alternativa correta.
O criador de Ruby critica o Python por aceitar funções, o que a
desqualifica como linguagem puramente orientada a objetos.
Em uma linguagem orientada a objetos, tudo deve estar
relacionado a objetos – como exemplo, o texto menciona a
possibilidade de nas linguagens orientadas a objeto “impuras”
terem variáveis que não são objetos. Subprogramas em um
contexto orientado a objeto são os métodos: eles são como
funções, mas estão vinculados aos objetos e devem ser
chamados à partir dos objetos. A crítica ao Python e ao Perl
seria pela possibilidade de se criar funções “avulsas”, sem
vínculos com objetos – tornando a programação mais próxima
do paradigma procedural, por exemplo, do que do orientado a
objeto.
0,6 / 0,6 ptsPergunta 2
A+
A
A-
Leia o texto a seguir:
“Uma das principais razões pelas quais a linguagem C é tão admirada
como odiada é sua falta de uma verificação de tipos completa. Por
exemplo, em versões anteriores ao C99, podiam ser escritas funções
para as quais os parâmetros não eram verificados em relação ao tipo.
Aqueles que gostam de C apreciam a flexibilidade. aqueles que não
gostam o acham muito inseguro. Uma das grandes razões para o
grande aumento da sua popularidade nos anos 1980 foi o fato de que
um compilador para a linguagem era parte do amplamente usado
sistema operacional UNIX. Essa inclusão no UNIX forneceu um
compilador bastante bom e essencialmente livre, que estava disponível
para os programadores em muitos tipos de computadores.”
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:
 
Os programadores são unânimes sobre a importância da verificação de
tipos.
 
A disponibilidade de ferramentas para o desenvolvimento em uma
linguagem afeta sua popularidade.
 
A linguagem C é exclusiva para desenvolvimento em sistemas UNIX. 
 
Linguagens consideradas inseguras acabam sendo ignoradas pelos
desenvolvedores e caindo em desuso.
 
Nos anos 80, a verificação de tipos de parâmetros de funções foi
importante para a aceitação da linguagem C.
A+
A
A-
Alternativa correta, pois como fator para a popularidade do C a
disponibilidade de um compilador para ela estava disponível em
um sistema operacional popular na época (o UNIX). Portanto, a
disponibilidade de ferramentas é relevante para popularizar uma
linguagem.
0,6 / 0,6 ptsPergunta 3
Leia o texto a seguir:
“O primeiro computador programável, a Máquina Analítica de Babbage,
construída nos anos 1840, tinha a capacidade de reutilizar coleções de
cartões de instrução em vários lugares diferentes de um programa.”
SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed.
Porto Alegre: Bookman, 2018.
Em uma linguagem de programação moderna,
  essas coleções devem executar de maneira concorrente. 
  não existe tal conceito. 
  essas coleções correspondem a subprogramas. 
  essas coleções não devem possuir estado. 
  essas coleções correspondem a objetos. 
A+
A
A-
Alternativa correta, pois a ideia de se reutilizar blocos de
instruções é implementada por subprogramas, blocos de código
que podem ser “chamados” pelo programa principal ou por
outros subprogramas. Eles podem ser conhecidos por funções,
métodos, rotinas, sub-rotinas ou procedimentos, dependendo da
linguagem e do contexto.
0,6 / 0,6 ptsPergunta 4
Leia o texto a seguir:
“Todas as linguagens do .NET, incluindo C#, VB.NET, C++ gerenciado,
F# e JScript.NET usam o Sistema de Tipos Comum (CTS - Common
Type System). O CTS fornece uma biblioteca de classes comum. [...]
Todas as linguagens do .NET são compiladas na mesma forma
intermediária, Intermediate Language.”
SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed.
Porto Alegre: Bookman, 2018.
Considerando o trecho acima, avalie as asserções a seguir a e relação
proposta entre elas: 
I. As linguagens .NET são compatíveis com as implementações
padrão do Java.
PORQUE
II. As linguagens .NET são compiladas para uma linguagem
comum chamada Intermediate Language.
 
Assinale a alternativa com a relação correta entre as asserções I e II:
  A asserção I é verdadeira e a asserção II é falsa. 
 
As asserções I e II são verdadeiras, mas a II não é uma justificativa
correta da I.
A+
A
A-
 
As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.
  A asserção I é falsa e a asserção II é verdadeira. 
  As asserções I e II são falsas. 
Alternativa correta.
A asserção I é falsa, pois o fato de as linguagens .NET serem
compiladas para uma mesma linguagem intermediária permite
a compatibilidade entre elas. Um programa com módulos
desenvolvidos em diferentes linguagens da família .NET (por
exemplo, parte em C# e parte em VB.NET), no final, irá resultar
em um código uniforme, e os diferentes módulos “enxergarão”
os outros módulos nessa linguagem intermediária.
A asserção II é verdadeira, pois o princípio é semelhante ao da
compilação de Java para bytecode, e do fato de que outras
linguagens tem sido desenvolvidas para gerar bytecode
compatível com a Java Virtual Machine (sendo, portanto,
compatíveis com Java). Porém, o bytecode da JVM não possui
relação com a IL do .NET.
0,6 / 0,6 ptsPergunta 5
Leia o texto a seguir:
“A linguagem C tem sentenças de controle adequadas e recursos para
a utilização de estruturas de dados que permitem seu uso em muitas
áreas de aplicação. Ela também tem um rico conjunto de operadores
que fornecem alto grau de expressividade.”
Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11.
ed. Porto Alegre: Bookman, 2018.
Considerando as informações acima, assinale a alternativa correta:
A+
A
A-
 
A linguagem C pode ser considerada uma linguagem pertencente à
maioria dos principais paradigmas simultaneamente.
 
As estruturas de dados de C a colocam no paradigma orientado a
objeto.
 
A linguagem C é o ápice da programação, e suas sucessoras pouco
acrescentaram em termos de recursos.
 
A linguagem C pode ser considerada uma linguagem de propósito
geral.
 
As sentenças de controle do C garantem seu determinismo,
caracterizando-a como programação funcional.
Alternativa correta, pois o texto caracteriza a linguagem C como
uma linguagem com recursos para ser utilizada em muitas
áreas de aplicação diferentes, não se restringindoa um ou outro
domínio de programação – portanto, ela é uma linguagem de
propósito geral.
0,6 / 0,6 ptsPergunta 6
Leia o trecho a seguir:
O excerto abaixo é um trecho de uma resposta dada por Bjarne
Stroustrup, criador da linguagem C++ ao ser perguntado sobre a
utilidade de aprender vários paradigmas ou focar em linguagens
orientadas a objeto.
A+
A
A-
“(...) Não é uma boa ideia conhecer apenas C++, muito menos
conhecer apenas uma linguagem de paradigma único. Seria como ser
daltônico ou monoglota: dificilmente você saberia o que estaria
perdendo. Muito da inspiração para uma boa programação vem do
aprendizado e da apreciação de diferentes estilos de programação e,
ainda, de ter visto como eles podem ser usados em linguagens
diferentes.”
Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11.
ed. Porto Alegre: Bookman, 2018.
Considerando o trecho acima, analise as asserções a seguir e a relação
proposta entre elas: 
I. Um programador experiente se beneficiará de aprender novas
linguagens de programação.
PORQUE
II. Cada linguagem possui conceitos exclusivos e intransponíveis
para outras linguagens.
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 é falsa e a asserção II é verdadeira. 
 
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. 
 
As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.
A+
A
A-
Alternativa correta, pois a asserção I é verdadeira, e a II é falsa.
A asserção I é verdadeira, pois um programador de fato se
beneficia de conhecer diferentes linguagens e paradigmas, fato
reforçado pelo próprio Stroustrup em sua resposta.
A asserção II é falsa, pois, apesar de ser verdadeiro que
linguagens podem ter ideias novas e bastante exclusivas, os
benefícios não se restringem a conhecer esses conceitos
exclusivos, e na maioria dos casos existe, sim, uma grande
possibilidade de diferentes linguagens serem baseadas nos
mesmos princípios – o que é a raiz da ideia de paradigmas de
programação. Conforme reforçado pelo Stroustrup, um dos
grandes benefícios é justamente ver os mesmos conceitos
aplicados em diferentes linguagens, o que pode ser uma fonte
de inspiração para fazermos melhor uso desses recursos.
0,6 / 0,6 ptsPergunta 7
Leia o texto a seguir:
“Os navegadores [web] devem executar muitas funções diferentes ao
mesmo tempo, entre elas enviar e receber dados de servidores Web,
desenhar texto e imagens na tela e reagir às ações do usuário com o
mouse e teclado.”
SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed.
Porto Alegre: Bookman, 2018.
Considerando o trecho acima, avalie as afirmações a seguir:
I. Os navegadores web são implementados utilizando HTML, CSS
e JavaScript. 
II. As várias funções simultâneas dos navegadores devem ser
implementadas em linguagem funcional. 
III. As interações com o usuário via mouse e teclado podem ser
implementadas utilizando programação orientada a evento. 
IV. As várias funções diferentes descritas podem utilizar o
hardware de maneira mais eficiente através da programação
concorrente.
A+
A
A-
É correto o que se afirma em:
  II e IV, apenas. 
  III e IV, apenas. 
  I, II e IV, apenas. 
  II e III, apenas. 
  II, III e IV, apenas. 
Alternativa correta.
A afirmativa I é falsa, pois as páginas web, lidas pelos
navegadores, costumam ser escritas utilizando as linguagens
HTML, JavaScript e CSS. Os navegadores em si podem ser
escritos em diversas linguagens diferentes.
A afirmativa II é falsa, pois a programação funcional possui
diversos benefícios, mas não é necessária ou exclusiva no
desenvolvimento de programas com diversas funções
diferentes. Linguagens procedurais ou orientadas a objeto
também podem ser utilizadas, por exemplo.
A afirmativa III é verdadeira, pois a programação orientada a
evento é caracterizada por programas que reagem ou tratam
eventos, dentre os quais estão às interações com usuário.
A afirmativa IV é verdadeira, pois a programação concorrente
permite que diferentes conjuntos de instruções (por exemplo,
funções diferentes) sejam executadas simultaneamente em
diferentes núcleos. Isso garante um uso mais eficiente dos
recursos disponíveis, permitindo um processamento simultâneo
das tarefas.
0,6 / 0,6 ptsPergunta 8
A+
A
A-
Leia o texto a seguir:
“Os computadores são utilizados em uma infinidade de tarefas, desde
controlar usinas nucleares até disponibilizar jogos eletrônicos em
telefones celulares. Por causa dessa diversidade de uso, linguagens de
programação com objetivos muito diferentes foram desenvolvidas.”
Fonte: SEBESTA, R. W. Conceitos de linguagens de programação. 11.
ed. Porto Alegre: Bookman, 2018.
Avalie as afirmações sobre linguagens de programação e seus
propósitos:
I. Atualmente não se usa linguagens especializadas, pois há
linguagens de uso geral que resolvem bem todos os problemas. 
II. “Domínios” de programação são diferentes categorias de
problemas a serem resolvidos utilizando programação. 
III. Domínio de programação é sinônimo de paradigma de
programação.
É correto o que se afirma em:
  II e III, apenas. 
  II, apenas. 
  I, apenas. 
  III, apenas. 
  I e III, apenas. 
A+
A
A-
Alternativa correta, pois apenas a afirmativa II está correta.
A afirmativa I é falsa, pois existem linguagens consideradas de
propósito gerais, ou seja, que podem ser utilizadas de muitas
maneiras diferentes para resolver diversos tipos de problemas
em diferentes áreas. Mas nenhuma linguagem será excelente
para todo tipo de problema, e é comum que linguagens mais
especializadas ofereçam otimizações e facilidades para
resolver certos tipos de problema, se tornando mais
interessantes para o caso específico do que as linguagens
gerais.
 
A afirmativa II é verdadeira, pois domínios de programação são
as diferentes áreas que podem se beneficiar da programação,
ou seja, podemos dizer que diferentes tipos de problema (como
gerenciar as finanças de uma empresa ou validar teoremas
científicos) são diferentes domínios de programação.
 
A afirmativa III é falsa, pois paradigmas de programação são
diferentes jeitos de se pensar um programa, e não estão
necessariamente vinculados a um único domínio de
programação, bem como é possível que certo domínio de
programação seja bem atendido por diferentes paradigmas de
programação.
0,6 / 0,6 ptsPergunta 9
Leia o texto a seguir:
“O arquivo de cabeçalho, em forma de fonte, e a versão compilada do
arquivo de implementação são repassados para os clientes. Quando
tal biblioteca é usada, o arquivo de cabeçalho é incluído no código
cliente por meio de uma especificação de pré-processador #include
[...].”
A+
A
A-
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 #include é interpretado pelo pré-processador. 
II. O #include é transformado em código de máquina pelo compilador. 
III. As diferentes bibliotecas pré-compiladas serão unidas ao programa
pelo ligador (linker). 
IV. As bibliotecas são disponibilizadas em linguagem intermediária
(bytecode) e compiladas na hora da execução pelo JIT.
É correto o que se afirma em:
  I e III, apenas. 
  I, II e III, apenas. 
  I e II, apenas. 
  I, III e IV, apenas. 
  II, III e IV, apenas. 
A+
A
A-
Alternativa correta.
A afirmativa I é verdadeira, pois o #include é uma diretiva de
compilação. Isso significa que ele não é um “comando” em C e
não será compilado para linguagem de máquina. Ao invés disso,
ele passa instruções para o processo de compilação, que são
interpretadas pelo pré-processador.
A afirmativa II é falsa, pois o #include copia o conteúdo do
arquivo “.h” indicado para o programa final, que posteriormente
será compilado.
A afirmativa III é verdadeira, pois os diferentes arquivos
compilados (código-objeto) separadamente serão ligados
depois pelo ligador, ou linker, aoprograma final.
A afirmativa IV é falsa, pois os projetos em C são compilados
uma única vez (para cada arquitetura) e seu binário são
distribuídos já prontos para execução. Outras linguagens usam
o conceito de linguagem intermediária e compilação “just-in-
time”, como o Java.
0,6 / 0,6 ptsPergunta 10
Leia o texto a seguir: 
“Um dos recursos mais interessantes de Python é que ela pode ser
facilmente estendida por qualquer usuário. Os módulos que suportam
as extensões podem ser escritos em qualquer linguagem compilada.
Extensões podem adicionar funções, variáveis e tipos de objetos.
Essas extensões são implementadas como adições ao interpretador
Python.”
SEBESTA, R. W. Conceitos de linguagens de programação. 11. ed.
Porto Alegre: Bookman, 2018.
Considerando o trecho acima, avalie as afirmações a seguir: 
I. Um módulo pode conter subprogramas. 
II. Módulos devem ser escritos na mesma linguagem que os
utilizará. 
A+
A
A-
III. Módulos podem conter dados novos. 
IV. Módulos devem ser escritos por quem irá usá-los.
É correto o que se afirma em:
  I e III, apenas. 
  II e III, apenas. 
  I, II e IV, apenas. 
  I, II e III, apenas. 
  I e II, apenas. 
Alternativa correta.
As afirmativas I e III são verdadeiras, pois um módulo pode
conter diversos códigos úteis, como subprogramas (funções,
por exemplo) e dados (variáveis e objetos, por exemplo).
A afirmativa II é falsa, pois um módulo não precisa ser escrito
na mesma linguagem onde será usado. Por exemplo, o Python,
que pode ter módulos escritos em outras linguagens, desde que
sejam compiladas. Outros exemplos incluem as linguagens da
família .NET (como C#, F# e VB.NET), que podem ser utilizadas
para utilizar módulos escritos por outras linguagens da mesma
família, e as linguagens que geram bytecode Java (como o
próprio Java, Kotlin e Clojure, entre outras), que também podem
compartilhar módulos entre si.
A afirmativa IV é falsa, pois módulos não precisam ser escritos
por quem irá utilizá-los. Pelo contrário, sua maior utilidade está
justamente na possibilidade de um mesmo módulo escrito por
um programador ou um grupo de programadores ser utilizado
em uma infinidade de projetos de software distintos.
Pontuação do teste: 6 de 6
A+
A
A-

Outros materiais