Please enable JavaScript.
Coggle requires JavaScript to display documents.
03 - Paradigmas de programação (Paradigma Estruturado (estruturas…
03 - Paradigmas de programação
Paradigmas de Programação
imperativo (ou Procedural ou Procedimental)
Orientada a Objetos
Concorrente
Programação Estruturada
declarativo
Programação Funcional
Lógica
Paradigma Concorrente
programa é quebrado em partes que podem ser executadas concorrentemente em diferentes processadores
Paradigma Lógico
A lógica proporciona uma maneira de demonstrar se uma questão é verdadeira ou falsa
Paradigma Funcional
Não há variáveis, atribuições, estruturas de repetição, alteração de argumentos ou variáveis globais.
Esse paradigma é adequado para inteligência artificial, sistemas matemáticos; aplicações lógicas; entre outros
Paradigma Imperativo
As linguagens imperativas se fundamentam na ideia de ações (procedimentos) que realizam mudanças nos estados (variáveis) do programa, levando-o ao estado desejado
O Paradigma Imperativo informa ao computador como as instruções devem ser executadas
Paradigma Estruturado
estruturas principais
seleção
A Estrutura de Seleção (ou Decisão ou ainda Condicional)
realiza um conjunto de comandos dependendo da
veracidade da condição imposta.
case e if-then-else
repetição
Estrutura de Repetição. Ela repete ou itera conjuntos de comandos dependendo da veracidade da condição imposta.
sequência
uma tarefa é executada após a outra, linearmente
realiza um conjunto de comandos sequencialmente ordenados, descendente e na ordem em que foram declarados
modularidade
divide-se o programa em módulos ou subprogramas com entradas e saídas bem definidas.
favorece a legibilidade, compreensão, manutenção,
organização e reusabilidade do software
tipos
função (sempre retorna algum valor)
procedimento (não retorna nenhum valor – apenas executa alguma ação)
Usar alta coesão e baixo acoplamento
Paradigma Declarativo
informa o que precisa ser executado e o computador decide qual a melhor solução para a requisição
Paradigma Orientado a Objetos
se baseia na abstração de coisas ou objetos do mundo real em um sistema de forma potencialmente reusável
princípios da abstração
encapsulamento (é uma forma de restringir o acesso ao comportamento interno de um objeto)
herança (generalização / especialização)
simples
múltipla *(java e .net não permitem herança múltipla)
composição
polimorfismo (capacidade de abstrair várias implementações diferentes em uma única interface)
estático (sobrecarga ou overloading) - nome do método igual e argumentos diferentes (tempo de compilação / early binding)
dinâmico (sobrescrita, redefinição ou overriding) - nome e argumentos do método iguais (tempo de execução / late binding). A subclasse redefine o método da superclasse
classes e objetos
estado (propriedades)
atributo de classe
atributo de instância
comportamento (operações)
método de classe
método de instância
binding
early binding (tempo de compilação)
late binding (tempo de execução)
identidade
classe abstrata e interface
Uma classe é uma descrição de um conjunto de objetos que compartilham os mesmos atributos, operações, relacionamentos e semântica