Zusammenfassung der Ressource
Paradigmas de Programação
- Imperativa
(Imperative)
Anmerkungen:
- 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
- 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,
- 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
- Baseada em Automata
(Automata Based
Programming)
- 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