Buscar

AO2 Substitutiva_ Paradigmas de Linguagens de Programação

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

Paradigmas de Linguagen… Ques�onários AO2 Subs�tu�va
Conta
Painel de
controle
Cursos
Calendário
Caixa de
entrada
Histórico
Ajuda
AO2 Subs�tu�va
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 tenta�vas
Tenta�va Tempo Pontuação
MAIS RECENTE Tenta�va 1 17 minutos 4,2 de 6
 As respostas corretas estarão disponíveis em 30 jun em 0:00.
Pontuação deste teste: 4,2 de 6
Enviado 28 jun em 20:27
Esta tenta�va levou 17 minutos.
Graduação Junho | 2022
Página inicial
Avisos
Módulos
Tarefas
Notas
Fóruns
Programa
Pessoas
Zoom
Importante:
Caso você esteja realizando a a�vidade através do aplica�vo "Canvas Student", é
necessário que você clique em "FAZER O QUESTIONÁRIO", no final da página.
0 / 0,6 ptsPergunta 1IncorretaIncorreta
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 compa�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 alterna�va 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, e a II é uma jus�fica�va
correta da I.
 
As asserções I e II são verdadeiras, mas a II não é uma
jus�fica�va correta da I.
 A asserção I é verdadeira e a asserção II é falsa. 
 A asserção I é falsa e a asserção II é verdadeira. 
Alterna�va incorreta, pois a asserção I é falsa, e a
asserção II é verdadeira.
A asserção I é falsa, pois o fato de as linguagens .NET
serem compiladas para uma mesma linguagem
intermediária permite a compa�bilidade 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 compa�vel com a
Java Virtual Machine (sendo, portanto, compa�veis
com Java). Porém, o bytecode da JVM não possui
relação com a IL do .NET.
0,6 / 0,6 ptsPergunta 2
Leia o texto a seguir:
“Os computadores são u�lizados 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
obje�vos 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 u�lizando
programação.
III. Domínio de programação é sinônimo de paradigma
de programação.
É correto o que se afirma em:
 II, apenas. 
 I, apenas. 
 II e III, apenas. 
 I e III, apenas. 
 III, apenas. 
Alterna�va correta, pois apenas a afirma�va II está
correta.
A afirma�va I é falsa, pois existem linguagens
consideradas de propósito gerais, ou seja, que podem
ser u�lizadas de muitas maneiras diferentes para
resolver diversos �pos de problemas em diferentes
áreas. Mas nenhuma linguagem será excelente para
todo �po de problema, e é comum que linguagens
mais especializadas ofereçam o�mizações e
facilidades para resolver certos �pos de problema, se
tornando mais interessantes para o caso específico
do que as linguagens gerais.
 
A afirma�va 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 �pos de problema (como gerenciar as
finanças de uma empresa ou validar teoremas
cien�ficos) são diferentes domínios de programação.
 
A afirma�va 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 3
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 u�lidade de aprender vários paradigmas
ou focar em linguagens orientadas a objeto.
“(...) 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 es�los 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 alterna�va com a relação correta entre as
asserções I e II:
 
As asserções I e II são verdadeiras, mas a II não é uma
jus�fica�va correta da I.
 A asserção I é falsa e a asserção II é verdadeira. 
 As asserções I e II são falsas. 
 
As asserções I e II são verdadeiras, e a II é uma jus�fica�va
correta da I.
 A asserção I é verdadeira e a asserção II é falsa. 
Alterna�va 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 bene�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 bene�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 4
Leia o texto a seguir:
“O primeiro computador programável, a Máquina Analí�ca
de Babbage, construída nos anos 1840, �nha a capacidade
de reu�lizar 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 não devem possuir estado. 
 não existe tal conceito. 
 
essas coleções devem executar de maneira concorrente. 
 essas coleções correspondem a subprogramas. 
 essas coleções correspondem a objetos. 
Alterna�va correta, pois a ideia de se reu�lizar 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, ro�nas,
sub-ro�nas ou procedimentos, dependendo da
linguagem e do contexto.
0 / 0,6 ptsPergunta 5IncorretaIncorreta
Leia o texto a seguir:
“O arquivo de cabeçalho, em forma de fonte, e a versãocompilada 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 [...].”
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, II e III, apenas. 
 I e II, apenas. 
 I, III e IV, apenas. 
 II, III e IV, apenas. 
 I e III, apenas. 
Alterna�va incorreta, pois apenas as afirma�vas I e III
estão corretas.
A afirma�va I é verdadeira, pois o #include é uma
dire�va 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 afirma�va II é falsa, pois o #include copia o
conteúdo do arquivo “.h” indicado para o programa
final, que posteriormente será compilado.
A afirma�va III é verdadeira, pois os diferentes
arquivos compilados (código-objeto) separadamente
serão ligados depois pelo ligador, ou linker, ao
programa final.
A afirma�va 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-�me”,
como o Java.
0,6 / 0,6 ptsPergunta 6
Leia o texto a seguir:
“A mo�vação para Ruby foi a falta de sa�sfação de seu
proje�sta 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 sen�do de cada uma ter
�pos primi�vos (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.
PORQUE
II. Métodos são subprogramas chamados a par�r de
objetos.
Assinale a alterna�va 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
jus�fica�va correta da I.
 As asserções I e II são falsas. 
 
As asserções I e II são verdadeiras, e a II é uma jus�fica�va
correta da I.
 A asserção I é falsa e a asserção II é verdadeira. 
Alterna�va correta.
O criador de Ruby cri�ca 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 à
par�r dos objetos. A crí�ca 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 7
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
�pos 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 �po. 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 �pos 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 �pos.
 
A linguagem C é exclusiva para desenvolvimento em
sistemas UNIX.
 
A disponibilidade de ferramentas para o desenvolvimento
em uma linguagem afeta sua popularidade.
 
Linguagens consideradas inseguras acabam sendo
ignoradas pelos desenvolvedores e caindo em desuso.
 
Nos anos 80, a verificação de �pos de parâmetros de
funções foi importante para a aceitação da linguagem C.
Alterna�va 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 8
Leia o texto a seguir:
“A linguagem C tem sentenças de controle adequadas e
recursos para a u�lizaçã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 alterna�va
correta:
 
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 estruturas de dados de C a colocam no paradigma
orientado a objeto.
 
A linguagem C pode ser considerada uma linguagem
pertencente à maioria dos principais paradigmas
simultaneamente.
 
As sentenças de controle do C garantem seu determinismo,
caracterizando-a como programação funcional.
Alterna�va correta, pois o texto caracteriza a
linguagem C como uma linguagem com recursos para
ser u�lizada em muitas áreas de aplicação diferentes,
não se restringindo a um ou outro domínio de
programação – portanto, ela é uma linguagem de
propósito geral.
0,6 / 0,6 ptsPergunta 9
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 �pos 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 u�lizará.
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 II, apenas. 
 I e III, apenas. 
 II e III, apenas. 
 I, II e IV, apenas. 
 I, II e III, apenas. 
Alterna�va correta.
As afirma�vas 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 afirma�va 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
u�lizadas para u�lizar 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
compar�lhar módulos entre si.
A afirma�va IV é falsa, pois módulos não precisam
ser escritos por quem iráu�lizá-los. Pelo contrário,
sua maior u�lidade está justamente na possibilidade
de um mesmo módulo escrito por um programador
ou um grupo de programadores ser u�lizado em uma
infinidade de projetos de so�ware dis�ntos.
0 / 0,6 ptsPergunta 10IncorretaIncorreta
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 u�lizando
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 u�lizando programação
orientada a evento.
IV. As várias funções diferentes descritas podem
u�lizar o hardware de maneira mais eficiente através
da programação concorrente.
É correto o que se afirma em:
 I, II e IV, apenas. 
 III e IV, apenas. 
 II e IV, apenas. 
 II, III e IV, apenas. 
 II e III, apenas. 
Alterna�va incorreta.
A afirma�va I é falsa, pois as páginas web, lidas pelos
navegadores, costumam ser escritas u�lizando as
linguagens HTML, JavaScript e CSS. Os navegadores
em si podem ser escritos em diversas linguagens
diferentes.
A afirma�va II é falsa, pois a programação funcional
possui diversos bene�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 u�lizadas,
por exemplo.
A afirma�va 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 afirma�va 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, permi�ndo um processamento
simultâneo das tarefas.
Pontuação do teste: 4,2 de 6
Anterior Próximo
Detalhes do envio:
Tempo:
17
minutos
Pontuação atual: 4,2 de 6
Pontuação
man�da:
4,2 de 6
A+
A
A-
https://famonline.instructure.com/courses/19621
https://famonline.instructure.com/courses/19621/quizzes
https://famonline.instructure.com/courses/19621/quizzes/82015
https://famonline.instructure.com/
https://famonline.instructure.com/
https://famonline.instructure.com/calendar
https://famonline.instructure.com/conversations
http://help.instructure.com/
https://famonline.instructure.com/courses/19621/quizzes/82015/history?version=1
https://famonline.instructure.com/courses/19621
https://famonline.instructure.com/courses/19621/announcements
https://famonline.instructure.com/courses/19621/modules
https://famonline.instructure.com/courses/19621/assignments
https://famonline.instructure.com/courses/19621/grades
https://famonline.instructure.com/courses/19621/discussion_topics
https://famonline.instructure.com/courses/19621/assignments/syllabus
https://famonline.instructure.com/courses/19621/users
https://famonline.instructure.com/courses/19621/external_tools/19325
https://famonline.instructure.com/courses/19621/modules/items/386750
https://famonline.instructure.com/courses/19621/modules/items/386752

Continue navegando