Você está na página 1de 6

17/08/2020

Linguagens de Programação
Paradigmas de Programação:
Visão Geral Paradigmas
Declarativos e Descritivos

1 2

Paradigmas de Programação

Paradigmas Declarativos
Declarativos Descritivos (Imperativos)
Funcional Procedural
Lógico Orientado a Objeto
Orientado a aspectos

3 4

O Paradigma Funcional Paradigma Funcional

5 6

1
17/08/2020

Exemplo em LISP Visão Crítica do Paradigma Funcional

7 8

Principais Linguagens Funcionais Principais Linguagens Funcionais

9 10

Aplicações do Paradigma Funcional Paradigma Lógico

https://bytescout.com/blog/functional-programming.html

http://homepages.inf.ed.ac.uk/wadler/realworld/index.html

11 12

2
17/08/2020

Paradigma Lógico Paradigma Lógico – Exemplo Prolog


Código Fonte PROLOG Execução (Interpretação)
{consulta}
satellite(S).
{resposta}
S=moon;
S=phobos;
S=deimos;

13 14

Visão Crítica do Paradigma Lógico Aplicações do Paradigma Lógico

15 16

Paradigma Imperativo (Estruturado)

Paradigmas Descritivos

17 18

3
17/08/2020

Paradigma Imperativo (Estruturado) Exemplo de Programa - C


1: #include <stdio.h>
2: double k;
3: int main() {
4: int n, /* guarda o numero dado */
5: i, /* auxiliar */
6: nfat; /* valor calculado */
7:
8: printf ("\nDigite um inteiro nao-negativo: ");
9: scanf ("%d", &n);
10: nfat = 1;
11: for (i = n; i > 1; i--) {
12: nfat = nfat * i;
13: }
14: printf("O valor de %d!= %d\n", n, nfat);
15: return 0;
16: }

19 20

Visão Crítica do Paradigma Imperativo Paradigma Orientado a Objeto

21 22

Modelo Computacional do
Exemplo OO
Paradigma Orientado a Objetos
public class Number {
private int num;
Number (int i) {
num = i;
}
public int getFatorial() {
...
return nfat;
}
public static void main(String[] args) {
int number = Integer.parseInt(args[0]);
Number fat = new Number(number);
int result = fat.getFatorial();
System.out.println(result);
}
}

23 24

4
17/08/2020

Visão Crítica do Paradigma OO

Outros Paradigmas

25 26

Modelo Computacional do Paradigma


Paradigma Orientado a Aspecto
Orientado a Aspectos

27 28

Exemplo AspectJ Programação concorrente


1:public aspect Imprime {
2:
3: public pointcut fatorialCalls():
4: call(int Number.getFatorial());
5:
6: before(): fatorialCalls() {
7: System.out.println("Calculando Fatorial...");
8: }
9: }

29 30

5
17/08/2020

Próxima Aula:
Sintaxe e Semântica

Paradigmas de Programação:
Visão Geral Paradigmas Leitura:
Declarativos e Descritivos Capítulo 3 – Descrevendo Sintaxe e Semântica. SEBESTA,
R. W. Conceitos de Linguagens de Programação. 10ª
ED. BOOKMAN, 2012.

31 32

Você também pode gostar