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 2


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 3


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 4


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 5


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 6


Por que tantas?
C, C++, Java, Basic, COBOL, Lisp, Haskell, Modula-
2, 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 7


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 8


Caractersticas Comuns
Teoria
Abstrao Concretizao
Prtica
Um problema do
for i:=1 to n do mundo real
descrito em
begin termos de
x:=x*i; variveis (nome,
tipo, endereo),
If(x mod 2)=0 then
ciclos,
writeln(x, par) condicionais,
else atribuies,
expresses
writeln(x, mpar); (valor, tipo),
end; entrada e sada,
comandos.

PP - Prof. Edilberto Silva - http://edilms.eti,br 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 pro-
cedimentos 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 Programa Sada
Entrada Programa Sada

Estado

Estado

Entrada Programa Sada


Entrada Programa

Estado
Sada

... Entrada Programa Sada

..
Estado Estado

.. ..
. . .
PP - Prof. Edilberto Silva - http://edilms.eti,br 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 Sada

PP - Prof. Edilberto Silva - http://edilms.eti,br 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 Sada

PP - Prof. Edilberto Silva - http://edilms.eti,br 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 Funcional Lgico


PP - Prof. Edilberto Silva - http://edilms.eti,br 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