Article image
Fernanda Araujo
Fernanda Araujo15/06/2025 06:32
Compartilhe

Paradigmas de Linguagens de Programação em Python: Tudo sobre Paradigmas (Part. 02)

  • #Python

Nesse artigo vamos aprofundar o entendimento sobre como os programas são construídos, como a linguagem Python se comunica com o computador ou sistema, e quais paradigmas ela é capaz de suportar.

Ao longo do texto, você vai entender o que é, de fato, um programa de computador e como ele é interpretado pelas máquinas. Também vamos explorar as diferenças entre linguagem de máquina, Assembly e linguagens de alto nível como o Python, além de discutir o papel fundamental da lógica de programação e do pensamento computacional na construção de soluções eficientes.

Outro ponto importante será a classificação das linguagens de programação por gerações e níveis de abstração, o que nos ajudará a entender a evolução das ferramentas que usamos hoje. Por fim, vamos examinar como o Python, sendo uma linguagem multiparadigma, se encaixa em diferentes estilos de programação — como o paradigma imperativo, estruturado, orientado a objetos, funcional, declarativo, lógico e concorrente.

Com explicações objetivas, exemplos práticos em Python e até alguns trechos em Assembly para fins comparativos, este artigo foi pensado para consolidar seu conhecimento e preparar o terreno para os próximos capítulos, onde vamos explorar cada paradigma com mais profundidade.

O que é um programa de computador?

Um programa de computador é um conjunto de instruções que dizem ao computador exatamente o que fazer. Essas instruções são executadas passo a passo para resolver um problema, realizar uma tarefa ou automatizar processos.

Exemplo prático:

Um programa de calculadora realiza operações matemáticas (como somar e dividir) conforme o usuário digita os números e escolhe a operação.

Programa-fonte e como ele é desenvolvido

O programa-fonte é o código escrito por humanos em uma linguagem de programação, como Python. Esse código precisa ser traduzido para linguagem que o computador entenda.

Etapas básicas do desenvolvimento:

  1. O desenvolvedor escreve o código (ex: print("Olá, mundo!")).
  2. Um interpretador ou compilador traduz esse código para linguagem de máquina.
  3. O computador executa essas instruções.

Linguagem de máquina

É o nível mais baixo de comunicação com o computador, composta apenas por números binários (0 e 1). Essa linguagem representa instruções diretamente compreendidas pelo processador.

Exemplo de instrução em linguagem de máquina:

10110000 01100001

Cada número tem um significado específico para o processador: operação, registrador, endereço, etc.

Linguagem Assembly: a ponte entre máquina e humano

Assembly é uma representação textual simbólica da linguagem de máquina. Um exemplo:

assembly

MOV AL, 61h

Esse comando move o valor hexadecimal 61 para o registrador AL.

Linguagem de máquina X Linguagem Humana

Para facilitar a vida dos programadores, surgiram as linguagens de programação de alto nível, como Python. Elas usam palavras mais próximas da língua humana e abstraem detalhes técnicos do hardware.

python

print("Olá, mundo!")

Essa instrução, tão simples para nós, será convertida em centenas de operações de máquina ao ser executada.

Breve introdução a números binários e valores booleanos

  • Binário: sistema numérico com base 2, que usa apenas 0 e 1.
  • Booleano: tipo de dado com apenas dois valores possíveis: True (verdadeiro) ou False (falso). Fundamental para lógica de programação.

Exemplo em Python:

python

ligado = True
if ligado:
  print("O sistema está ativo.")

Papel da abstração nas linguagens de programação

A abstração é o que permite ignorar detalhes de baixo nível e focar no problema a ser resolvido.

Camadas de abstração:

  1. Hardware troca informações diretamente com a linguagem de máquina.
  2. A linguagem de máquina se conecta ao Assembly, uma forma mais compreensível.
  3. O Assembly é traduzido pelas ferramentas para linguagens de alto nível, como Python.

Essas camadas tornam o desenvolvimento muito mais rápido e acessível.

Comparativo entre: Python X Assembly X Linguagem de Máquina

image

Aprendendo sobre Lógica de Programação

A lógica de programação é o alicerce da construção de qualquer sistema ou software. Ela representa a forma de pensar estruturada que usamos para resolver problemas de maneira automatizada, utilizando uma linguagem de programação.

É o conjunto de regras e técnicas que nos permite escrever instruções claras e organizadas para que um computador consiga executá-las corretamente. Aprender lógica de programação é como aprender a dar ordens para uma máquina de forma que ela compreenda e execute.

Elementos fundamentais da lógica

📌 1. Sequência

Representa a ordem natural em que as instruções são executadas, uma após a outra, como uma receita de bolo.

python

print("Passo 1: Ligar o computador")
print("Passo 2: Abrir o navegador")
print("Passo 3: Acessar o WhatsApp")

Essas três linhas serão executadas na mesma ordem em que foram escritas.

📌 2. Decisão (Condicional)

Permite tomar decisões com base em condições. Em Python, usamos if, else e elif:

python

idade = 18

if idade >= 18:
  print("Você é maior de idade.")
else:
  print("Você é menor de idade.")

Aqui, o programa analisa o valor de idade e executa um bloco de código de acordo com o resultado.

📌 3. Repetição (Laços)

Usada para repetir instruções automaticamente. Em Python, usamos for ou while:

python

# Usando for
for i in range(5):
  print("Repetição número:", i)

# Usando while
contador = 0
while contador < 5:
  print("Contando:", contador)
  contador += 1

Esses laços permitem executar uma tarefa várias vezes, economizando código e tornando o programa mais eficiente.

📌 4. Variáveis e Operações

Variáveis armazenam valores. Com elas, podemos fazer operações matemáticas, lógicas ou textuais.

python

a = 10
b = 5
soma = a + b
print("A soma é:", soma)

# Operação lógica
ligado = True
print("Está ligado?", ligado)

As variáveis são como caixas com nomes que guardam diferentes tipos de dados (números, textos, booleanos, listas, etc.).

Por que aprender lógica de programação no inicio do desenvolvimento?

Antes mesmo de dominar uma linguagem como Python, é essencial entender como estruturar um raciocínio lógico. Isso porque todas as linguagens — sejam de alto ou baixo nível — seguem os mesmos princípios lógicos. Saber lógica é como entender as regras de um jogo. Depois, você pode aprender a jogar em diferentes "tabuleiros" (linguagens).

Exemplo de Algoritmo simples

  • Problema: Dado um número, informar se ele é par ou ímpar.
  • Lógica:
  1. Receber o número do usuário
  2. Verificar se ele é divisível por 2
  3. Mostrar o resultado

Código em Python

Python

numero = int(input("Digite um número: "))

if numero % 2 == 0:
  print("O número é par.")
else:
  print("O número é ímpar.")

A lógica de programação é a língua universal por trás de todos os softwares. Aprender seus fundamentos é como aprender a montar soluções — passo a passo, com clareza e eficiência. Com ela, você ganha o poder de transformar ideias em sistemas funcionais, inteligentes e automatizados.

Pensamento Computacional e Engenharia de Prompts

Na era da inteligência artificial, duas habilidades se tornaram essenciais para programadores, analistas e qualquer pessoa que interage com tecnologia: pensamento computacional e engenharia de prompts. Ambas ajudam a resolver problemas, mas de formas complementares.

🤖 Pensamento Computacional

É uma forma de pensar e resolver problemas de forma lógica e estruturada, do mesmo jeito que um computador faria. Isso não significa pensar como uma máquina, mas quebrar os problemas em partes menores e organizadas, facilitando sua resolução com algoritmos ou código.

Os 4 pilares do pensamento computacional:

  • Decomposição: Dividir o problema em partes menores. → Ex: Para criar um site, você divide em: layout, navegação, conteúdo e funcionalidades.
  • Reconhecimento de padrões: Identificar repetições ou semelhanças. → Ex: Se vários usuários digitam a mesma palavra com erros diferentes, você pode tratar todos com uma mesma lógica.
  • Abstração: Ignorar detalhes irrelevantes e focar no que importa. → Ex: Ao criar um jogo, você foca no funcionamento dos personagens, não nos detalhes do sistema operacional.
  • Algoritmos: Criar uma sequência de passos para resolver o problema. → Ex: "Se a senha estiver correta, liberar acesso. Se não, exibir erro."

Exemplo:

python

usuario = input("Digite o usuário: ")
senha = input("Digite a senha: ")

if usuario == "admin" and senha == "123":
  print("Acesso permitido")
else:
  print("Acesso negado")

🧠 Engenharia de Prompts

É a habilidade de se comunicar de forma eficiente com modelos de inteligência artificial, como o ChatGPT. Um prompt é uma instrução ou pergunta que você dá à IA. A engenharia de prompts envolve saber como escrever essas instruções para obter respostas úteis, precisas e criativas.

O que é um bom prompt?

  • Claro: sem ambiguidade
  • Direto: vai ao ponto
  • Contextualizado: dá informações necessárias
  • Objetivo: tem um propósito definido

Exemplo:

image

Pensamento Computacional + Engenharia de Prompts = Superpoder

A fusão dessas duas habilidades permite que você:

  • Estruture problemas complexos e os transforme em soluções simples.
  • Comunique-se com IA para automatizar partes do trabalho.
  • Seja mais produtiva, criativa e estratégica no desenvolvimento de software e conteúdos.

O pensamento computacional ensina como resolver problemas com lógica. A engenharia de prompts ensina como resolver problemas com inteligência artificial. Dominar os dois é fundamental para quem quer se destacar no mercado atual, que valoriza autonomia, clareza de raciocínio e capacidade de colaborar com tecnologias avançadas.

Classificação das linguagens de programação por nível

(Quais são as linguagens de alto nível e baixo nível?)

As linguagens de programação podem ser classificadas com base no nível de abstração em relação ao hardware (máquina). Essa classificação ajuda a entender o quanto uma linguagem se aproxima da linguagem humana ou da estrutura do computador.

Linguagens de Baixo Nível

São aquelas mais próximas da linguagem de máquina e que exigem um conhecimento mais profundo da arquitetura do computador. Elas oferecem menos abstração, mas maior controle sobre os recursos do sistema.

Exemplos:

  • Linguagem de máquina (1ª geração) – escrita diretamente em binário (0 e 1)
  • Assembly (2ª geração) – usa mnemônicos como MOV, ADD, JMP

Essas linguagens são difíceis de ler, escrever e manter, mas são extremamente eficientes em termos de performance.

Linguagens de Alto Nível

São aquelas mais próximas da linguagem humana, com maior abstração. São mais fáceis de aprender, escrever e entender, além de serem portáteis (funcionam em diferentes plataformas sem grandes modificações).

Exemplos:

  • Python, Java, JavaScript, C#, Ruby, PHP, Go, Swift, Kotlin
  • SQL (linguagem declarativa voltada para banco de dados)
  • MATLAB, R (voltadas para aplicações científicas e estatísticas)

Essas linguagens não lidam diretamente com registradores, endereços de memória ou instruções específicas de hardware — tudo isso é abstraído por meio de bibliotecas, interpretadores ou compiladores.

Geração das Linguagens de Programação

A imagem abaixo resume graficamente a evolução das linguagens de programação, organizando-as por geração, com exemplos e contexto histórico:

image

💡 Dica: Observe como as linguagens mais recentes (como Python, Java e C#) aparecem na 3ª geração, com foco em abstração, produtividade e facilidade de uso. Já linguagens como Assembly ou a linguagem de máquina estão nas gerações iniciais, próximas ao funcionamento direto do hardware. Alguns autores classificam a 6 geração como uma evolução da 5, em que prevalecem as aplicações de redes neurais, uma outra vertente da inteligência artificial.

Critérios para Avaliação de Linguagens de Programação

Ao escolher uma linguagem para um projeto, é importante avaliar diferentes aspectos. Segundo Robert Sebesta (2018), existem quatro grandes critérios: legibilidade, facilidade de escrita, confiabilidade e custo. Esses fatores impactam diretamente a produtividade, manutenção e segurança do software.

 Legibilidade

É a facilidade com que o código pode ser lido e compreendido, especialmente por outros programadores.

Simplicidade

Quanto menos construções e variações uma linguagem tem, mais simples é interpretá-la.

Exemplo:

Python (simples e legível):

python

contador += 1

Assembly (mais verboso e técnico):

asm

MOV AX, contador
INC AX
MOV contador, AX

O mesmo objetivo (incrementar uma variável) é alcançado com muito mais esforço em Assembly.

Ortogonalidade

Uma linguagem com boa ortogonalidade permite combinar estruturas básicas de forma consistente.

Python (boa ortogonalidade):

python

def processa(dados):
  for item in dados:
      if isinstance(item, dict):
          print(item["nome"])

Assembly (baixa ortogonalidade):

  • Não há estruturas como listas, funções ou tipos compostos diretamente. Tudo deve ser feito com manipulação manual de registradores e memória.

Instruções de Controle

Comandos que controlam o fluxo do programa devem ser claros e previsíveis.

Python (estrutura moderna):

python

if idade >= 18:
  print("Maior de idade")

Assembly (estrutura confusa para quem não conhece):

asm

MOV AX, idade
CMP AX, 18
JL menor
; Se maior ou igual a 18
; imprime "Maior de idade"

Tipos e Estruturas de Dados

A clareza na criação e manipulação de dados é essencial.

Python (alta abstração):

python

aluno = {"nome": "Ana", "idade": 22}

Assembly (sem suporte direto):

  • É preciso reservar espaço na memória manualmente:
asm

aluno_nome DB 'Ana', 0
aluno_idade DB 22

Sintaxe

A forma como os blocos são organizados afeta a leitura.

  • Python: usa indentação obrigatória
python

for i in range(3):
  print(i)
  • Assembly: não possui blocos. Cada linha é uma instrução sequencial e precisa ser comentada para clareza.

Facilidade de Escrita (Redigibilidade)

Refere-se à rapidez e clareza com que conseguimos escrever soluções em uma linguagem.

Expressividade

Linguagens expressivas exigem menos código para comunicar intenções complexas.

Python:

python

nomes = ["Ana", "Leo", "João"]
for nome in nomes:
  print(nome.upper())

Assembly:

  • Isso exigiria alocação de memória, manipulação de ponteiros, tabelas ASCII e muitos passos manuais — algo que tomaria dezenas de linhas para o mesmo resultado.

Suporte à Abstração

A abstração reduz a complexidade. Python permite criar funções e estruturas reutilizáveis com facilidade.

Python:

python

def calcula_area(base, altura):
  return base * altura / 2

Assembly:

  • Não há suporte direto a funções com parâmetros e retorno.
  • O programador precisa simular chamadas, empilhar parâmetros e manipular o fluxo manualmente.

Confiabilidade

Confiabilidade é a garantia de que o programa funciona corretamente em diferentes condições.

Exemplos:

  • Python possui tratamento de exceções:
python

try:
  resultado = 10 / 0
except ZeroDivisionError:
  print("Erro: divisão por zero")
  • Assembly: não possui verificação automática. Uma divisão por zero pode travar o sistema ou causar comportamento inesperado.

Outros fatores que afetam a confiabilidade:

  • Verificação de tipos (presente em Python): impede uso incorreto de dados.
  • Gerenciamento automático de memória: Python possui coleta de lixo, Assembly não.

Custo

O custo envolve aprendizado, tempo de desenvolvimento, manutenção e execução.

image

Comparando Python e Assembly, percebemos o impacto dos critérios técnicos no dia a dia de quem programa:

  • Python foca em clareza, produtividade e abstração. Ideal para iniciantes e aplicações modernas.
  • Assembly exige domínio técnico, mas oferece controle total e performance máxima. É usado em contextos onde cada byte e ciclo contam.

Compreender esses critérios te ajuda a escolher a linguagem certa para cada projeto e entender por que Python é uma linguagem de alto nível e Assembly de baixo nível — cada uma com seu papel na história da computação.

Python é uma linguagem multiparadigma, o que significa que você pode combinar diferentes formas de pensamento e estilos de codificação para resolver problemas mais eficazmente. Essa flexibilidade permite que você escreva código mais limpo, reutilizável, legível e adaptável a diferentes contextos — seja em um script simples ou em sistemas complexos.

👉 No próximo artigo, vamos explorar os Fundamentos básicos sobre Python.

image

Compartilhe
Comentários (2)
DIO Community
DIO Community - 16/06/2025 16:07

Fernanda, seu artigo é uma excelente abordagem sobre os paradigmas de programação em Python, e de como a linguagem se adapta a diversos estilos de desenvolvimento. Você conseguiu explicar de forma clara como esses paradigmas podem ser aplicados na prática e como Python se destaca por ser multiparadigma, o que realmente amplia seu poder de uso em diferentes contextos.

Aqui na DIO, valorizamos conteúdos que não só exploram a teoria, mas também mostram como essas teorias se aplicam no cotidiano do desenvolvedor, permitindo uma melhor compreensão e aproveitamento das ferramentas. Essa capacidade de Python de se encaixar em diferentes paradigmas é o que a torna tão popular no mercado, especialmente para quem está buscando aplicar IA, automação ou mesmo desenvolvimento web.

Dentre os paradigmas apresentados, qual você considera o mais desafiador de implementar na prática? E como você sugere que desenvolvedores iniciantes lidem com essa diversidade de abordagens?

Sergio Eustaquio
Sergio Eustaquio - 15/06/2025 07:14

Paradigma orientado a objetos (OOP)

➤ Organiza o código em objetos (instâncias de classes) que possuem atributos e métodos.

✦ Python permite criar classes, herança, encapsulamento e polimorfismo.


É ESSE QUE ESTOU APRENDENDO COM .NET C#