Escolar Documentos
Profissional Documentos
Cultura Documentos
PP Aula 01 Apresentacao
PP Aula 01 Apresentacao
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
PRESI/RADIOBRS
Gerncia Tcnica em Desenvolvimento
Analista de Sistemas e DBA SQL Server
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
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
Propsitos Diferentes;
Avanos Tecnolgicos.
Interesses comerciais.
Cultura e background cientfico.
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.
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;
Um problema do
mundo real
descrito em
termos de
variveis (nome,
tipo, endereo),
ciclos,
condicionais,
atribuies,
expresses
(valor, tipo),
entrada e sada,
comandos.
9
10
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
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
15
Modelo Computacional do
Paradigma Orientado a Objetos
Entrada
Entrada
Programa
Sada
Programa
Sada
Estado
Estado
Entrada
Entrada
Programa
Programa
Sada
Estado
Estado
..
.
..
.
Sada
...
Entrada
Programa
Sada
Estado
..
.
16
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
18
Modelo Computacional do
Paradigma Funcional
Entrada
Programa
Sada
19
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
22
Problemas
Em princpio, todos do paradigma funcional
Linguagens usualmente no possuem tipos, nem
so de alta ordem
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
...
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
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
27