Computer Science › Algoritmos e Software

Paradigmas de Programação

0 de 14
  1. Programação Concorrente: Estado Compartilhado vs. Passagem de Mensagens

    Duas suposições fundacionais opostas sobre o que tarefas concorrentes têm permissão para tocar, memória compartilhada versus mensagens explícitas, e por que essa única escolha determina se condições de corrida sequer podem existir.

    Ler →6 seções14 min
  2. Programação Lógica: Fatos, Regras, e Consultas

    Um programa lógico é um banco de dados de fatos e regras onde uma consulta é resolvida por unificação automática, a realização mais antiga e literal da ideia de "o quê, não como" que reaparece depois como programação declarativa.

    Ler →6 seções14 min
  3. Programação Declarativa: O Quê, Não Como

    SQL leva a divisão entre descrever um resultado e escrever o procedimento que o produz ao seu extremo, deixando toda decisão de execução para um motor de propósito geral, o mesmo movimento estrutural já visto em programação lógica.

    Ler →6 seções14 min
  4. Programação Imperativa Como Um Paradigma Entre Vários

    Programação imperativa é o paradigma no qual todo programa anterior neste currículo foi escrito, sem que o fato fosse nomeado até agora; seu traço definidor é estado mutável mudado por instruções ordenadas, explícitas, capturado no padrão acumulador.

    Ler →6 seções14 min
  5. Classes, Objetos e Encapsulamento

    Uma classe empacota dados e as operações sobre eles em um único molde; encapsulamento é o que dá ao invariante da divisão interface/implementação de um TAD uma fronteira real, aplicada pela linguagem, roteando toda mudança através de métodos que podem recusá-la.

    Ler →6 seções14 min
  6. Herança

    Uma subclasse estende uma superclasse, ganhando automaticamente seus atributos e métodos sem duplicar código, e seletivamente sobrescreve só o que precisa diferir; esse reúso não é grátis, o problema da classe base frágil é uma consequência estrutural direta do acoplamento que cria.

    Ler →6 seções13 min
  7. Polimorfismo

    Polimorfismo é código chamador invocando o mesmo nome de método em objetos de tipos diferentes, confiando no despacho dinâmico para resolver a sobrescrita correta em tempo de chamada; é o ganho direto para o qual herança se preparava, eliminando ramificação por tipo.

    Ler →6 seções13 min
  8. Funções Puras e Imutabilidade

    Uma função pura depende só de seus argumentos e não produz efeitos colaterais observáveis; a armadilha clássica do argumento padrão mutável mostra como pureza é quebrada acidentalmente, e imutabilidade é o que a torna estruturalmente aplicável em vez de uma disciplina manual.

    Ler →6 seções12 min
  9. Funções de Ordem Superior e Map/Filter/Reduce

    Map, filter, e reduce transformam "funções são valores" no idioma central de um paradigma inteiro, cada uma parametrizada por uma pequena função descrevendo o quê fazer, abstraindo o loop explícito e a variável acumuladora que a versão imperativa escreve manualmente.

    Ler →6 seções12 min
  10. Closures

    Uma closure é o mecanismo que permite a uma função retornada carregar consigo um pedaço de estado configurado em seu escopo de criação, mantendo aquele estado vivo muito depois de a chamada externa que o criou já ter retornado.

    Ler →6 seções11 min
  11. Pattern Matching e Tipos de Dados Algébricos

    O `match` do Python transforma checar-a-forma-e-extrair-as-partes em uma única construção direta, aproximando (sem a garantia de exaustividade verificada pelo compilador) o estilo de tipos de dados algébricos de linguagens da família ML/Haskell.

    Ler →6 seções13 min
  12. Recursão como o Laço Primário

    Sem mutação permitida, um contador de laço ou acumulador não tem onde viver, então linguagens funcionais tornam a recursão, não uma alternativa ocasional, o mecanismo padrão para expressar qualquer repetição.

    Ler →6 seções13 min
  13. Escolhendo um Paradigma para um Problema

    Uma tabela de síntese conectando a forma de um problema real a qual dos seis paradigmas se encaixa melhor, e a percepção de encerramento de que quase nenhum sistema real se compromete com exatamente um.

    Ler →6 seções16 min

Paradigmas de Programação

Part of the Computer Science curriculum.

Sort
1

O Que É um Paradigma de Programação

Um paradigma é uma postura fundamental sobre o que um "passo" computacional significa, uma lente através da qual se olha um problema, não uma propriedade fixada pela linguagem; comparar como o mesmo pequeno problema é resolvido em estilos genuinamente diferentes é o que torna a diferença concreta.

2

Programação Concorrente: Estado Compartilhado vs. Passagem de Mensagens

Duas suposições fundacionais opostas sobre o que tarefas concorrentes têm permissão para tocar, memória compartilhada versus mensagens explícitas, e por que essa única escolha determina se condições de corrida sequer podem existir.

3

Programação Lógica: Fatos, Regras, e Consultas

Um programa lógico é um banco de dados de fatos e regras onde uma consulta é resolvida por unificação automática, a realização mais antiga e literal da ideia de "o quê, não como" que reaparece depois como programação declarativa.

4

Programação Declarativa: O Quê, Não Como

SQL leva a divisão entre descrever um resultado e escrever o procedimento que o produz ao seu extremo, deixando toda decisão de execução para um motor de propósito geral, o mesmo movimento estrutural já visto em programação lógica.

5

Programação Imperativa Como Um Paradigma Entre Vários

Programação imperativa é o paradigma no qual todo programa anterior neste currículo foi escrito, sem que o fato fosse nomeado até agora; seu traço definidor é estado mutável mudado por instruções ordenadas, explícitas, capturado no padrão acumulador.

6

Classes, Objetos e Encapsulamento

Uma classe empacota dados e as operações sobre eles em um único molde; encapsulamento é o que dá ao invariante da divisão interface/implementação de um TAD uma fronteira real, aplicada pela linguagem, roteando toda mudança através de métodos que podem recusá-la.

7

Herança

Uma subclasse estende uma superclasse, ganhando automaticamente seus atributos e métodos sem duplicar código, e seletivamente sobrescreve só o que precisa diferir; esse reúso não é grátis, o problema da classe base frágil é uma consequência estrutural direta do acoplamento que cria.

8

Polimorfismo

Polimorfismo é código chamador invocando o mesmo nome de método em objetos de tipos diferentes, confiando no despacho dinâmico para resolver a sobrescrita correta em tempo de chamada; é o ganho direto para o qual herança se preparava, eliminando ramificação por tipo.

9

Funções Puras e Imutabilidade

Uma função pura depende só de seus argumentos e não produz efeitos colaterais observáveis; a armadilha clássica do argumento padrão mutável mostra como pureza é quebrada acidentalmente, e imutabilidade é o que a torna estruturalmente aplicável em vez de uma disciplina manual.

10

Funções de Ordem Superior e Map/Filter/Reduce

Map, filter, e reduce transformam "funções são valores" no idioma central de um paradigma inteiro, cada uma parametrizada por uma pequena função descrevendo o quê fazer, abstraindo o loop explícito e a variável acumuladora que a versão imperativa escreve manualmente.

11

Closures

Uma closure é o mecanismo que permite a uma função retornada carregar consigo um pedaço de estado configurado em seu escopo de criação, mantendo aquele estado vivo muito depois de a chamada externa que o criou já ter retornado.

12

Pattern Matching e Tipos de Dados Algébricos

O `match` do Python transforma checar-a-forma-e-extrair-as-partes em uma única construção direta, aproximando (sem a garantia de exaustividade verificada pelo compilador) o estilo de tipos de dados algébricos de linguagens da família ML/Haskell.

13

Recursão como o Laço Primário

Sem mutação permitida, um contador de laço ou acumulador não tem onde viver, então linguagens funcionais tornam a recursão, não uma alternativa ocasional, o mecanismo padrão para expressar qualquer repetição.

14

Escolhendo um Paradigma para um Problema

Uma tabela de síntese conectando a forma de um problema real a qual dos seis paradigmas se encaixa melhor, e a percepção de encerramento de que quase nenhum sistema real se compromete com exatamente um.