terça-feira, 24 de novembro de 2015

Paradigmas de Programação

Paradigmas de Programação
O que é?

O paradigma de programação é o conceito que pressupõe a forma que o programador tem sobre a programação e execução de um programa.
Paradigmas diferem nos conceitos e abstrações utilizadas para representar os elementos de um programa (como objetos, funções, variáveis, restrições, etc) e as etapas que compõem um cálculo (atribuição, avaliação, continuações, fluxos de dados, etc.).
Mais claramente falando é a forma de estrutura que você vai usar para programar e executar o seu software, é um conceito que todas as linguagens tem que abordar, porém existem muitos tipos de paradigmas de programação.

 Resultado de imagem para paradigma de programação


Vamos conhecer alguns:

- Programação Procedural:
É um paradigma de programação baseado no conceito de chamadas a procedimentos, também conhecidos como rotinas, subrotinas, métodos, ou funções, que simplesmente contém um conjunto de passos computacionais a serem executados. Um dado procedimento pode ser chamado a qualquer hora durante a execução de um programa, inclusive por outros procedimentos ou por si mesmo.

Esse paradigma ainda é muito usado, por ser mais fácil de compreender e normalmente programadores aprendem a desenvolver usando esse paradigma, ele pode ser eficiente para problemas simples e até para o aprendizado, mas não se prenda a esse tipo de paradigma, existem outros que são muito melhores do que esse.
Características:
- Conjunto de instruções organizado em blocos para executar determinada tarefa(funções).
- Conjuntos de funções agrupadas por funcionalidades em bibliotecas.
- Modelagem por meio de fluxograma e grande utilização de algorítimos.
- Extremamente técnico.
Algumas linguagens com esse paradigma:
- C
- Pascal
- Basic
- C++
- PHP
- Python
- Visual Basic
- Perl


- Programação Orientada a Objetos
A orientação a objetos é o paradigma de programação predominante atualmente e está, aos poucos, substituindo a programação procedural, criada no inicio da década de 1960.
Nesse paradigma o programa é composto por objetos com propriedades (atributos) e operações (métodos) que podem ser executados por eles.
Todas as funcionalidades e atributos de cada entidade do sistema são armazenados em classe que representam essa entidade.
Normalmente, utilizamos a Unified Modeling Language (UML) para modelar soluções orientadas a objetos.


Características:

- Podemos definir objeto como abstração de um particular aspecto de interesse, incluindo não somente sua estrutura, como nos métodos tradicionais, mas também comportamento, regras, conhecimento, responsabilidades, ciclo de vida, intrínsecos ao aspecto em questão. Objetos com características comuns são agrupados em classes.

- Uma característica derivada da forma muito comum de hierarquia "é um", é a herança. Subclasses herdam estrutura e comportamento das subclasses às quais estão ligadas, evitando assim redundâncias e inconsistências. Deve-se observar a possibilidade de herança múltipla no caso em que uma subclasse pode ter relacionamento "é um" com mais de uma superclasse.

- Os objetos existem em convívio com outros objetos, e não isoladamente. Assim, chama-se comportamento às ações e reações de um objeto, mudando de estado e trocando mensagens, em contato com os demais objetos. É sua atividade visível. É representado pelos chamados métodos, descritos para cada classe de objetos.

- Outras características bastante interessantes, provenientes da área de inteligência artificial, são a representação de conhecimento e a definição de regras sobre objetos ou classes de objetos. É crescente a colaboração entre as áreas de orientação a objetos e de inteligência artificial, trazendo grandes contribuições a ambas.

Algumas linguagens com esse paradigma:
- C++
- C#
- VB.NET
- Java
  Resultado de imagem para java
- Ruby
- Smalltalk


- Programação Multiparadigma
Uma linguagem de programação multiparadigma é uma linguagem que suporta mais de um paradigma de programação. A ideia de uma linguagem multiparadigma é fornecer um framework no qual o programador possa trabalhar com vários estilos, misturando livremente construtores de diferentes paradigmas. O objetivo em se projetar linguagens deste tipo é reservar aos programadores a melhor ferramenta para determinado trabalho, admitindo que nenhum paradigma resolva todos os problemas da maneira mais elegante, ou mesmo eficiente.
As características da programação multiparadigma pode ser relaciona com a junção dos paradigmas de programação que ela reúne, ou seja, ela une todas as características dos paradigmas de programação que ela engloba.
Algumas linguagens com esse paradigma:
- Scala
- Oz


- Programação Estruturada

Não existe uma definição universalmente  aceita para a programação estruturada; ao
contrário, existem várias escolas de pensamento que a conceituam.

No sentido mais restrito, o conceito de programação estruturada diz respeito à forma do
programa e do processo de codificação. É um conjunto de convenções que o programador pode seguir para produzir o código estruturado. As regras de codificação impõem limitações sobre o uso das estruturas básicas de controle, estruturas de composição modular e documentação.

Características
:
- Programação sem GO TO (eliminação completa ou parcial do comando GO TO)
- Programação com apenas três estruturas básicas de controle: seqüência, seleção e iteração
- Forma de um programa estruturado
- Aplicação de convenções de codificação estruturada a uma linguagem de programação específica
Algumas linguagens com esse paradigma:
- Pascal
-C

Diferença entre programação x codificação

PROGRAMAÇÃO x CODIFICAÇÃO

O objetivo deste artigo é tentar diferenciar duas palavras, programação e codificação, que utilizamos na computação, algumas vezes com a mesma conotação. São duas palavras que estão intimamente relacionadas, talvez seja essa a razão das confusões.

Codificação é sinônimo de "geração do código fonte". A codificação é escrita, utilizando uma linguagem de programação, das instruções que o computador deve realizar para alcançar um resultado.

Programação é um conjunto de técnicas e práticas voltadas para solucionar problemas computável (solúvel por meio computacional), incluindo técnicas para modelagem formal de um problema e técnicas de projeto de algoritmos.

Portanto, projetar um algoritmo para um problema faz parte da programação, mas se o trabalho do programador é só escrever um algoritmo pronto, então seu trabalho é de codificação.

Resultado de imagem para codigos de programacion
      História das linguagens de programação

As linguagens de programação são, anteriores ao advento do primeiro computador moderno. De início as linguagens eram apenas códigos.
O tear de Jacquard, inventado em 1801, usava furos em cartões perfurados para representar os movimentos do braço do tear ao realizar costuras, a fim de gerar padrões decorativos automaticamente.
Herman Hollerith percebeu que poderia codificar a informação, em cartões perfurados, quando ele observou que o condutor de trens controlava a presença dos titulares dos bilhetes de trem com a posição dos furos no bilhete. Hollerith, então, começou a codificar os dados do censo de 1890 em cartões perfurados.

Resultado de imagem para cartoes perfurados de jacquard

Os primeiros códigos para computador eram especializados segundo as aplicações. Nas primeiras décadas do século XX, os cálculos numéricos eram baseados em números decimais. Eventualmente, se percebeu que a lógica podia ser representada com números, tão bem como com as palavras.

Na década de 1940 os primeiros computadores elétricos, reconhecidamente modernos, foram criados. A velocidade limitada capacidade da memória forçava os programadores a escrever a mão economicamente programas em linguagem de montagem (linguagemde maquina).
Em 1942 foi criada a 1º linguagem de programação de alto nível do mundo, chamada de Plankalkul. Esta linguagem foi criada pelo alemão Konrad Zuse que também projetou e construiu o primeiro computador eletromecânico, o Z3, constituído por relés, que efetuava cálculos, era programável e exibia os resultados em fita perfurada. Era possível trabalhar com números de ponto flutuante e em binário.
Resultado de imagem para Konrad Zuse
   (Konrad Zuse)


A linguagem Plankalkul foi considerada uma revolução na dinâmica das linguagens de programação pois introduziu técnicas e opções inovadoras, tais como: atribuições, expressões aritméticas, adição dos tipos derivados(inteiros, real, arranjos), laços e repetição, dentre outras. Zuse criou vários algoritmos, dentre eles: algoritmos de ordenação, busca em grafos, entre outros.

quarta-feira, 11 de novembro de 2015

2.ontologias

As ontologias podem ser usadas, dentre outras coisas, com o propósito de melhorar a
exatidão de buscas na Web: um programa de busca baseado em ontologias poderá ser capaz de recuperar somente as páginas relevantes para o usuário.
Segundo Gruber , uma ontologia é uma especificação explícita e formal de uma conceitualização compartilhada. Ou seja, uma ontologia conceitua um modelo abstrato de algum fenômeno do mundo em um conhecimento consensual, isto é, compartilhado por todos.

Entretanto, a relevância das ontologias para a Web deve
ser tratada sobre três aspectos:
* Identificação de contexto
*Fornecimento de definições compartilhadas
*reuso de antologia

3 OWL - Web Ontology Language

A OWL é uma linguagem para definição e instanciação de ontologias Web. Uma ontologia
OWL pode formalizar um domínio, definindo classes e propriedades destas classes, definir indivíduos e afirmações sobre eles e, usando-se a semântica formal OWL, especificar como derivar conseqüências lógicas, isto é, fatos que não estão presentes na ontologia, mas são vinculados pela semântica.
Segundo Harmelen e McGuinness , a OWL possui três sub-linguagens incrementais
projetadas para serem usadas por diferentes comunidades de implementadores e usuários:
• OWL Lite: é uma sub-linguagen da OWL DL que usa somente algumas características da
linguagem OWL e possui mais limitações do que OWL DL ou OWL Full.
• OWL DL: é usada por usuários que queiram o máximo de expressividade, com completude
(todas as conclusões são garantidas serem computáveis) e decidibilidade (todas as
computações terminarão em um tempo finito) computacional. Ela inclui todas as construções
da linguagem OWL, mas estas construções somente podem ser usadas sob certas
restrições. A sigla DL possui correspondência com a lógica descritiva (description logics),
uma área de pesquisa que estuda um fragmento particular da lógica de primeira
ordem.
• OWL Full: é usada por usuários que queiram o máximo de expressividade e independência
sintática de RDF, sem nenhuma garantia computacional. A OWL Full e a OWL DL
suportam o mesmo conjunto de construções da linguagem OWL, embora com restrições
um pouco diferentes. Enquanto a OWL DL impõe restrições sobre o uso de RDF e requer
disjunção de classes, propriedades, indivíduos e valores de dados, a OWL Full permite
misturar OWL com RDF Schema e não requer a disjunção de classes, propriedades, indivíduos
e valores de dados. Isto é, uma classe pode ser ao mesmo tempo uma classe e um
indivíduo.


4.XML(linguagem inicial da web semântica)

Tim Berners-Lee fez toda a proposição da arquitetura da web semântica baseada em XML. Criada em 1998, a XML – linguagem de marcação extensível (Extensible Markup Language) – teve o objetivo de criar um infraestrutura única para diversas linguagens.
A XML, e todas as tecnologias que a circundam, surgiram como facilitadores, promovendo um padrão de integração na troca de documentos eletrônicos, de forma textual, simples, estruturada, extensível, flexível, semanticamente rica e com uma segurança adequada.

terça-feira, 27 de outubro de 2015

O que é Web Semântica?

Web Semântica é um novo conceito de internet que surge para mudar tudo o que conhecemos através da rede e a nossa interatividade com ela dentro dos próximos anos. 
O problema

O crescimento da internet foi muito grande e em menos de duas décadas e o que era um projeto para compartilhar informações do mundo todo acabou criando proporções inimagináveis. Isto certamente é muito bom por conta da abrangência e da quantidade de fontes com conteúdos diversos, mas acabou ocasionando um verdadeiro caos de informações. Como qualquer um publica suas próprias informações, o volume é tão absurdo que acaba poluindo os resultados e tornando a navegação cada vez mais confusa e dispersa.

A solução

Web Semântica não se trata de uma nova rede de informações, mas sim de um projeto para aplicar conceitos inteligentes na internet atual. Nela cada informação vem com um significado bem definido e não se encontra mais solta no mar de conteúdo, permitindo uma melhor interação com o usuário. Novos motores de busca, interfaces inovadoras, criação de dicionários de sinônimos e a organização inteligente de conteúdos são alguns exemplos de aprimoramento. Desta forma você não vai mais precisar minerar a internet em busca daquilo que você procura, ela vai passar a se comportar como um todo, e não mais como um monte de informação empilhada.




O implemento desta nova tecnologia começou recentemente e ainda vai levar mais alguns anos até que entre completamente em vigor e dê um jeito em toda a enorme bagunça que a internet se tornou. Mesmo assim você já pode conferir os primeiros resultados deste novo conceito em ação, por exemplo: no site do Google, digite a palavra “define:” seguida de qualquer outra palavra. Ao invés de receber uma séria de páginas com resultados genéricos, o site exibe para você apenas páginas que definem a palavra que você escolheu, é a internet ganhando inteligência artificial para filtrar o que você procura.

Em resumo, Web Semântica é um novo passo no desenvolvimento da internet marcado principalmente pela organização do conteúdo e pela interação inteligente do usuário com o material disponibilizado na rede. É a tecnologia de um novo passo na internet transformando a rede virtual de informações em um ambiente cada vez mais humano.


quinta-feira, 22 de outubro de 2015


A EVOLUÇÃO DA WEB DESDE O 1.0. ATÉ O 4.0.


Internet se tornou uma das ferramentas mais importantes para todos. Carregando pouco mais de 20 anos de Internet, ou seja, sem ser um projeto do governo e sendo comercial, esta grande invenção revolucionou a vida dos usuários, levando cada vez mais para o uso diário do mesmo e a tornar-se uma parte fundamental de muitas empresas, instituições e indivíduos. A WEB tem sido uma grande evolução desde internet básico 1.0. até o 4.0.
a) Web 1.0. 
O grande conhecido como internet básica. Na década de 1990 surgiu o HTML (Hyper Text Markup Language), como uma linguagem de hipertexto e feitos de páginas da Web são mais agradáveis Visualizar e podem conter componentes tais como imagens, formatos e cores. Os primeiros navegadores visuais foram Netscape e Internet Explorer.Esta Web só estava lendo, uma vez que o usuário não pode interagir com o conteúdo da página (sem comentário, resposta, etc.). Enquanto as informações totalmente limitado para que o Webmaster pode publicar.Limitada, usada principalmente para a publicação de documentos e transações. Com isso, grandes empresas abriram sua estratégia on-line. Eles criaram um site para publicar informações corporativas e desenvolveram a comercialização de planos e vendas que incorporou a Web como um link com os clientes.
Esta web tem uma serie de vantagens e desvantagens: Têm vantagens tais como a exposição ao mundo inteiro através da internet e informações apresentador tem total controle e autoridade do que foi publicado. Como principais desvantagens observou que a comunicação foi passiva, a reação não era imediatamente conhecida do público que foi publicado, etc.

https://www.youtube.com/watch?time_continue=4&v=AjqQRSgMUd0 
b) Web 2.0. 
 Refere-se a uma segunda geração de comunidades baseadas na Web de usuários, uma variedade especial de serviços, tais como redes sociais, blogs e wikis, que promovem a colaboração e a troca rápida de informações entre os usuários. Sites de Web 2.0. Eles agem mais como o recolhimento de lugares.  Também é a transição que ocorreu de aplicações tradicionais de aplicativos que funcionam em toda a Web voltada para o usuário final. Esta tecnologia ajuda as empresas a se tornarem mais competitivos e se posicionem no mercado. Tem como uma principal vantagem o facto de todas as aplicações são realizado na web permite que informações podem ser compartilhadas entre eles e como a principal desvantagem, temos que pode se tornar inseguro para dar dados confidenciais.
Image                                                                                                Web 2.0. 
c) Web 3.0. 
Web continuou a evoluir. Em algum momento, com as redes sociais, pesquisas em tempo real, notificações, estatísticas, entrou novamente mais uma etapa da rede: web 3.0. navegando noGoogleTwitterFacebook ou qualquer outra plataforma semelhante, a mesma ferramenta que nós “avisados de algo”. Aniversário de alguém, amigos em comum, artistas, livros, publicidade em geral. Tudo isso como pode fazer isso? Como com informações que nós fornecemos, gerado um algoritmo que analisa os dados e é capaz de recomendar as coisas, a partir das pesquisas, RT, gosta, dados que podemos preencher e clica em links, etc. Ainda, este algoritmo é capaz de aprender e, em seguida, recomendar-nos.
Como vantagens da web 3.0. o código é muito mais fácil desenvolver e manter, que os motores de busca sao mais facilmente encontrar a informação relevante, e é mais fácil fazer alterações para os projeto ou compartilhamento de informações. E como principais desvantagens temos que deve ser mais cuidadoso com a segurança das informações no site.
d) Web 4.0.
Hoje, somam-se a estas evoluções, a mobilidade e a ubiquidade para marcar o nascimento da web 4.0. Segundo estudiosos, essa nova era funciona como um enorme sistema operacional dinâmico e inteligente, capaz de utilizar e interpretar as informações e os dados disponíveis para suportar a tomada de decisões. Isso tudo de forma automática, através de um sistema complexo de inteligência artificial.
Apesar dos benefícios, muitos questionam os problemas que acompanham essa nova fase. A invasão de privacidade, a dependência desta tecnologia, a sobrecarga e a discussão sobre o controle – quem controla o quê – são alguns pontos que preocupam os especialistas sobre este modelo.