O GoConqr está de visual novo! Conte para nós o que você achou.

Mapa mental

Paradigmas de Programação

Thiago Nishio Desenvolvimento de Software Português

Conteúdo do mapa

Paradigmas de Programação

  1. Imperativa (Imperative)

    • Oposto: Declarativa
    • Procedural
      • Derivada de programação estruturada, baseado no conceito de programação modular ou chamada procedural
      • Variáveis locais, sequência, seleção, iteração e modularização
      • C, C++, Lisp, PHP, Python
    • Instruções que alteram o estado do progrma diretamente
    • Atribuição direta, estruturas de dados comuns e variáveis globais
    • C, C++, Java, PHP, Python, Ruby
  2. Declarativa (Declarative)

    • Funcional (Functional)
      • Trata computação como a avaliação de funções matemáticas, evitando estado e dados mutáveis
      • Lambda, composicionalidade, formula, recursão, transparência referencial, sem efeitos colaterais
      • C++, Clojure, Coffeescript, Elixir, Erlang, F#, Haskell, Lisp, Python, Ruby, Scala, SequenceL, SML
    • Define lógica computacional sem definir detalhes para controle de fluxo de dados (Control Flow)
    • Datastream
      • Reativa (Reactive)
        • Promises
        • Realiza a propagação da mudança,
  3. Orientada a Eventos (Event Driven)

    • Fluxo é determinado principalmente por eventos, tais como cliques de mouse, teclado, tela, temporizador, sensores e mensagens
    • Loop principal, manipuladores de eventos (event handlers) processos assíncronos (asynchronous processes)
    • Javascript, ActionScript, Visual Basic, Elm, Delphi
  4. Baseada em Automata (Automata Based Programming)

  5. Estruturada (Structured)

    • Orientada a Objetos (Object Oriented Programming - OOP)
      • Trata campos de dados (propriedades) como objetos manipulados por métodos pré-definidos
      • Objetos, métodos, passagem de mensagens, abstração de dados, intefaces (código), controladores de acesso a propriedades, encapsulamento, polimorfismo, herança (inheritance), sobrecarga
      • Common Lisp, C++, C#, Eiffel, Java, PHP, Python, Ruby, Scala
      • Orientada a Aspecto (Aspect-Oriented Programming - AOP)
        • Usado para um conjunto específico de problemas: Cross-cutting concerns. UM concern é algo que aparece em diferentes lugares em uma aplicação (autorização e controle de acesso via login, por exemplo).
        • Possui pelo menos 2 componentes: uma forma de centralizar a funcionalidade para lidar com um concern e uma forma especificar onde na aplicação esta funcionalidade será acrescentada sem alterar o código.
      • Classes e os relacionamentos entre elas: herança (um relacionamento que é configurado em tempo de compilação e composição (quando objetos são agrupados em tempo de execução)
    • Um estilo de programação imperativa, com mais estruturas lógicas
    • Structogramas, indentação, pode ter uso limitado de instruções GOTO
    • C, C++, Java, Python
    • Estruturas de controles executadas em sequência, seleção de fluxo (instruções if e else), iteração (while, for, do while, foreach), recursão (chamando a mesma subrotina repetidamente até uma determinada condição), blocos e subrotinas

Informações

Descrição
Estudo sobre diferentes paradigmas de programação existentes
Criado por
Thiago Nishio
Visualizações
38
Avaliação

Fale Conosco

Sobre o que é sua mensagem?

O que você acha do novo visual?

Você gostou?