32
Paradigmas de Linguagem de Programação Paradigmas de Linguagem de Programação 1 Paradigma Orientado à Objeto

paradigma spei

Embed Size (px)

DESCRIPTION

prolog

Citation preview

Banco de Dados I I Banco de Dados - Conceitos e Definições*
*
Paradigma Orientado à Objeto
Tipo Abstrato de Dados
Chamamos de TAD (Tipo Abstrato de Dados) o agrupamento de dados (atributos), juntamente com os modulos (metodos) que manipulam estes dados.
Um TAD pode ser disponibilizado para programas aos quais eles nao foram escritos, a priori. Desta forma, podemos construir bibliotecas, reunindo (encapsulando) codigos e dados semanticamente relacionados.
Isto permite a reutilizacao de processos computacionais ja realizados e exaustivamente testados
Paradigmas de Linguagem de Programação
*
Paradigma Orientado à Objeto
Tipo Abstrato de Dados
Por exemplo, suponhamos a construcao de uma TAD Pilha, contendo as seguintes operacoes:
cria(pilha) :- cria um objeto pilha
destroi(pilha) :- desaloca o espaco gerado
vazia(pilha) :- retorna verdadeiro ou falso, caso a pilha esteja vazia ou nao, empilha(pilha, elemento) :- insere um elemento na pilha
desempilha(pilha) :- retira um elemento da pilha
topo(pilha) :- retorna o topo da pilha
Paradigmas de Linguagem de Programação
*
Paradigma Orientado à Objeto
Tipo Abstrato de Dados
...
empilha(pilha1, cor1);
empilha(pilha1, cor2);
if (!vazia(pilha1))
emp=topo(pilha1);
Qualquer mudanca de implementacao da pilha nao afetara o codigo do cliente, uma vez que o acesso aos metodos e feito atraves de sua assinatura.
Paradigmas de Linguagem de Programação
*
Herança
A heranca veio resolver dois principais problemas: reutilizacao de uma classe com necessidade de ser modificada para a nova aplicacao e tambem para organizar os programas.
Herdar uma classe significa estender atributos e/ou funcoes de uma classe ja existente. Por exemplo, podemos ja ter criado uma classe ponto, contendo como atributo “x” e “y”.
Quando formos construir a classe circunferencia, podemos declarar apenas o atributo “raio”, herdando os atributos “x” e “y” do centro da circunferencia a partir da classe ponto.
Paradigmas de Linguagem de Programação
*
Herança
Chamamos de classe derivada (subclasse), a classe que herda entidades de outra.
Ja a classe de onde as entidades foram herdadas, chamamos de classe-pai (superclasse).
As chamadas aos metodos de uma classe chamamos de mensagens.
Podemos tambem modificar os metodos das classes herdadas. Chamamos isto de override (sobreposto).
Uma grande desvantagem da heranca é a dependencia gerada entre as classes, algo que nao acontece com Tipos Abstratos de Dados
Paradigmas de Linguagem de Programação
*
Acoplamento dinâmico
E a acao do objeto, ao receber uma mensagem, de verificar em sua classe se ha um metodo que defina como ele deve se comportar de acordo com a mensagem recebida.
Se nada for encontrado em sua classe ele ira verificar na superclasse da sua classe de onde ele possa ter herdado algo
Paradigmas de Linguagem de Programação
*
Polimorfismo
E, de certa forma, decorrente do acoplamento dinamico, pois e a caracteristica em que, mesmo recebendo mensagens iguais, objetos receptores de mensagem diferentes podem gerar respostas diferentes, dependendo do metodo de sua classe.
Importante, o objeto emissor não precisa conhecer a classe do objeto receptor e como este objeto ira responder a mensagem
Isto significa que, por exemplo, a mensagem print pode ser enviada para um objeto sem a necessidade de saber se o objeto e um caracter, um inteiro ou uma string
Paradigmas de Linguagem de Programação
*
Paradigma Orientado à Objeto
Exemplo de linguagem: Python
Muitas linguagens de programacao foram criadas desde o inicio da computacao, hoje em dia varias destas linguagens estao “extintas” e podemos considerar que linguagens como C++, Java e .NET sao predominantes no mercado.
Python vem sendo usada em projetos serios por entidades como Yahoo, NASA, InfoSeek, MCI Worldcom, IBM e Hiway, a maior empresa de hospedagem de web-sites do mundo.
E tambem a base do Zope, a mais sofisticada plataforma para construcao de webapplications disponivel hoje como open-source.
Paradigmas de Linguagem de Programação
*
Programacao orientada a objetos (incluindo heranca multipla, conceito apenas parcialmente presente em Java) ;
Excecoes, um moderno mecanismo para o tratamento de erros;
Modulos, uma forma inteligente de acessar e organizar codigo a ser reutilizado ;
Coleta de lixo automatica, sistema que elimina os erros causados pelo acumulo de dados inuteis na memoria do computador (caracteristica presente tambem em Java mas nao em C++);
Recursos avancados de manipulacao de textos, listas e outras estruturas de dados;
Portabilidade possibilidade de executar o mesmo programa sem modificacoes em varias plataformas de hardware e sistemas operacionais (uma virtude de Java, mas dificil de se conseguir em C++)
Paradigmas de Linguagem de Programação
*
Elementos da linguagem
Tipos de variaveis:- Python e dinamicamente tipado, o que significa que se voce usou uma variavel para armazenar um inteiro, nada lhe impede de usa-la posteriormente para armazenar uma string.
Na verdade, variaveis em Python nao sao declaradas, o que lhe da muita flexibilidade.
Quem determina o tipo de uma variavel e o proprio interpretador.
Exemplo:
verdadeiro = True # Boolean
*
Elementos da linguagem
Os tipos compostos implementados na linguagem, sao: list, tuple, dict, set.
Estruturas de Controle: Nao existe nenhum caractere para delimitar blocos de codigos, como em outras linguagens ({} em C/C++, begin/end em Pascal etc). A delimitacao dos blocos e dada pela endentacao
if-elif-else: O if o elif e o else servem para examinar expressoes. Em portugues eles avaliam se determinada expressao retorna Verdadeiro ou Falso.
Em Python os valores vazios: None, [] (*Lista vazia), "", 0. Sao tidos como Falso. E os outros valores são verdadeiros.
Paradigmas de Linguagem de Programação
*
print "ok“
Outro exemplo:
*
Elementos da linguagem
for: Algo bastante diferente e util em Python e a sua iteracao sobre listas.idade = 0
Exemplo 1: imprime numeros de 0 a 49
For i in range(50):
Print i
Exemplo 2: a variavel i, varia de 1 a 4 (exclusive)
>>> for i in range(1,4):
... print "%da volta" % i
*
while: existe a iteracao enquanto uma condicao nao e satisfeita.
Exemplo 1:
opc = 1
Exemplo 2:
Iteramos 510 vezes.
*
Modulos:
Para criar um modulo em Python criamos um arquivo com nome <arq>.py no diretorio de seu programa principal.
Neste arquivo faca os defs e classes. No programa que chama o modulo importe este modulo usando import <arq>.
Desta forma pode-se reaproveitar o codigo com maior facilidade sem a necessidade de copiar e colocar um determinado codigo para seu sistema.
Classes: Defini-se uma classe atraves da palavra “class”. O metodo __init__() e o construtor da classe. Para referenciar atributos e metodos dentro de uma classe, usamos o prefixo self.
Paradigmas de Linguagem de Programação
*
*
Elementos da linguagem
Heranca:- Permite que se utilize codigo de outras classes. O Python permite heranca simples e multipla (pouco recomendada pela complexidade do codigo).
Exemplo:
novoCD.adicionarFaixa(1,'Custard Pie')
novoCD.adicionarFaixa(2,'The Rover')
print "CD: %s, %s" % (novoCD.titulo, novoCD.autor)
print novoCD.faixas
*
Elementos da linguagem
List :Permite processar listas de uma forma bem proxima a matematica.
A sintaxe e:
Exemplo:
#mostra os multiplos de 4 no range de zero a cem
[x for x in range(100) if x % 4 == 0]
[0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 68, 72, 76,
80, 84, 88, 92, 96]
Paradigmas de Linguagem de Programação
*
*
Pesquisar o ambiente de desenvolvimento integrado BlueJ.
2) Crie uma classe chamada Cliente e instancie um objeto da classe Cliente com os atributos Nome, Endereço e Sexo.
3) Gere um projeto das suas alterações e junto com a explicação do ambiente enviar via e-mail para o professor.
Data de Entrega: 15/04/2015
Paradigmas de Linguagem de Programação
*
*
A forma de programacao das linguagens logicas nada tem a
ver com as funcionais ou imperativas. Usamos aqui proposicoes
juntamente com a logica simbolica afim de inferirmos novas
proposicoes. Damos a isto o nome de Calculo de Predicados, que e a
base da programacao logica.
*
*
*
*
*
*
*
*
*