Upload
nguyennhi
View
213
Download
0
Embed Size (px)
Citation preview
Paradigmas de Programação
PARADIGMAS DE PROGRAMAÇÃO
Prof. Claudinei Dias
email: [email protected]
Histórico de Linguagens de Programação
Bacharelado em Ciência da Computação
Paradigmas de Programação
Objetivos
• Geral: – Estudar as características dos principais modelos de programação
quanto a estruturação, interação e a relação entre as linguagens de programação. Estudar os tipos de técnicas de implementação utilizados para o desenvolvimento de programas e solução de problemas.
• Específicos: – Estudar os custos de implementação;
– Comparar técnicas entre linguagens de programação;
– Estudar as estruturas conceituais para resolver problemas;
– Entender alguns dos principias conflitos entre os recursos de linguagens.
2
Paradigmas de Programação
Plano de Ensino
• 1. Histórico de linguagens de programação
– 1.1. Motivação
– 1.2. Histórico
– 1.3. Paradigmas de programação
3
Paradigmas de Programação
Motivação
• Adquirir habilidades de expressar ideias;
• A profundidade da soluções está relacionada pelos recursos da linguagem com o qual está trabalhando;
• Avanço do poder computacional e das tecnologias;
• Aperfeiçoa-se a compreensão do significado da implementação;
• Aprimora-se a habilidade de aprender novas linguagens.
4
Paradigmas de Programação
Histórico
1950.................................................................................................
1960.................................................................................................
1970.................................................................................................
1980.................................................................................................
1990.................................................................................................
5
OO Imperativo Funcional Lógico
FORTRAN
PROLOG
Godel
LISP
ML
Haskel
Miranda
ALGOL-60 COBOL
PL BASIC
C
ALGOL-60
Pascal
Ada Modula2
DBASE II
SIMULA
Smalltalk
C++
Java Delphi
Paradigmas de Programação
Paradigmas de Programação
• Programação Imperativa – Fortran, Pascal, PL, C
• Programação Orientada a Objetos – Java, C++, Smalltalk
• Programação Funcional – Lisp, Haskel
• Programação Lógica – Prolog
6
Paradigmas de Programação
Paradigma Imperativo
• Primeiro paradigma que surgiu
• Programas desenvolvidos por variáveis e comandos
• Também denominado de paradigma procedural
• Vantagens: – Eficiência (modelo de Von Neumann)
– Modelagem “natural” de aplicações do mundo real
– Paradigma dominante
• Problemas: – Relacionamento indireto E/S ocasionando difícil legibilidade, erros
durante manutenção
7
Paradigmas de Programação
Paradigma Orientado a Objetos
• É um sub-paradigma do imperativo
• O diferencial é a metodologia quanto a modelagem do sistema
• É estruturada em módulos (classes) que agrupam operações (métodos)
• Vantagens: – Todas as do paradigma imperativo
– Classes: modularidade, reusabilidade e extensibilidade
• Problemas: – Semelhantes ao do imperativo
8
Paradigmas de Programação
Paradigma Funcional
• Modelagem por funções que descrevem relações explicitas e precisa
• Estilo declarativo sem comandos como atribuição
• Vantagens: – Manipulação de programas mais simples
– Prova de propriedade
– Transformações de otimização
• Problemas: – Mecanismos primitivos de E/S
9
Paradigmas de Programação
Paradigma Lógico
• Modelagem com relações entre E/S
• Estilo declarativo mas na prática assume características imperativas
• Vantagens: – Todas do funcional
– Alto nível de abstração
• Problemas: – Todos do paradigma funcional
– Não possuem tipos de dados
10
Paradigmas de Programação
Características importantes em LP
Legibilidade
É o quanto o código é de fácil leitura e compreensão, quanto maior a legibilidade, mais fácil será de entender o código e achar erros de programação.
Por exemplo o uso do goto (como o switch, case em C), dificulta o acompanhamento lógico da leitura do código, ou também o operador ‘*’ em C, que é usado tanto para operação de multiplicação quanto para uso de ponteiros.
(Mattos, Renato. Linguagem de Programação).
11
Paradigmas de Programação
Características importantes em LP
Confiabilidade
É o quanto pode-se confiar em um código de uma linguagem, ou seja, uma linguagem com uma boa confiabilidade, não propicia erros de programação, assim sendo a confiabilidade está relacionada a legibilidade.
Quando uma linguagem possui recurso de tratamento de exceções, também aumenta a confiabilidade, pois é mais difícil o programador esquecer de tratar a exceção ou de tratar de forma errada.
(Canalle, Gabrielle K. ; de Araújo C. Everton.
C/C++ e Java: Principais Características).
12
Paradigmas de Programação
Características importantes em LP
Eficiência
É o quanto os códigos são mais eficientes, atingem seus objetivos de maneira rápida, segura.
Essa característica pode variar de código para código, um site de um banco, por exemplo, é preciso ser seguro, rápido, de fácil acesso, de fácil uso, etc. Essas características são critérios de eficiência.
13
Paradigmas de Programação
Características importantes em LP
Facilidade de aprendizado
Está diretamente relacionado à legibilidade, pois se um código não tem boa legibilidade, não tem uma fácil compreensão do código, e não terá um aprendizado fácil.
Facilidade de Aprendizado é o quanto é simples para algum programador que não conheça a linguagem, aprende-la. Uma linguagem com uma boa facilidade de aprendizado, tem uma boa legibilidade e é simples de entende-la.
14
Paradigmas de Programação
Características importantes em LP
Ortogonalidade
É a capacidade da linguagem de programação de deixar o programador usar seus conceitos básicos sem que se tenha efeitos não desejados ou aleatórios, ou seja, quanto menos exceções de código a linguagem permite.
Por exemplo a não necessidade de declaração do tipo da variável, é ruim tanto para a legibilidade quanto para a ortogonalidade.
(Mattos, Renato. Linguagem de Programação).
15
Paradigmas de Programação
Características importantes em LP
Modificabilidade
São as facilidade oferecidas pela linguagem para que se mude uma parte do código tendo que mudar o mínimo possível as outras partes.
Por exemplo uma linguagem Orientada a Objetos possui essa característica, pois é uma característica forte do próprio paradigma, outro exemplo são as constantes que algumas linguagem permitem ser declaradas, assim se for necessário mudar a constate, muda-se uma vez na sua declaração e não no seu uso.
(Mattos,Renato. Linguagem de Programação).
16
Paradigmas de Programação
Características importantes em LP
Portabilidade
É a capacidade do código de fazer a mesma coisa em diferentes plataformas ou sistemas operacionais independentemente da ferramenta utilizada para traduzi-lo.
Assim um mesmo programa pode ser utilizado em diversos ambientes e situações sem que seja necessário fazer uma reescrita de código para adaptá-lo em um novo ambiente ou situação
(Mattos,Renato. Linguagem de Programação).
17
Paradigmas de Programação
Características importantes em LP
Reusabilidade
É a capacidade de se utilizar o mesmo código, ou trecho do código em outra situação, outra característica forte do paradigma orientado a objetos, assim as linguagem que seguem a esse paradigma são de alta reusabilidade.
Essa é uma característica muito boa que se faz ganhar bastante tempo e consequentemente, dinheiro quando se trata de se desenvolver vários softwares.
18
Paradigmas de Programação
Bibliografia da Disciplina
20
BIBLIOGRAFIA :
PRATT, T. W., ZELKOVITZ, M. Programming Languages: Design and Implementation. 4ªed. Prentice Hall, 2001. ISBN 0130276782. MICHELL, JOHH C. Concepts in Programming Languages. Cambridge University Press, 2003. SEBESTA, R.W. Conceitos de Linguagens de Programação. 5a ed. Editora Bookman. 2003. ISBN 8536301716. VAREJÃO, F.M. Linguagens de Programação. Editora Campus. 2005. ISBN 8535213171.
Paradigmas de Programação
PARADIGMAS DE PROGRAMAÇÃO
Prof. Claudinei Dias
email: [email protected]
Histórico de Linguagens de Programação
Bacharelado em Ciência da Computação