Transcript of paradigma spei
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.
*
*
*
*
*
*
*
*
*