paradigmas de linguagens de programação

Post on 18-Dec-2014

1.964 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

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

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

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.

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

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Realidade

Domínio

Paradigma de Programação

6Prof. Fabio Alexandre Spanhol, M.Sc.

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

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

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

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.

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.

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

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?

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

top related