Paradigma De Programação
Trabalho Universitário: Paradigma De Programação. Pesquise 861.000+ trabalhos acadêmicosPor: • 7/9/2014 • 1.348 Palavras (6 Páginas) • 322 Visualizações
Paradigma de programação
Um paradigma de programação fornece e determina a visão que o programador possui sobre a estruturação e execução do programa. Por exemplo, em programação orientada a objetos, programadores podem abstrair um programa como uma coleção de objetos que interagem entre si, enquanto em programação funcional os programadores abstraem o programa como uma sequência de funções executadas de modo empilhado.
Assim como diferentes grupos em engenharia de software propõem diferentes metodologias, diferentes linguagens de programação propõem diferentes paradigmas de programação. Algumas linguagens foram desenvolvidas para suportar um paradigma específico (Smalltalk e Java suportam o paradigma de orientação a objetos enquantoHaskell suportam o paradigma funcional), enquanto outras linguagens suportam múltiplos paradigmas (como o LISP, Perl, Python, C++ e Oz).
Os paradigmas de programação são muitas vezes diferenciados pelas técnicas de programação que proíbem ou permitem. Por exemplo, a programação estruturada não permite o uso de goto. Esse é um dos motivos pelo qual novos paradigmas são considerados mais rígidos que estilos tradicionais. Apesar disso, evitar certos tipos de técnicas pode facilitar a prova de conceito de um sistema, podendo até mesmo facilitar o desenvolvimento de algoritmos.
O relacionamento entre paradigmas de programação e linguagens de programação pode ser complexo pelo fato de linguagens de programação poderem suportar mais de umparadigma.
Paradigmas de Programação
Um paradigma de programação fornece e determina a visão que o programador possui sobre a estruturação e execução do programa. Os paradigmas representam abordagens fundamentalmente diferentes para a construção de soluções para os problemas, portanto afetam todo o processo de desenvolvimento de software. A seguir serão descritos os paradigmas de programação clássicos:
Paradigma imperativo
Descreve a computação como ações, enunciados ou comandos que mudam o estado (variáveis) de um programa. Muito parecido com o comportamento imperativo das linguagens naturais que expressam ordens como visto no algoritmo das rotas.
Paradigma declarativo
Descreve propriedades da solução desejada, não especificando como o algoritmo em si deve agir. Muito popular em linguagens de marcação, sendo utilizado na programação das páginas web (linguagem HTML) e descrição de documentos multimídia como a linguagem Nested Context Language – NCL[10], adota pelo padrão brasileiro de TV Digital.
Exemplo de código HTML.
<h1>Frutas da estação</h1>
<ul>
<li>Abacate</li>
<li>Laranja</li>
<li>Manga</li>
</ul>
Paradigma funcional
Trata a computação como uma avaliação de funções matemáticas. Ela enfatiza a aplicação de funções, em contraste da programação imperativa, que enfatiza mudanças no estado do programa. Neste paradigma ao se pensar em uma função simples de calculo de médias de notas, usamos o auxílio de funções mais primitivas, podendo a função Media (Números) ser representada pela expressão:
(Divide (Soma Numeros) (Conta Numeros) )
Logo a função Divide opera com os resultados das funções Soma e Conta.
Paradigma orientado a objeto
Neste paradigma, diferente do paradigma imperativo, os dados passam a ter um papel principal na concepção do algoritmo. No paradigma imperativo, rotinas de controle manipulam os dados que são elementos passivos. Já na orientação a objetos, os dados são considerados objetos auto gerenciáveis formados pelos próprios dados e pelas rotinas responsáveis pela manipulação destes dados.
Exemplo de código orientado a objeto.
carro.ligar();
carro.setVelocidade(100);
Taxonomia
Taxonomia de Flynn
Michael J. Flynn criou um dos primeiros sistemas de classificação para computadores e programas paralelos e sequenciais, atualmente conhecida como taxonomia de Flynn. O cientista classificou os programas e computadores por quantidade de fluxos de instruções, e por quantidade de dados usada por tais instruções.
A classificação SISD equivale a um programa inteiramente sequencial, e a classificação SIMD é análoga a fazer a mesma operação repetidamente por um grande conjunto de dados. A classificação MISD raramente é usada, já os programas MIMD são os programas paralelos mais comuns.
* SISD (Single Instruction Single Data): Fluxo único de instruções sobre um único conjunto de dados.
* SIMD (Single Instruction Multiple Data): Fluxo único de instruções em múltiplos conjuntos de dados.
* MISD (Multiple Instruction Single Data): Fluxo múltiplo de instruções em um único conjunto de dados.
* MIMD (Multiple Instruction Multiple Data): Fluxo múltiplo de instruções sobre múltiplos conjuntos de dados.Uma explicação sobre o tema pode ser encontrado em (Tanenbaum, 2001)
Ontologia (ciência da computação)
Em Ciência da Computação, Sistemas de Informação e Ciência da Informação, uma ontologia é um modelo de dados que representa um conjunto de conceitos dentro de umdomínio e os relacionamentos entre estes. Uma ontologia é utilizada para realizar inferência sobre os objetos do domínio.
Ontologias são utilizadas em inteligência artificial, web semântica, engenharia de software e arquitetura da informação, como uma forma de representação de conhecimentosobre o mundo ou alguma parte deste. Ontologias geralmente descrevem:
• Indivíduos: os objetos básicos;
• Classes: conjuntos, coleções ou tipos de objetos1 ;
• Atributos: propriedades, características ou parâmetros que os objetos podem ter e compartilhar;
• Relacionamentos: as formas como os objetos podem se relacionar com outros objetos.
Elementos de uma ontologia
Os modelos e implementações correntes de ontologias em ciência de computação compartilham muitas semelhanças estruturais, independentemente do contexto e da linguagem em que são expressas. Como mencionado acima, a maioria das ontologias descreve indivíduos (exemplares), classes (conceitos), atributos e relacionamentos. Esta seção descreve cada um desses componentes.
Indivíduos (exemplares)
Indivíduos (exemplares) são os componentes básicos de uma ontologia. Os indivíduos em uma ontologia podem incluir objetos concretos como pessoas, animais, mesas, automóveis, moléculas, planetas, assim como indivíduos abstratos como números e palavras. Para ser exata, uma ontologia não precisa necessariamente incluir indivíduos, porém um dos propósitos gerais de uma ontologia é apresentar um meio de classificação de indivíduos, mesmo que estes não sejam explicitamente parte da ontologia.
Classes (conceitos)
Classes (conceitos) são grupos abstratos, conjuntos ou coleções de objetos. Eles podem conter indivíduos, outras classes, ou uma combinação de ambos. Alguns exemplos de classes2 :
• Pessoa, a classe de todas as pessoas;
• Molécula, a classe de todas as moléculas;
• Número, a classe de todos os números;
• Veículo, a classe de todos os veículos;
• Carro, a classe de todos os carros;
• Indivíduo, representando a classe de todos os indivíduos;
• Classe, representando a classe de todas as classes;
• Coisa, representando a classe de todas as coisas.
Ontologias se diferenciam nos seguintes aspectos: se classes podem conter outras classes, se uma classe pode pertencer a si mesma, se existe uma classe universal (isto é, uma classe contendo tudo), etc. Algumas vezes estas restrições são feitas para evitar alguns paradoxos conhecidos.
Uma classe pode incluir ou estar incluída em outras classes. Por exemplo, Veículo inclui Carro, já que (necessariamente) qualquer coisa que é membro de Carro é também membro de Veículo. A relação de inclusão é utilizada para criar uma hierarquia de classes, geralmente com uma classe geral como Coisa no topo, e classes específicas comoGM Celta 2008 na base.
Atributos
Objetos em uma ontologia podem ser descritos através de atributos. Cada atributo tem pelo menos um nome e um valor, e é utilizado para armazenar informação que é específica para o objeto ligado a ele. Por exemplo, o objeto "GM Celta" tem atributos como:
• Nome: GM Celta
• Número_de_portas: 4
• Motor: {1.0, 1.3}
• Câmbio: 5-marchas
O valor de um atributo pode ser um tipo de dados completo; neste exemplo, o valor do atributo chamado Motor é uma lista de valores, não um valor simples.
Relacionamentos
Um uso importante dos atributos é a descrição de relacionamentos (também conhecidos como relações) entre objetos na ontologia. Geralmente, uma relação é um atributo cujo valor é outro objeto na ontologia. Muito do poder das ontologias vem da habilidade de descrever estas relações. O conjunto de todas as relações descreve a semântica do domínio.
O tipo mais importante de relação é a relação de inclusão (é-superclasse-de, é-um, é-subtipo-de ou é-subclasse-de), que define quais objetos são membros de quais classes de objetos. Por exemplo, podemos notar que o "GM Celta" é-um "Carro", que, por sua vez, é-um "Automóvel".
A adição de relacionamentos é-um cria uma taxonomia hierárquica, uma estrutura de árvore que descreve que objetos se relacionam com quais outros. Nesta estrutura, cada objeto é um "filho" de uma "classe pai".
Outro tipo comum de relação é a do tipo parte-de que representa como objetos se combinam para formar objetos compostos. Por exemplo, se estender o exemplo de ontologia para incluir objetos como Rodas, diríamos que "Roda é-parte-de GM Celta" já que uma roda é um dos componentes de um GM Celta.
Além das relações comuns como é-um e parte-de, as ontologias geralmente incluem outros tipos de relações que refinam ainda mais a semântica do modelo. Estas relações geralmente são específicas do domínio e são utilizadas para responder tipos particulares de questões.
Referências bibliograficas
http://pt.wikipedia.org/wiki/Ontologia_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o)
http://pt.wikipedia.org/wiki/Computa%C3%A7%C3%A3o_paralela#Taxonomia_de_Flynn
http://pt.wikipedia.org/wiki/Paradigma_de_programa%C3%A7%C3%A3o
http://producao.virtual.ufpb.br/books/edusantana/introducao-a-computacao-livro/livro/livro.chunked/ch05s03.html
http://artigos.tol.pro.br/portal/linguagem-pt/Taxonomia%20de%20Flynn
...