Paradigmas de Programação

Thiago Nishio
Mind Map by Thiago Nishio, updated more than 1 year ago
Thiago Nishio
Created by Thiago Nishio about 5 years ago
19
0

Description

Estudo sobre diferentes paradigmas de programação existentes

Resource summary

Paradigmas de Programação
  1. Imperativa (Imperative)

    Annotations:

    • Oposto: Declarativa
    1. Procedural
      1. Derivada de programação estruturada, baseado no conceito de programação modular ou chamada procedural
        1. Variáveis locais, sequência, seleção, iteração e modularização
          1. C, C++, Lisp, PHP, Python
          2. Instruções que alteram o estado do progrma diretamente
            1. Atribuição direta, estruturas de dados comuns e variáveis globais
              1. C, C++, Java, PHP, Python, Ruby
              2. Declarativa (Declarative)
                1. Funcional (Functional)
                  1. Trata computação como a avaliação de funções matemáticas, evitando estado e dados mutáveis
                    1. Lambda, composicionalidade, formula, recursão, transparência referencial, sem efeitos colaterais
                      1. C++, Clojure, Coffeescript, Elixir, Erlang, F#, Haskell, Lisp, Python, Ruby, Scala, SequenceL, SML
                      2. Define lógica computacional sem definir detalhes para controle de fluxo de dados (Control Flow)
                        1. Datastream
                          1. Reativa (Reactive)
                            1. Promises
                              1. Realiza a propagação da mudança,
                          2. Orientada a Eventos (Event Driven)
                            1. Fluxo é determinado principalmente por eventos, tais como cliques de mouse, teclado, tela, temporizador, sensores e mensagens
                              1. Loop principal, manipuladores de eventos (event handlers) processos assíncronos (asynchronous processes)
                                1. Javascript, ActionScript, Visual Basic, Elm, Delphi
                                2. Baseada em Automata (Automata Based Programming)
                                  1. Estruturada (Structured)
                                    1. Orientada a Objetos (Object Oriented Programming - OOP)
                                      1. Trata campos de dados (propriedades) como objetos manipulados por métodos pré-definidos
                                        1. Objetos, métodos, passagem de mensagens, abstração de dados, intefaces (código), controladores de acesso a propriedades, encapsulamento, polimorfismo, herança (inheritance), sobrecarga
                                          1. Common Lisp, C++, C#, Eiffel, Java, PHP, Python, Ruby, Scala
                                            1. Orientada a Aspecto (Aspect-Oriented Programming - AOP)
                                              1. 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).
                                                1. 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.
                                                2. 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)
                                                3. Um estilo de programação imperativa, com mais estruturas lógicas
                                                  1. Structogramas, indentação, pode ter uso limitado de instruções GOTO
                                                    1. C, C++, Java, Python
                                                      1. 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
                                                      Show full summary Hide full summary

                                                      Similar

                                                      Programação
                                                      Prepara Palhoça
                                                      Mapa Mental - Algoritmos e Programação
                                                      Marcos Santos2025
                                                      Mapa Mental de Revisão de Algoritmos e Programação I
                                                      José Toniazzo
                                                      Linguagens de Programação
                                                      Lucas Miranda
                                                      PROGRAMAÇÃO
                                                      Guilherme Toniello
                                                      LINGUAGEM DE PROGRAMAÇÃO I
                                                      ailtonmidias
                                                      Lógica de Programação- Dados
                                                      Gabriela Alves
                                                      INTRODUÇÃO AOS PARADIGMAS DAS LINGUAGENS DE PROGRAMAÇÃO
                                                      cleversonsh
                                                      006A - Linguagem de Programação - C# - Fundamentos
                                                      Ethelberto Mello
                                                      Prova Linguagem de Programação 1 bimestre
                                                      Alexandre Nascimento
                                                      Algoritmos e Lógica de Programação
                                                      andriellicm