paradigmas de linguagens de programação
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