(Poscomp, 2025) Os paradigmas de linguagens de programação vão muito além de estilos de codificação: são modelos mentais que moldam a maneira como estruturamos e resolvemos problemas. Longe de serem regras inflexíveis, funcionam como lentes que ampliam nossa percepção técnica. Quanto mais dessas perspectivas você dominar, mais clara, estratégica e criativa será sua atuação como desenvolvedor. Com base nesse entendimento, relacione a Coluna 1 à Coluna 2, associando os paradigmas de linguagens de programação às suas respectivas características.
Coluna 1
1. Imperativo.
2. Funcional.
3. Orientado a Objetos.
4. Lógico.
Coluna 2
( ) Programação baseada na aplicação de funções matemáticas, enfatizando imutabilidade e ausência de efeitos colaterais.
( ) Resolve problemas por meio de encadeamento de regras e fatos, utilizando mecanismos de inferência automática para encontrar soluções.
( ) Programação centrada na modificação explícita de estados da memória por meio de comandos sequenciais e atribuições de variáveis.
( ) Organização de programas em entidades que encapsulam dados e comportamentos, promovendo reúso e flexibilidade por meio de conceitos como herança e polimorfismo.
A ordem correta de preenchimento dos parênteses, de cima para baixo, é:
A 3 – 2 – 1 – 4.
B 2 – 4 – 3 – 1.
C 3 – 2 – 4 – 1.
D 4 – 2 – 3 – 1.
E 2 – 4 – 1 – 3.
(2. Funcional) Programação baseada na aplicação de funções matemáticas, enfatizando imutabilidade e ausência de efeitos colaterais.
O paradigma funcional (usado em linguagens como Haskell, Elixir ou através de recursos em JavaScript/Python) trata a computação como a avaliação de funções matemáticas.
Imutabilidade: Significa que, uma vez que uma variável ou dado é criado, ele não pode ser alterado. Em vez de mudar o dado, criamos um novo.
Ausência de efeitos colaterais: Uma função, ao receber os mesmos parâmetros, sempre retornará exatamente o mesmo resultado, sem alterar nada "por fora" (como mudar uma variável global ou escrever em um arquivo).
(4. Lógico) Resolve problemas por meio de encadeamento de regras e fatos, utilizando mecanismos de inferência automática para encontrar soluções.
O paradigma lógico (cujo maior expoente é a linguagem Prolog) é declarativo. Você não diz ao computador como fazer algo passo a passo. Em vez disso, você alimenta o sistema com fatos (ex: "João é pai de Maria") e regras (ex: "Se X é pai de Y, então X é ancestral de Y"). O motor do sistema usa inferência automática para deduzir as respostas às suas perguntas com base nessa lógica.
(1. Imperativo) Programação centrada na modificação explícita de estados da memória por meio de comandos sequenciais e atribuições de variáveis.
O paradigma imperativo (base de linguagens como C, Pascal e Assembly) foca no como resolver o problema. Você dá ao computador uma receita de bolo: uma sequência exata de passos (comandos sequenciais) que dizem: "pegue este valor, guarde nesta variável (atribuição), some com aquele outro valor, e atualize a memória (modificação de estado)". É o modelo mais próximo de como o hardware do computador realmente funciona.
(3. Orientado a Objetos) Organização de programas em entidades que encapsulam dados e comportamentos, promovendo reúso e flexibilidade por meio de conceitos como herança e polimorfismo.
Este é o paradigma mais famoso atualmente (usado em Java, C#, Python, etc.). Ele modela o software em torno de "objetos" (as entidades).
Encapsulamento: Juntar dados (atributos) e ações (métodos) em um único lugar.
Herança e Polimorfismo: São os pilares clássicos da Orientação a Objetos que permitem criar hierarquias de código e reutilizar estruturas de forma flexível.
Conforme exposto, a resposta correta é:
E 2 – 4 – 1 – 3.