Paradigmas de Linguagens de Programação

2.847 visualizações

Publicada em

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

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.847
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
138
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Paradigmas de Linguagens de Programação

  1. 1. UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
  2. 2. 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 diferentes Avanços tecnológicos Interesses comerciais Cultura e background científico Prof. Fabio Alexandre Spanhol, M.Sc. 2
  3. 3. 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
  4. 4. 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) Prof. Fabio Alexandre Spanhol, M.Sc. 4
  5. 5. UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁParadigma de ProgramaçãoProgramação Processamento de informaçãoTrata computacionalmente os problemasencontrados no mundo real Fornece e determina a visão que o programador possui sobre a estruturação e execução do programa A forma com que o programador deve raciocinar e utilizar os recursos da linguagem Determina a forma com que o desenvolvedor do programa analisa os dados Prof. Fabio Alexandre Spanhol, M.Sc. 5
  6. 6. UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁParadigma de Programação Realidade Domínio Prof. Fabio Alexandre Spanhol, M.Sc. 6
  7. 7. UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁParadigmas de Programação Paradigma imperativo Conceitos: estado, atribuição, sequenciação Linguagens: 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
  8. 8. UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁParadigmas de ProgramaçãoParadigma lógico Conceitos: relação, dedução Linguagens: PrologParadigma orientado a objetos Conceitos: objeto, mensagem Linguagens: Python, C++, Java, Eiffel, C#, Smalltalk, etc. Prof. Fabio Alexandre Spanhol, M.Sc. 8
  9. 9. UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁParadigmas de ProgramaçãoParadigma concorrente Conceitos: processo, comunicação (síncrona ou assíncrona) Linguagens: Occam, Ada, Java, Limbo, Pict, etc. Prof. Fabio Alexandre Spanhol, M.Sc. 9
  10. 10. UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁModelosModelo imperativo Modelo declarativo Linguagens expressam  Linguagens que não sequências de comandos possuem os conceitos de que realizam transformações  sequências de comandos sobre dados  atribuição Dominante e bem  linguagens funcionais: ênfase estabelecido em valores computados por Base: máquina de von funções Neumann  linguagens lógicas: ênfase  orientadas a procedimentos em axiomas lógicos  orientadas a objetos Prof. Fabio Alexandre Spanhol, M.Sc. 10
  11. 11. UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁModelos de execuçãoSequencial Concorrente Uma computação é Múltiplas computações realizada após o término podem ser executadas da anterior simultaneamente Controle de fluxo de Computações paralelas execução interno ao múltiplos processadores programa: compartilham memória sequência Computações distribuídas seleção múltiplos computadores iteração conectados por uma rede de comunicação invocações Prof. Fabio Alexandre Spanhol, M.Sc. 11
  12. 12. UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁQual usar?O “grau de sucesso” de umprogramador 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
  13. 13. UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁQual usar? Lembre-se Todo problema é um PREGO, se você tem apenas um martelo? Prof. Fabio Alexandre Spanhol, M.Sc. 13
  14. 14. UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁReferências SEBESTA, Robert W.Conceitos de Linguagensde Programaçao. PortoAlegre: Bookman, 2011. Prof. Fabio Alexandre Spanhol, M.Sc. 14

×