Você está na página 1de 27

Paradigmas de

Programao
Aula I
Apresentao
Prof.: Edilberto M. Silva
http://www.edilms.eti.br
Prof. Edilberto Silva / edilms.eti.br

Professor
EDILBERTO M. SILVA
edilms@yahoo.com

Bacharel em Cincia da Computao


Mestre em Gesto do Conhecimento e da
Tecnologia da Informao
KDT, KDD, DSS, Gesto da Informao

PRESI/RADIOBRS
Gerncia Tcnica em Desenvolvimento
Analista de Sistemas e DBA SQL Server

PP - Prof. Edilberto Silva - http://edilms.eti,br

Ementa
Linguagens de programao: evoluo,
caractersticas; Estruturas sintticas: notaes e
gramticas; Linguagens: imperativas, funcionais,
orientadas a objetos, programao lgica;
programao concorrente.
Objetivos
Estudar os princpios de projeto e as caractersticas
dos principais modelos de linguagens de
programao e sua adequao soluo de
problemas.
PP - Prof. Edilberto Silva - http://edilms.eti,br

para que estud-los?


Capacidade crescente de expressar idias.
A profundidade que se consegue pensar
influenciada pelo poder da linguagem com a qual se
est comunicando os pensamentos.
Aumenta-se a habilidade de aprender novas
linguagens.
Melhora-se a compreenso do significado da
implementao.
Habilidade maior de projetar novas linguagens.
Avano da computao.
PP - Prof. Edilberto Silva - http://edilms.eti,br

Contedo
Paradigmas de Programao
1) Programao Imperativa.
2) Programao Orientada a Objetos.
3) Programao Funcional.
4) Programao em Lgica.
Imperativa: Fortran, Pascal, C
Orientada a Objetos: Smalltalk, C++,
Java
Funcional: LISP
Lgica: PROLOG
PP - Prof. Edilberto Silva - http://edilms.eti,br

Linguagens de Programao
O que caracteriza uma linguagem de programao?
Sintaxe e semntica bem definidas;
Implementvel (executvel) com eficincia aceitvel.
Universal: deve ser possvel expressar todo problema
computvel.
Natural para expressar solues de problemas (em um
certo domnio de aplicao).
PP - Prof. Edilberto Silva - http://edilms.eti,br

Por que tantas?


C, C++, Java, Basic, COBOL, Lisp, Haskell, Modula2, Oberon, Prolog, Java, C#, Pascal, PL/1, Ada,
Smalltalk, Smula, Algol, Eiffel, Fortran (1957),
ASM, Scheme, CLOS, Maude, Python, Glass, etc.

Propsitos Diferentes;
Avanos Tecnolgicos.
Interesses comerciais.
Cultura e background cientfico.

PP - Prof. Edilberto Silva - http://edilms.eti,br

Paradigma
O que significa um paradigma?
Como se traduz este significado para o contexto da
programao?
Como se pode caracterizar um paradigma?
Paradigma de Programao
Modelo, padro ou estilo de programao suportado por
linguagens que agrupam certas caractersticas comuns.
A classificao de linguagens em paradigmas uma
conseqncia de decises de projeto que tm impacto na
forma segundo a qual uma aplicao real modelada do
ponto de vista computacional.

PP - Prof. Edilberto Silva - http://edilms.eti,br

Caractersticas Comuns
Teoria
Concretizao

Abstrao
Prtica
for i:=1 to n do
begin
x:=x*i;
If(x mod 2)=0 then
writeln(x, par)
else
writeln(x, mpar);
end;

PP - Prof. Edilberto Silva - http://edilms.eti,br

Um problema do
mundo real
descrito em
termos de
variveis (nome,
tipo, endereo),
ciclos,
condicionais,
atribuies,
expresses
(valor, tipo),
entrada e sada,
comandos.
9

O que caracteriza uma


Linguagem de Programao?
Gramtica e significado bem definidos
Implementvel (executvel) com eficincia
aceitvel
Universal: deve ser possvel expressar todo
problema computvel
Natural para expressar problemas (em um
certo domnio de aplicao)
PP - Prof. Edilberto Silva - http://edilms.eti,br

10

Aspectos do estudo de linguagens


Sintaxe: gramtica (forma)
Semntica: significado
Pragmtica (ex.: metodologias)
Processadores:
compiladores, interpretadores, editores,
ambientes visuais ...

PP - Prof. Edilberto Silva - http://edilms.eti,br

11

O Paradigma Imperativo
Programas centrados no conceito de um
estado (modelado por variveis) e aes
(comandos) que manipulam o estado
Paradigma tambm denominado de
procedural, por incluir subrotinas ou procedimentos como mecanismo de estruturao
Primeiro paradigma a surgir e ainda o
dominante
PP - Prof. Edilberto Silva - http://edilms.eti,br

12

Modelo Computacional do
Paradigma Imperativo
Entrada

Programa

Sada

Estado
PP - Prof. Edilberto Silva - http://edilms.eti,br

13

Viso Crtica do Paradigma Imperativo


Vantagens
Eficincia (embute modelo de Von Neumann)
Modelagem natural de aplicaes do mundo real
Paradigma dominante e bem estabelecido

Problemas
Relacionamento indireto entre E/S resulta em:
- difcil legibilidade
- erros introduzidos durante manuteno
- descries demasiadamente operacionais
focalizam o como e no o que
PP - Prof. Edilberto Silva - http://edilms.eti,br

14

O Paradigma Orientado a
Objetos

No um paradigma no sentido estrito: uma


subclassificaco do imperativo
A diferena mais de metodologia quanto
concepo e modelagem do sistema
A grosso modo, uma aplicao estruturada em
mdulos (classes) que agrupam um estado e
operaes (mtodos) sobre este
Classes podem ser estendidas e/ou usadas como
tipos (cujos elementos so objetos)
PP - Prof. Edilberto Silva - http://edilms.eti,br

15

Modelo Computacional do
Paradigma Orientado a Objetos
Entrada
Entrada

Programa

Sada

Programa

Sada

Estado

Estado

Entrada
Entrada

Programa

Programa

Sada
Estado

Estado

..
.

..
.

Sada

...

PP - Prof. Edilberto Silva - http://edilms.eti,br

Entrada

Programa

Sada

Estado

..
.

16

Viso Crtica do Paradigma


Orientado a objetos
Vantagens
Todas as do estilo imperativo
Classes estimulam projeto centrado em dados:
modularidade, reusabilidade e extensibilidade
Aceitao comercial crescente
Problemas
Semelhantes s do paradigma imperativo, mas
amenizadas pelas facilidades de estruturao

PP - Prof. Edilberto Silva - http://edilms.eti,br

17

O Paradigma Funcional
Programas so funes que descrevem uma
relao explcita e precisa entre E/S
Estilo declarativo: no h o conceito de estado
nem comandos como atribuio
Conceitos sofisticados como polimorfismo,
funes de alta ordem e avaliao sob demanda
Aplicao: prototipao em geral e IA

PP - Prof. Edilberto Silva - http://edilms.eti,br

18

Modelo Computacional do
Paradigma Funcional
Entrada

Programa

PP - Prof. Edilberto Silva - http://edilms.eti,br

Sada

19

Viso Crtica do Paradigma Funcional


Vantagens
Manipulao de programas mais simples:
- Prova de propriedades
- Transformao (exemplo: otimizao)
Concorrncia explorada de forma natural

Problemas
O mundo no funcional!
Implementaes ineficientes
Mecanismos primitivos de E/S e formatao
PP - Prof. Edilberto Silva - http://edilms.eti,br

20

O Paradigma Lgico
Programas so relaes entre E/S
Estilo declarativo, como no paradigma
funcional
Na prtica, inclui caractersticas
imperativas, por questo de eficincia
Aplicaes: sistemas especialistas e banco
de dados
PP - Prof. Edilberto Silva - http://edilms.eti,br

21

Modelo Computacional do
Paradigma Lgico
Entrada

Programa

PP - Prof. Edilberto Silva - http://edilms.eti,br

Sada

22

Viso Crtica do Paradigma Lgico


Vantagens
Em princpio, todas do paradigma funcional
Permite concepo da aplicao em um alto nvel de
abstrao (atravs de associaes entre E/S)

Problemas
Em princpio, todos do paradigma funcional
Linguagens usualmente no possuem tipos, nem
so de alta ordem

PP - Prof. Edilberto Silva - http://edilms.eti,br

23

Tendncia: integrao de
paradigmas
A principal vantagem combinar facilidades de
mais de um paradigma, aumentando o domnio de
aplicao da linguagem
Exemplos: linguagens lgicas ou funcionais com o
conceito de estado e comandos
A integrao deve ser conduzida com muita
cautela, para que no se viole os princpios bsicos
de cada paradigma.
PP - Prof. Edilberto Silva - http://edilms.eti,br

24

Outras Classificaes
Linguagens de 1a., 2a., 3a. 4a. e 5a. geraes
Programao seqencial versus concorrente
Programao linear versus programao visual
(visual programming)
Ex.: Visual
BASIC, Delphi, Visual Cafe
...

PP - Prof. Edilberto Silva - http://edilms.eti,br

25

Um breve histrico
1950........................................................................................................
FORTRAN
1960.......................ALGOL-60...........COBOL......LISP.........................
SIMULA
ALGOL-68
PL/I BASIC
1970..................Pascal............................................................................
Smalltalk
C
PROLOG
Modula-2
ML
1980....................Ada...........DBASE-II..................................................
Miranda

Eifell C++
1990.....................................................................Haskell..........Godel...
Java Delphi
Orientado a objetos

Imperativo

PP - Prof. Edilberto Silva - http://edilms.eti,br

Funcional

Lgico
26

Referncias Bibliogrficas
BIBLIOGRAFIA BSICA
SEBESTA, R. W. Conceitos de Linguagens de Programao. Porto Alegre:
Bookman, 2000.
MELO, A; SILVA, F. Princpios de Linguagem de Programao. So Paulo:
Edgard Blcher, 2003.
BIBLIOGRAFIA COMPLEMENTAR
GHEZZI, Carlos; JAZAYERI, Mehdi. Conceitos de Linguagens de Programao.
Rio de Janeiro: Campus, 1985.
Varejo, Flvio. Linguagens de Programao: Conceitos e Tcnicas: JAVA, C e
C++ e outras. Rio de Janeiro: Campus, 2004.
VILLAS, Marcos Vianna; VILLASBOAS, Luiz Felipe. Programao, Conceitos
Tericos e Linguagem. Rio de Janeiro: Campus, 1997.
Ziviani, Nvio. Projeto de algoritmos com implementaes em Pascal e C. 3.ed.
So Paulo: Pioneira, 2004

PP - Prof. Edilberto Silva - http://edilms.eti,br

27

Você também pode gostar