You are on page 1of 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 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, 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 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

Concretizao

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

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

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

O Paradigma Orientado a Objetos

Modelo Computacional do Paradigma Orientado a Objetos


Entrada
Entrada Programa Sada Estado

Programa

Sada

Estado

Entrada Entrada Programa Sada

Programa

Sada

. . .

Estado

. . .

Estado

...

Entrada

Programa

Sada

. . .

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.................................................. Eifell C++ 1990.....................................................................Haskell..........Godel... Java Delphi Orientado a objetos Imperativo Funcional Lgico
26 PP - Prof. Edilberto Silva - http://edilms.eti,br

Miranda

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

You might also like