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
![Page 1: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022081801/54924346ac7959ff2d8b4589/html5/thumbnails/1.jpg)
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
![Page 2: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022081801/54924346ac7959ff2d8b4589/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081801/54924346ac7959ff2d8b4589/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081801/54924346ac7959ff2d8b4589/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081801/54924346ac7959ff2d8b4589/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081801/54924346ac7959ff2d8b4589/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081801/54924346ac7959ff2d8b4589/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081801/54924346ac7959ff2d8b4589/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081801/54924346ac7959ff2d8b4589/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081801/54924346ac7959ff2d8b4589/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081801/54924346ac7959ff2d8b4589/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081801/54924346ac7959ff2d8b4589/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081801/54924346ac7959ff2d8b4589/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022081801/54924346ac7959ff2d8b4589/html5/thumbnails/14.jpg)
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