Beruflich Dokumente
Kultur Dokumente
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 3
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
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 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
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
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
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
Programa
Sada
Estado
Programa
Sada
. . .
Estado
. . .
Estado
...
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
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
22
Problemas
Em princpio, todos do paradigma funcional Linguagens usualmente no possuem tipos, nem so de alta ordem
23
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.................................................. 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