paradigmas de linguagens de programação

14
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Upload: fabio-alexandre-spanhol

Post on 18-Dec-2014

1.964 views

Category:

Technology


0 download

DESCRIPTION

Aula inicial da disciplina de "Fundamentos de Programação 2", ministrada para o curso de Engenharia Eletrônica.

TRANSCRIPT

Page 1: Paradigmas de Linguagens de Programação

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Page 2: Paradigmas de Linguagens de Programação

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Linguagens de ProgramaçãoAlgumas linguagens

C, C++, Java, D, Perl, Python, Lua, Bash, Prolog, Pascal, Basic, Fortran, COBOL, ASM, Lisp, Haskell, Modula-2, Oberon, Java, C#, PL/1, Ada, Smalltalk, Simula, Algol, Eiffel, Scheme, CLOS, Maude, Glass, Holo,...

Motivo?Propósitos diferentesAvanços tecnológicosInteresses comerciaisCultura e background científico

Prof. Fabio Alexandre Spanhol, M.Sc. 2

Page 3: Paradigmas de Linguagens de Programação

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

ParadigmaNoção Geral

Modelo interpretativo ou conceitual de uma realidade

• Ponto de Vista• Entendimento dessa realidade• Melhor forma de atuação• Conceitos Base

Exemplos• Políticos: Liberalismo, fascismo, comunismo, socialismo, etc.• Econômicos: Monetarismo, Keynesianismo, etc.• Programação: Imperativo, funcional, OO, etc.

Prof. Fabio Alexandre Spanhol, M.Sc. 3

Page 4: Paradigmas de Linguagens de Programação

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Paradigma"Um paradigma é o que osmembros de uma comunidadecientífica compartilham e umacomunidade científica consistede pessoas que compartilham umparadigma.“ Thomas Kuhn, TheStructure of Scientific Revolutions(1962)

4Prof. Fabio Alexandre Spanhol, M.Sc.

Page 5: Paradigmas de Linguagens de Programação

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Paradigma de ProgramaçãoProgramação

Processamento de informaçãoTrata computacionalmente os problemas encontrados no mundo real

Fornece e determina a visão que o programador possui sobre a estruturação e execução do programaA forma com que o programador deve raciocinar e utilizar os recursos da linguagemDetermina a forma com que o desenvolvedor do programa analisa os dados

Prof. Fabio Alexandre Spanhol, M.Sc. 5

Page 6: Paradigmas de Linguagens de Programação

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Realidade

Domínio

Paradigma de Programação

6Prof. Fabio Alexandre Spanhol, M.Sc.

Page 7: Paradigmas de Linguagens de Programação

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Paradigmas de Programação Paradigma imperativo

Conceitos: estado, atribuição, sequenciaçãoLinguagens: BASIC, Pascal, C, Algol, FORTRAN, Assembly, etc.

Paradigma funcional Conceitos: função, aplicação, avaliação Linguagens: Lisp, ML, Ocaml, Haskell, etc.

Prof. Fabio Alexandre Spanhol, M.Sc. 7

Page 8: Paradigmas de Linguagens de Programação

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Paradigmas de ProgramaçãoParadigma lógico

Conceitos: relação, dedução Linguagens: Prolog

Paradigma orientado a objetos Conceitos: objeto, mensagem Linguagens: Python, C++, Java, Eiffel, C#, Smalltalk, etc.

Prof. Fabio Alexandre Spanhol, M.Sc. 8

Page 9: Paradigmas de Linguagens de Programação

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Paradigmas de Programação Paradigma concorrente

Conceitos: processo, comunicação (síncrona ou assíncrona) Linguagens: Occam, Ada, Java, Limbo, Pict, etc.

Prof. Fabio Alexandre Spanhol, M.Sc. 9

Page 10: Paradigmas de Linguagens de Programação

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

ModelosModelo imperativo Linguagens expressam

sequências de comandos que realizam transformações sobre dados

Dominante e bem estabelecido

Base: máquina de vonNeumann orientadas a procedimentos orientadas a objetos

Modelo declarativo Linguagens que não

possuem os conceitos de sequências de comandos atribuição

linguagens funcionais: ênfaseem valores computados porfunções

linguagens lógicas: ênfaseem axiomas lógicos

10Prof. Fabio Alexandre Spanhol, M.Sc.

Page 11: Paradigmas de Linguagens de Programação

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Modelos de execuçãoSequencial

Uma computação é realizada após o términoda anteriorControle de fluxo de execução interno aoprograma:

sequênciaseleçãoiteraçãoinvocações

Concorrente

Múltiplas computações podem ser executadas simultaneamenteComputações paralelas

múltiplos processadores compartilham memória

Computações distribuídasmúltiplos computadores conectados por uma rede de comunicação

11Prof. Fabio Alexandre Spanhol, M.Sc.

Page 12: Paradigmas de Linguagens de Programação

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Qual usar?O “grau de sucesso” de um programador depende em parte:

Coleção de paradigmas que domina Da habilidade em escolher o modelo conceitual (paradigma) mais indicado para analisar e resolver cada problema

Prof. Fabio Alexandre Spanhol, M.Sc. 12

Page 13: Paradigmas de Linguagens de Programação

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Qual usar?

Prof. Fabio Alexandre Spanhol, M.Sc. 13

Lembre-seTodo problema é um PREGO, se você tem apenas um martelo?

Page 14: Paradigmas de Linguagens de Programação

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

ReferênciasSEBESTA, Robert W.

Conceitos de Linguagens de Programaçao. Porto Alegre: Bookman, 2011.

Prof. Fabio Alexandre Spanhol, M.Sc. 14