GoConqr has a new look! Let us know what you think.

Mind map

Paradigmas de Programação

Thiago Nishio Desenvolvimento de Software Portuguese

Map content

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

Information

Description
Estudo sobre diferentes paradigmas de programação existentes
Created by
Thiago Nishio
Views
38
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?