Buscar

prova-final-questoes-resumo-paradigmas-de-linguagem-de-programacao

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

StuDocu is not sponsored or endorsed by any college or university
Prova Final - Questões - Resumo Paradigmas de Linguagem
de Programação
Paradigmas de Linguagem de Programação (Universidade Regional do Noroeste do
Estado do Rio Grande do Sul)
StuDocu is not sponsored or endorsed by any college or university
Prova Final - Questões - Resumo Paradigmas de Linguagem
de Programação
Paradigmas de Linguagem de Programação (Universidade Regional do Noroeste do
Estado do Rio Grande do Sul)
Downloaded by Edvaldo Rocha (edvaldoroch@gmail.com)
lOMoARcPSD|14501684
https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=prova-final-questoes-resumo-paradigmas-de-linguagem-de-programacao
https://www.studocu.com/pt-br/document/universidade-regional-do-noroeste-do-estado-do-rio-grande-do-sul/paradigmas-de-linguagem-de-programacao/prova-final-questoes-resumo-paradigmas-de-linguagem-de-programacao/5719181?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=prova-final-questoes-resumo-paradigmas-de-linguagem-de-programacao
https://www.studocu.com/pt-br/course/universidade-regional-do-noroeste-do-estado-do-rio-grande-do-sul/paradigmas-de-linguagem-de-programacao/4136588?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=prova-final-questoes-resumo-paradigmas-de-linguagem-de-programacao
https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=prova-final-questoes-resumo-paradigmas-de-linguagem-de-programacao
https://www.studocu.com/pt-br/document/universidade-regional-do-noroeste-do-estado-do-rio-grande-do-sul/paradigmas-de-linguagem-de-programacao/prova-final-questoes-resumo-paradigmas-de-linguagem-de-programacao/5719181?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=prova-final-questoes-resumo-paradigmas-de-linguagem-de-programacao
https://www.studocu.com/pt-br/course/universidade-regional-do-noroeste-do-estado-do-rio-grande-do-sul/paradigmas-de-linguagem-de-programacao/4136588?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=prova-final-questoes-resumo-paradigmas-de-linguagem-de-programacao
AULA 1 
 
 
Questão Objetiva: 
Em um sistema de implementação Hibrido, qual a ordem que acontece a 
interpretação do código: 
A) Interpretador > analisador léxico > analisador sintático > gerador de 
código intermediário > Programa fonte. 
B) Programa fonte > analisador léxico > analisador sintático > Interpretador. 
C) Programa fonte > Interpretador. 
D) Programa fonte > analisador léxico > analisador sintático > gerador de 
código intermediário > Interpretador. 
E) Programa fonte > analisador sintático > gerador de código intermediário 
> Interpretador. 
R.: D 
 
Questão Dissertativa: 
Quais os principais métodos de implementar linguagens de programação? 
R.: Compilação, interpretação pura e a implementação híbrida. 
 
Cite quais são os critérios de avalição das linguagens de programação: 
 Legibilidade, Capacidade de Escrita e Confiabilidade. 
 
 
O que é a Legibilidade de um programa? 
É a facilidade com que um programa pode ser lido e/ou entendido partindo do 
principio da sua linguagem de programação. 
 
 
2)Qual foi a primeira linguagem de programação desenvolvida para 
aplicações de IA (Inteligência Artificial) ? 
a) COBOL 
b)FORTRAN 
c) ALGOL60 
d)LISP  
Downloaded by Edvaldo Rocha (edvaldoroch@gmail.com)
lOMoARcPSD|14501684
https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=prova-final-questoes-resumo-paradigmas-de-linguagem-de-programacao
e)FLOW-MATIC 
 
1- Nos últimos 50 anos, qual a linguagem de programação que tem dominado a 
computação cientifica, as aplicações de negócios e a inteligência Artificial? 
Respectivamente. 
A)( ) COBOL, LISP, FORTRAN 
B)(X) FORTRAN, COBOL, LISP 
C)( ) LISP, COBOL, FORTRAN 
D)( ) LISP, FORTRAN, COBOL 
E)( )Nenhumas das alternativas. 
 
A primeira linguagem de alto nível para negócios a ser bem-sucedida foi 
_________. 
a) C; 
b) Visual BASIC (VB); 
c) COBOL; 
d) Fortran; 
e) ALGOL 60; 
 
Quais são os principais métodos de implementar linguagens de 
programação? 
R.: Compilação, a interpretação pura e a implementação híbrida 
 
O que é otimização de compiladores? 
R: A otimização é um conjunto de técnicas que os compiladores podem 
usar para diminuir o tamanho e/ou aumentar a velocidade do código que 
produzem. 
 
 
Com relação aos Conceitos de Linguagem de Programação, marque as 
principais Categorias de Linguagens: 
a) Legibilidade e facilidade de escrita. 
b) Imperativas, funcionais, lógicas e orientadas a objetos. 
c) Expressividade, confiabilidade, verificação de tipos. 
d) Tratamento de exceções, utilização de apelidos. 
Downloaded by Edvaldo Rocha (edvaldoroch@gmail.com)
lOMoARcPSD|14501684
 
Cite e explique as fases do processo de compilação. 
 Analisador léxico: agrupa os caracteres do programa fonte em unidades 
léxicas, que são identificadores, palavras especiais, operadores e símbolos de 
pontuação. 
 Analisador sintático: obtém as unidades léxicas do analisador léxico e as 
utilizam para construir estruturas hierárquicas chamas árvores de análise 
sintática que representam a estrutura sintática do programa. 
 O gerador de código intermediário produz um programa em uma 
linguagem diferente, em um nível intermediário entre o programa fonte e a 
saída final do compilador. 
 A otimização melhora os programas tornando-os menores, mais rápidos 
ou ambos, é uma parte opcional da compilação. 
 A tabela de símbolos serve como uma base de dados para o processo 
de compilação. 
 
 
A ortogonalidade é fortemente relacionada á: 
 
a) Tipos de dados. 
b) Legibilidade. 
c) Simplicidade. 
d) Projeto de sintaxe. 
e) Facilidade de escrita. 
 
 
O que é o tratamento de exceções? 
É um critério de avaliação de linguagem. Representa a habilidade de um 
programa de interceptar erros em tempo de execução (além de outras 
condições não usuais detectáveis pelo programa), tomar medidas corretivas e 
então continuar. 
 
Qual é um dos critério mais importante para julgar uma linguagem de 
programação? 
(X) Legibilidade 
( ) Simplicidade Global 
( ) Ortogonalidade 
( ) Instruções de controle 
( ) Expressividade 
 
Downloaded by Edvaldo Rocha (edvaldoroch@gmail.com)
lOMoARcPSD|14501684
https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=prova-final-questoes-resumo-paradigmas-de-linguagem-de-programacao
Quais as razões para estudar conceitos de linguagens de programação? 
As razões são a capacidade aumentada para expressar ideias, embasamento 
para escolher linguagens adequadas, habilidade aumentada para aprender 
novas linguagens, melhor entendimento da importância da implementação, 
melhor uso de linguagens já conhecidas, avanço geral da computação. 
 
Qual é o nome da categoria de linguagens de programação cuja estrutura 
é ditada pela arquitetura de computadores de von Neumann? 
R: São chamadas de linguagens imperativas. 
 
 
Quais são os três métodos de implementação de linguagens de 
programação? 
Implementação baseada em compilação, implementação pura, sistemas de 
implementação híbridos. 
 
Qual destas NÃO é uma fase da compilação? 
a) Geração de código intermediário 
b) Análise semântica 
c) Análise sintática 
d) Montagem do código fonte 
e) Análise léxica 
 
O que é um ambiente de programação? 
A) Ferramentas usadas no desenvolvimento de linguagens. 
B) Ferramentas usadas no desenvolvimento de hardware. 
C) Ferramentas usadas no desenvolvimento de software. 
D) Ferramentas usadas no desenvolvimento do processador. 
E) N.D.A 
 
Cite 4 razões para estudar linguagem de programação: 
Capacidade aumentadapara expressar ideias, maior entendimento da 
importância da implementação, habilidade para aprender novas linguagens e 
avanço geral da computação. 
Downloaded by Edvaldo Rocha (edvaldoroch@gmail.com)
lOMoARcPSD|14501684
 
Um programa é dito confiável quando: 
 A. (x) Um programa é dito confiável quando está de acordo com suas 
especificações em todas as condições. 
 B. ( ) Um programa é dito confiável quando está de acordo com os 
requisitos levantados pelo analista. 
 C. ( ) Um programa é dito confiável se ele tem a criptografia de ponta a 
ponta em suas implementações, utilizando chaves assimétricas para garantir a 
segurança das informações. 
 
 
 
AULA 5 
 
 
O que são tipos de dados? 
Tipos de dados são um conjunto de valores de dados e suas operações pré 
definidas, que são manipulados por programas e aplicativos de computador 
para produzir algum resultado. Esse sistema determina como cada tipo é 
associado com cada expressão na linguagem. 
 
Sobre os tipos de dados, assinale a alternativa correta: 
a) Os tipos inteiro, ponto flutuante, booleano, decimal e carácter são 
exemplos de tipos primitivos. 
b) O tipo cadeia de caracteres é um tipo primitivo de todas as linguagens de 
programação e é essencial para todos os programas que realizam manipulação 
de caracteres. 
c) Em todas as linguagens de programação, as matrizes representam 
conjuntos de elementos do mesmo tipo, elementos que são referenciados por 
meio de índices. 
d) Matriz dinâmica de pilha fixa é a classificação onde as faixas dos índices e a 
alocação do espaço utilizado pela matriz é feita dinamicamente em tempo de 
execução. 
e) As variáveis do tipo ponteiro possuem uma faixa de valores que representam 
endereços na memória e a única operação disponível para variáveis desse tipo 
é a atribuição. 
 
Qual das alternativas a seguir resultará em um erro runtime quando 
executado em uma JVM? 
a) int num = 10 * 5 * 10; 
Downloaded by Edvaldo Rocha (edvaldoroch@gmail.com)
lOMoARcPSD|14501684
https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=prova-final-questoes-resumo-paradigmas-de-linguagem-de-programacao
b) String a1 = “a < b ? “ + new Date(); 
c) double 15a = 15f; 
d) Date data = (Date) new Object(); <- Gera uma ClassCastException. 
 
O que é um descritor? 
É a coleção de atributos de uma variável em uma implementação, um descritor 
é uma área de memória que armazena os atributos de uma variável. 
 
Python inclui um tipo de matriz imutável chamado de ___ 
Tuplas 
O que é um Ponteiro Solto ou Referência solta? 
 É um ponteiro que contém o endereço de uma variável dinâmica do 
monte já liberada. Ponteiros soltos são perigosos por diversas razões. 
 
A verificação de tipos união requer que cada construção de união inclua 
um indicador de tipo. Como é chamado tal indicador? 
I) Índice; 
II) Discriminante; 
III) Fatia; 
IV) Etiqueta; 
V) Dispersões; 
 Assinale a opção correta: 
( ) I, II e V ( X ) II e IV ( ) I ,III e V 
 
Que Linguagem de Programação permite um tipo de referência elíptica 
dentro de estruturas específicas nos campos de registro? 
 - COBOL 
 - Java 
 - Pascal 
 - Ada 
 - C++ 
 
Downloaded by Edvaldo Rocha (edvaldoroch@gmail.com)
lOMoARcPSD|14501684
Para que são utilizados dos ponteiros? 
 São utilizados para lidar com a flexibilidade e para controlar o gerenciamento 
de armazenamento dinâmico. 
 
Em Java qual é o tipo que substitui ponteiros, e qual é o seu problema? 
Em Java as variáveis são manipuladas por referência, seu maior problema é a 
cópia de objetos. 
 
 
Qual é o tipo de dado no qual as variáveis têm uma faixa de valores que 
constituem em endereços de memória e um valor especial, o valor “nil”? 
São os ponteiros. 
 
A maioria das linguagens, exceto Fortran e Ada, usa quais símbolos para 
delimitar seus índices na matriz? 
a) Pareteses ( ) 
b) Chaves { } 
c) Colchetes [ ] 
d) Aspas duplas “ “ 
e) Aspas simples ‘ ‘ 
 
O tipo matriz pode suportar o/os tipos de dados 
( ) Heterogêneos 
( ) Booleano 
( ) Caracter 
(x) Homogêneo 
( ) Númerico 
 
AULA 7 
 
Qual o problema para o uso excessivo de desvios incondicionais 
ou goto? 
Sem restrições ao uso, essas instruções podem tornar os programas ilegíveis 
e, consequentemente, pouco confiáveis e difíceis de serem mantidos. 
 
 
A que as primeiras construções iterativas estavam relacionadas? E 
porquê? 
Downloaded by Edvaldo Rocha (edvaldoroch@gmail.com)
lOMoARcPSD|14501684
https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=prova-final-questoes-resumo-paradigmas-de-linguagem-de-programacao
As primeiras construções iterativas nas linguagens de programação estavam 
diretamente relacionadas com matrizes pois, nos primórdios, a computação era 
numérica por natureza. 
 
O que são sentenças de seleção? 
Fornecer meios para escolher entre dois ou mais caminhos de execução em 
um programa. 
 
Defina vinculação estática e vinculação dinâmica? 
Estática 
 Variáveis estáticas são vinculadas a células de memória antes do início 
da execução de um programa e permanecem vinculadas a essas mesmas 
células até que a execução do programa termine. 
Dinâmica 
 O tipo de uma variável não é especificado por uma sentença de 
declarações, nem pode ser determinado pelo nome da variável. Em vez disso, a 
variável é vinculada a um tipo quando é atribuído um valor a ela em uma 
sentença de atribuição. Quando a sentença de atribuição é executada, a variável 
que está recebendo um valor atribuído é vinculada ao tipo do valor da expressão 
no lado direito da atribuição. 
 
Quais as diferenças entre uma sentença de controle de seleção e uma 
sentença de controle iterativa? 
Enquanto uma sentença de seleção oferece os meios de escolher entre dois ou 
mais caminhos de execução de um programa, na sentença iterativa faz com 
que uma instrução (ou uma coleção de instruções) seja executada um número 
de vezes. 
 
Quais linguagem foram projetadas sem o goto? 
A ( ) C#, Java e Python. 
B ( ) Java, Python e Ruby. 
C ( ) Python, C# e C. 
D ( ) C, Java e Python. 
E ( ) Somente C#. 
 
 
Downloaded by Edvaldo Rocha (edvaldoroch@gmail.com)
lOMoARcPSD|14501684
AULA 8 
 
 
1. Quais são as três características gerais dos subprogramas? 
Cada subprograma tem um único ponto de entrada, a unidade chamadora é 
suspensa durante a execução do programa chamado e o controle sempre 
retorna ao chamador quando a execução do subprograma termina. 
 
2. O que significa para um subprograma estar ativo? 
Um subprograma está ativo, se, depois de ter sido chamado, ele iniciou a 
execução, mas ainda não a terminou. 
 
3. O que é informado no cabeçalho de um subprograma? 
Primeiro, ele especifica que unidade sintática seguinte é uma definição de 
subprograma de algum tipo particular. Essa especificação frequentemente é 
realizada com uma palavra especial. Segundo, ele oferece um nome para o 
subprograma, e em terceiro lugar pode especificar opcionalmente uma lista de 
parâmetros 
 
4. Que linguagens permitem um número variável de parâmetros? 
C, C++, Perl, JavaScript. 
 
5. O que é um perfil de parâmetro? O que é um protocolo de 
subprograma? 
O perfil de parâmetro de um subprograma é o número, a ordem e o tipo dos 
seus parâmetros formais (variável listada no cabeçalho do subprograma), já o 
protocolo de parâmetro é formado pelo seu perfil mais o tipo de retorno. 
 
6. O que são parâmetros formais? O que são parâmetros reais? 
-Parâmetros formais são as variáveis colocadas no cabeçalho de um 
procedimento ou de uma função. 
-Parâmetros reais são as variáveis ou constantes que aparecem na chamada 
dos -procedimentos ou das funções. 
 
7. Quais são as vantagens e desvantagens de parâmetros com palavras-
chave? 
-Vantagem: o parâmetro pode aparecer em qualquer ordem. 
-Desvantagem: o programador deve saber o nome dos parâmetros formais.8. Qual é o uso mais comum de blocos Ruby na linguagem 
propriamente dita? 
Especificar um bloco de código na chamada ao iterador, que são usados no 
processamento de dados em uma estrutura existente. 
 
9. Quais são as diferenças entre uma função e um procedimento? 
Um procedimento não retorna valor nenhum, a função obrigatoriamente retorna 
um valor a uma determinada variável. 
Uma função é ativada quando é avaliada uma expressão que a contém, o 
procedimento é ativado através de um comando de chamada do procedimento. 
 
Downloaded by Edvaldo Rocha (edvaldoroch@gmail.com)
lOMoARcPSD|14501684
https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=prova-final-questoes-resumo-paradigmas-de-linguagem-de-programacao
 
10. Quais são as questões de projeto para subprogramas? 
-Há verificação dos parâmetros reais em relação aos parâmetros formais? 
-Variáveis locais são alocadas estaticamente ou dinamicamente? 
-A definição de um subprograma pode aparecer dentro de um outro 
subprograma? 
-Quais os métodos de passagem de parâmetro são oferecidos? 
-Subprogramas podem ser passados como parâmetros? 
-Subprogramas podem ser sobrecarregados ou genéricos? 
 
11. Quais são as vantagens e desvantagens das variáveis locais 
dinâmicas? 
As variáveis locais dinâmicas são alocadas quando o programa se inicia e 
desalocadas quando o programa é encerrado, o ambiente local é ativado em 
cada ativação. A vantagem é que permite recursividade a memória alocada 
pela pilha pode ser compartilhada entre os subprogramas. A desvantagem é 
que o tempo gasto para a reserva e desalocação da memória, não pode reter 
valores de variáveis locais entre as chamadas. 
 
12. Quais são as vantagens e desvantagens das variáveis locais 
estáticas? 
São variáveis que são definidas dentro de um subprograma, e geralmente tem 
o mesmo escopo do subprograma. 
 
-Vantagem: 
 Não há endereçamento indireto (mais eficiente), não existe reserva e 
libertação de memória. 
 
-Desvantagem: 
 Não permite recursividade. 
 
13. Quais são os três modelos semânticos de passagem de parâmetros? 
Modelos semânticos: 
-Modo entrada (in mode) 
-Modo saída (out mode) 
-Modo entrada/saída (inout mode) 
 
Modelos conceituais: 
Um valor real é transferido fisicamente. Um caminho de acesso é transferido. 
 
Modelos de implementação: 
Passagem por valor, Passagem por Resultado, Passagem por Valor-Resultado, 
Passagem por Referência, Passagem por Nome. 
 
14. Quais são os modos, os modelos conceituais de transferência, as 
vantagens e as desvantagens dos seguintes métodos de passagem de 
parâmetros: por valor, por resultado, por valor-resultado e por referência? 
Downloaded by Edvaldo Rocha (edvaldoroch@gmail.com)
lOMoARcPSD|14501684
Temos os modos de entrada, saída e entrada/saída, um valor real é transferido 
fisicamente e um caminho de acesso é transferido. Passagem por valor: O 
valor do parâmetro real é usado para inicializar o parâmetro formal, que então 
agem como uma variável local. (Modo entrada de dados) Vantagens: As 
funções ficam impedidas de acessar variáveis declaradas em outras funções. 
Desvantagens: Requer mais armazenamento, custo para transferir o parâmetro 
fisicamente. Passagem por resultado: Nenhum valor é transmitido para a o 
subprograma, modelo de implementação de modo saída, o parâmetro formal 
age como variável local, mas seu valor é passado para o parâmetro real da 
chamada. Vantagens: Desvantagens: Pode haver colisão de parâmetros 
reais, a ordem dos parâmetros reais determina o valor dos parâmetros formais. 
Passagem por valor-resultado: Vantagens: Desvantagens: Passagem por 
referência: Vantagens: Desvantagens: Passagem por nome: Vantagens: 
Desvantagens: 
 
15. Defina vinculação rasa e profunda para ambientes de referenciamento 
de subprogramas passados como parâmetros? 
-Vinculação rasa: O ambiente da instrução de chamada que ativa o 
subprograma passado - natural para linguagens com escopo dinâmico. 
- Vinculação profunda: O ambiente da definição do subprograma passado 
natural para linguagens com escopo estático. 
 
16. O que é um subprograma sobrecarregado? 
Subprograma Sobrecarregado é um subprograma que tem o mesmo nome de 
outro subprograma no mesmo ambiente de referenciamento. C++, Java e C# 
permitem (e incluem) subprogramas sobrecarregados. Vantagem: Aumenta a 
legibilidade. Desvantagem: Dificulta a utilização de reflexão 
 
17. O que é polimorfismo paramétrico? Polimorfismo Paramétrico é uma 
forma de se tornar uma linguagem mais expressiva, enquanto continua 
mantendo toda sua tipagem estática segura. Pode-se definir várias funções do 
mesmo nome, mas possuindo parâmetros diferentes (em número e/ou tipo). O 
polimorfismo paramétrico torna assim possível a escolha automática do bom 
método a adoptar em função do tipo de dado passado em parâmetro. 
 
18. Quais são as questões de projeto para funções? 
- Os efeitos colaterais são permitidos? 
- Que tipos de valores podem ser retornados? 
- Quantos valores podem ser retornados? 
 
19. Que linguagens permitem que o usuário sobrecarregue operadores? 
Downloaded by Edvaldo Rocha (edvaldoroch@gmail.com)
lOMoARcPSD|14501684
https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=prova-final-questoes-resumo-paradigmas-de-linguagem-de-programacao
C++ e C# 
 
20. De que maneiras as corrotinas são diferentes dos subprogramas 
convencionais? Uma corrotina é um subprograma especial que possui 
múltiplas entradas, as corrotinas chamadora e chamada estão em um 
relacionamento mais igualitário. 
 
AULA 9 
 
 
 
1. Descreva os três recursos característicos das linguagens orientadas 
a objetos. 
 
Tipos de dados abstratos, herança e um tipo particular de vinculação 
dinâmica. 
 
2. Qual é a diferença entre uma variável de classe e uma variável de 
instância? 
 
 Variáveis de classes: Elas são visíveis e compartilhadas para os métodos 
de classe e os métodos de instância de uma classe e até mesmo pela 
definição da própria classe, com ela é possível que todos os objetos a 
compartilhem. Se você lembrar da programação tradicional, ela funciona 
como se fosse uma variável global. Assim como as variáveis de instância, 
as variáveis de classe são encapsuladas; podem ser usadas na 
implementação de uma classe, porém não permitem acesso direto. 
 
 Variáveis de instância: Uma variável de instância é uma variável cujo 
valor é específico ao objeto e não à classe. Uma variável de instância em 
geral possui uma valor diferente em cada objeto membro da classe. 
 
3. O que é herança múltipla? 
 
 Em orientação a objetos, é o conceito de herança de duas ou mais 
classes. Ela é implementada nas linguagens de programação C++ e em 
Python, por exemplo. A linguagem Java possui apenas herança simples 
(uma classe possui no máximo uma classe pai), mas permite que uma 
classe implemente várias interfaces. 
 
Downloaded by Edvaldo Rocha (edvaldoroch@gmail.com)
lOMoARcPSD|14501684
4. Descreva uma situação na qual a vinculação dinâmica tem uma 
grande vantagem sobre sua ausência. 
 
Permitir que os sistemas sejam mais facilmente estendidos tanto durante 
o desenvolvimento como durante a manutenção. 
 
 
5. O que é uma classe aninhadora? 
A palavra “aninhadas” em programação diz respeito que é uma subrotina 
encapsulada noutra. O escopo da subrotina aninhada é limitado a 
subrotina que a encapsula. Isso significa que ela pode ser chamada 
somente pela subrotina que a encapsula, ou pelas subrotinas diretamente 
ou indiretamente aninhadas pela mesma subrotina encapsuladora. O 
aninhamento é teoricamente ilimitado, ainda que na prática somente 
alguns níveis são aceitos, o que depende da implementação. 
 
6. Explique como as mensagens Smalltalk são vinculadas a métodos. 
Quando isso ocorre? 
 
A vinculação dinâmica de Smalltalk permite que erros de tipo passem sem 
ser detectadosaté a execução. 
 
7. Que desvantagem existe em permitir que os projetistas especifiquem 
que métodos podem ser estaticamente vinculados? 
 
Pode ocorrer uma sobrecarga de alocação e liberação, pois a instancia 
precisa armazenar os ponteiros cada vez. 
 
 
8. Que parte importante do suporte para programação orientada a 
objetos faltava em SIMULA 67? 
 
A parte de integração, de uma interface gráfica com o usuário, que 
permitisse a execução de forma iterativa, sem que fosse somente utilizado 
para descrição e simulação de sistemas complexos. 
 
9. Você pode definir uma variável de referência para uma classe 
abstrata? Que uso tal variável teria? 
 
Sim, serve para o polimorfismo e herança dos atributos e métodos. 
 
10. Compare a detecção de erros de tipo para variáveis de instância em 
Java e em Ruby. 
 
Downloaded by Edvaldo Rocha (edvaldoroch@gmail.com)
lOMoARcPSD|14501684
https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=prova-final-questoes-resumo-paradigmas-de-linguagem-de-programacao
A declaração de variáveis de instância no código do Ruby é mais fácil de 
detectar pelo fato de usar @ como prefixo já no Java você invoca a 
variável referenciando com “instanceof”. 
 
 
AULA 11 
 
 
1. O que é um descritor? 
Os descritores também chamados de getter e setter, são funções 
públicas que são usadas para obter e definir uma variável privada. 
Em outras palavras é um indicador abstrato para acessar um arquivo. 
 
2. Defina exceção, tratamento de exceção, levantar uma exceção, 
desabilitar uma exceção, continuação, finalização e exceção pré-
definida. 
Exceção: qualquer evento, errôneo ou não, que seja detectável por 
hardware ou software e que possa exigir processamento especial. 
Existem situações nas quais uma condição ou evento não desejados 
ocorrem, sendo nestes casos necessário invocar (levantar) uma exceção de 
forma a sinalizar um erro no momento da execução. A invocação de uma 
exceção é geralmente referenciada como sinalização da exceção, do erro 
encontrado. 
Continuação: depois que um manipulador de exceção executa, duas 
coisas podem ocorrer: o controle pode transferir-se para algum outro lugar no 
programa pode ser finalizada. 
3. Quais são as vantagens de ter suporte pré-definido para tratamento 
de exceções em uma linguagem? 
As exceções verificadas podem, em tempo de compilação, reduzir 
consideravelmente (mas não eliminar inteiramente) a ocorrência de casos em 
que de exceções não tratadas emergem para fora da aplicação. 
 
4. Quais são as questões de projeto para tratamento de exceções? 
As questões seriam: 
Downloaded by Edvaldo Rocha (edvaldoroch@gmail.com)
lOMoARcPSD|14501684
- Como e onde os tratadores de exceções são especificados e qual o 
seu escopo? 
 - Como uma ocorrência de uma exceção é vinculada a um tratador de 
exceção? 
- A informação acerca de uma exceção pode ser passada para o 
tratador? 
 - Onde a execução continua, se é que continua, após um tratador de 
exceção completar sua execução? (Essa é a questão da continuação ou 
reinício) / Alguma forma de finalização é fornecida? 
 - Como as exceções definidas pelo usuário são especificadas? •Se 
existem exceções pré-definidas, devem existir tratadores de exceção 
padronizados para programas que não forneçam os seus? 
 - As exceções pré-definidas podem ser explicitamente levantadas? 
 - Os erros detectáveis por hardware são considerados exceções que 
devem ser tratadas? 
 - Existe alguma exceção pré-definida? 
 - Deve ser possível desabilitar exceções pré-definidas? 
 
5. O que significa para uma exceção ser vinculada a um tratador de 
exceção? 
Se uma exceção é levantada em um bloco ou unidade que não tem um 
tratador para essa exceção em particular, ela é propagada para algum outro 
bloco ou unidade. Ou seja, o bloco de código que gera a exceção está 
vinculado à ela, sendo responsável por chamar os procedimentos de 
tratamento. 
 
6. Descreva três problemas com o tratamento de exceções de Ada. 
- Os tratadores de exceção podem ser incluídos em blocos ou em 
corpos de subprogramas, pacotes ou tarefas 
Downloaded by Edvaldo Rocha (edvaldoroch@gmail.com)
lOMoARcPSD|14501684
https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=prova-final-questoes-resumo-paradigmas-de-linguagem-de-programacao
 - Como os tratadores de exceção são geralmente locais ao código em 
que a exceção pode ser levantada, eles não têm parâmetros 
- A inadequação do tratamento de exceções para tarefas. Por exemplo: 
quando uma tarefa levanta uma exceção e não a trata, simplesmente morre. 
 
7. Como um tratador de exceção pode ser escrito em C++ e em Java 
de forma que ele trate qualquer exceção? 
Utilizando os operadores try e catch: 
 Forma geral do tratador: 
 try { código 
 que pode levantar uma exceção 
 } 
 catch ( formal parameter ) { 
 corpo de um tratador 
 } 
... 
 catch ( formal parameter ) { 
 corpo de um tratador } 
 
8. Quais são as diferenças entre uma especificação throw em C++ e 
uma cláusula throws em Java? 
Em C++ todos os tipos (incluindo primitivos e ponteiros) podem sem 
lançados como exceções. 
Já em Java, que é baseado no de C++, mas projetado para estar mais 
alinhado com o paradigma de linguagem orientada a objeto, todas as exceções 
em Java são objetos de classes descendentes de Throwable, todos os objetos 
dessa classe ou de suas subclasses podem ser gerados ou capturados por 
meio do tratamento de exceções. 
Downloaded by Edvaldo Rocha (edvaldoroch@gmail.com)
lOMoARcPSD|14501684
Em C++ existe um catch especial que pode capturar todos os tipos de 
exceções: catch (...){}. Em Java, de maneira similar, é possível capturar 
qualquer Exception por meio do código catch (Exception ex){}. 
 
9. De que maneiras o tratamento de exceções e o tratamento de 
eventos são relacionados? 
De forma que uma exceção é um evento não esperado. Em ambos os 
casos os tratadores são implicitamente chamados pela ocorrência de algo, seja 
uma exceção ou um evento. 
 
10. O que é um escutador de evento? 
O escutador de evento é um procedimento ou função que responde à 
execução de um evento, como por exemplo os métodos OnClickListener, que 
quando definidos, executam comandos logo após o clique do mouse. 
O escutador é criado com addItemListener. 
 
 
AULA 12 
 
 
1. O que uma expressão lambda especifica? 
Expressão lambda especifica os parâmetros e o mapeamento de uma função. 
 
2. Que tipos de dados eram parte do LISP original? 
Existiam apenas dois tipos de objeto de dados no LISP original: átomos e listas 
 
3. Em que estrutura de dados comum as listas de LISP são 
normalmente armazenadas? 
As listas em LISP são normalmente armazenadas como estruturas de lista 
simplesmente encadeadas nas quais cada nó tem dois ponteiros e representa 
um elemento. 
Downloaded by Edvaldo Rocha (edvaldoroch@gmail.com)
lOMoARcPSD|14501684
https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=prova-final-questoes-resumo-paradigmas-de-linguagem-de-programacao
 
4. O que é recursão em cauda? Por que é importante definir funções 
que usam recursão para especificar repetição como recursivas em 
cauda? 
Recursão em cauda, é se uma chamada recursiva em uma função é a última 
expressão na função. É importante definir funções que usam recursão, pois o 
uso de recursão em cauda o compilador pode facilmente converter tal recursão 
em uma iteração, resultando em uma execução mais rápida. 
 
5. Por que recursos imperativos foram adicionados à maioria dos 
dialetos de LISP? 
Por que variáveis no estilo imperativo são usadas para nomear células de 
memória, cujos valores podem ser modificados muitas vezes durante a execução 
de um programa. 
 
6. De que maneiras COMMON LISPe Scheme são opostas? 
Scheme é muito menor e semanticamente mais simples, em parte por causa do 
uso exclusivo de escopo estático. COMMON LISP é uma linguagem muito 
grande pois ela é derivada de LISP. É também COMMON LISP foi criada para 
ser uma linguagem comercial, já Schema é mais usada em cursos de faculdades 
para o ensino de programação funcional. 
 
7. Quais são os três recursos de Haskell que a tornam 
significativamente diferente de Scheme? 
Primeiro, as funcões em Haskell podem ser polimórficas. Segundo, semânticas 
não estritas são usadas em Haskell, já Scheme tem semântica estrita. 
 
8. O que significa avaliação preguiçosa? 
Avaliação preguiçosa significa que as expressões são avaliadas se e quando 
seus valores forem necessários. 
 
Downloaded by Edvaldo Rocha (edvaldoroch@gmail.com)
lOMoARcPSD|14501684
9. O que é uma linguagem de programação estrita? 
Se requer que todos os parâmetros reais sejam completamente avaliados, 
garantindo que o valor de uma função não depende da ordem que os parâmetros 
são avaliados. 
 
10. Qual é a falha em usar linhas de código para comparar a 
produtividade de linguagens funcionais e imperativas? 
Nem todas as linhas de código fonte têm uma complexidade igual, nem levem o 
mesmo tempo para serem produzidas. Por causa da necessidade de lidar com 
variáveis, os programas imperativos têm muitas linhas trivialmente simples para 
inicializar e realizar pequenas mudanças às variáveis. 
 
 
AULA 13 
 
 
Quais são os eventos do modelo de rastreamento que descreve a 
execução de Prolog? 
a( ) Chamar, terminar, refazer e falha. 
b( ) Chamar, executar e falha. 
c(x)Chamar, sair, refazer e falha. 
d( )Chamar, sair e falha. 
e( )Nenhumas das alternativas. 
 
2- O que é uma Proposição? 
 Sentença lógica que pode ou não ser verdadeira 
 
Como são representado os objetos nas proposições de programação 
lógica? 
A) Termos simples, constantes ou variáveis. 
B) Termos compostos e classes. 
C) Objetos e funções. 
Downloaded by Edvaldo Rocha (edvaldoroch@gmail.com)
lOMoARcPSD|14501684
https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=prova-final-questoes-resumo-paradigmas-de-linguagem-de-programacao
D) Nenhuma das respostas anteriores. 
 
O que é um termo composto? 
É um elemento de uma relação matemática, escrito em uma forma com a 
aparência de notação de função matemática. 
 
Uma das características essências das linguagens de programação 
logicas é sua semântica, chamada de? 
Semântica declarativa. 
 
Na linguagem Prolog existem declarações, quais são elas: 
(a) Fatos e metas 
(b) Variáveis e constantes 
(c) Variáveis e metas 
(d) Fatos, regras e metas 
(e) Variáveis, regras e metas 
 
O que é um termo Prolog? 
É uma constante, variável ou estrutura. 
 
Em Prolog as conjunções contém termos múltiplos separados por 
operações? 
a) OR lógicas 
b) XOR lógicas 
c) AND lógicas 
d) NOR lógicas 
e) NAND lógicas 
 
 
Quais as áreas em que a programação lógica tem sido mais utilizada? 
Sistemas de banco de dados relacionais, sistemas especialistas, 
processamento de linguagens natural. 
 
Diferencie a programação na linguagem imperativa e funcional. 
A programação tanto nas linguagens imperativas como nas funcionais, é 
principalmente baseada em procedimentos, cujo significado está no fato do 
Downloaded by Edvaldo Rocha (edvaldoroch@gmail.com)
lOMoARcPSD|14501684
programador saber o que deve ser realizado por um programa e instruir o 
computador a respeito de como a computação deve ser feita. 
 
Como são chamadas as proposições mais simples, que consistem em 
termos compostos? 
São chamadas de proposições atômicas. 
 
 
A programação, tanto nas linguagens imperativas como nas funcionais, é 
principalmente baseada em que? 
• Variáveis; 
• Heurísticas; 
• Procedimentos; 
• Comandos; 
• Nenhuma das alternativas 
 
 
Downloaded by Edvaldo Rocha (edvaldoroch@gmail.com)
lOMoARcPSD|14501684
https://www.studocu.com/pt-br?utm_campaign=shared-document&utm_source=studocu-document&utm_medium=social_sharing&utm_content=prova-final-questoes-resumo-paradigmas-de-linguagem-de-programacao

Outros materiais