image

Accede a bootcamps ilimitados y a más de 650 cursos para siempre

60
%OFF
Article image
Fernanda Araujo
Fernanda Araujo15/06/2025 06:32
Compartir
WEX - End to End EngineeringRecomendado para tiWEX - End to End Engineering

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

    Nesta segunda parte do artigo sobre paradigmas de linguagens de programação em Python, vamos aprofundar o entendimento sobre como os programas são construídos, como a linguagem Python conversa com o "computador ou sistema", e quais paradigmas ela suporta.

    Você vai descobrir:

    • O que é um programa de computador e como ele é interpretado
    • A diferença entre linguagem de máquina, Assembly e linguagens de alto nível como Python
    • O papel da lógica de programação e do pensamento computacional
    • Como classificar as linguagens por geração e nível de abstração
    • E, por fim, como Python se encaixa em diversos paradigmas, como o imperativo, estruturado, orientado a objetos, declarativo, lógico e concorrente

    Com explicações diretas, exemplos práticos em Python e Assembly, e comparações que facilitam a visualização, este artigo vai consolidar seu conhecimento e te preparar para dar o próximo passo: dominar a linguagem Python na prática.

    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:

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

    Exemplo:

    Problema: Criar um sistema de login simples.

    Pensamento computacional aplicado:

    • Decomposição: entrada do usuário, verificação de senha, retorno do sistema.
    • Padrão: todo login exige usuário + senha.
    • Abstração: ignorar aspectos visuais e focar na lógica.
    • Algoritmo:
    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.

     1. 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.

    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.

    2. 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.

    ✅ 3. 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.

    💰 4. 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.

    Paradigmas de Programação usando Python

    A linguagem Python é extremamente versátil porque suporta múltiplos paradigmas de programação, ou seja, diferentes formas de pensar e estruturar soluções computacionais. Nesta segunda parte da série, vimos como esses estilos são aplicados na prática com Python, que é uma linguagem multiparadigma por excelência.

    Para fixar o conteúdo, aqui vai um resumo dos principais paradigmas e como eles se manifestam em Python:

    🟠 Paradigma imperativo

    ➤ Baseado em comandos que alteram o estado do programa passo a passo.

    Exemplo: escrever código linha a linha dizendo exatamente o que fazer.

    python
    
    x = 10
    x = x + 5
    print(x)  # Saída: 15
    

    🟠 Paradigma estruturado

    ➤ Subdivide o código em blocos controlados por estruturas como if, for, while, e funções.

    ✦ Facilita a organização e reutilização do código, evitando comandos desestruturados como goto.

    python
    
    def saudacao(nome):
      print(f"Olá, {nome}!")
    
    saudacao("Fernanda")
    

    🟠 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 com simplicidade.

    python
    
    class Pessoa:
      def __init__(self, nome):
          self.nome = nome
    
      def cumprimentar(self):
          print(f"Olá, {self.nome}!")
    
    p = Pessoa("João")
    p.cumprimentar()
    

    🟠 Paradigma funcional

    ➤ Baseado em funções puras, imutabilidade e ausência de efeitos colaterais.

    ✦ Muito usado para tarefas matemáticas, transformações de dados e paralelismo.

    python
    
    numeros = [1, 2, 3, 4]
    dobro = list(map(lambda x: x * 2, numeros))
    print(dobro)  # Saída: [2, 4, 6, 8]
    

    🟠 Paradigma concorrente

    ➤ Permite que múltiplas partes do programa sejam executadas ao mesmo tempo (concorrência).

    ✦ Usado em Python com threading, async, await, entre outros.

    python
    
    import threading
    
    def tarefa():
      print("Executando em paralelo")
    
    t = threading.Thread(target=tarefa)
    t.start()
    

    🟠 Paradigma declarativo

    ➤ Foca no “o que fazer” e não no “como fazer”.

    ✦ Muito utilizado em expressões como list comprehensions, ou funções como map(), filter() e sum().

    python
    
    pares = [x for x in range(10) if x % 2 == 0]
    print(pares)  # Saída: [0, 2, 4, 6, 8]
    

    🟠 Paradigma lógico

    ➤ Baseado em regras lógicas e inferência automática.

    ✦ Python não é focado nesse paradigma, mas é possível simular com lógica booleana ou bibliotecas como pyDatalog.

    python
    
    x = True
    y = False
    print(x and y)  # Saída: False
    

    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.

    É essa versatilidade que faz Python brilhar em áreas como:

    • Ciência de dados
    • Inteligência Artificial
    • Desenvolvimento web
    • Automação
    • Análise de sistemas
    • Robótica e muito mais.

    👉 No próxima artigo, vamos explorar os fundamentos básicos da linguagem Python.

    image

    Compartir
    Recomendado para ti
    NTT DATA - Java e IA para Iniciantes
    TONNIE - Java and AI in Europe
    Microsoft - Azure Administrator Certification (AZ-104)
    Comentarios (1)
    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#

    Recomendado para tiWEX - End to End Engineering