Mostrando postagens com marcador clube de revista. Mostrar todas as postagens
Mostrando postagens com marcador clube de revista. Mostrar todas as postagens

Paradigma Funcional

O Paradigma funcional consiste em desenvolver funções que solucionam um determinado problema. Tais funções obedecem aos príncipios matemáticos, embora nem sempre podem ser consideradas funções totais.
Uma função é dita total quando todo elemento de um conjunto A tem um representante em um conjunto B. Normalmente, todos os cálculos matemáticos levam em contam funções totais por serem de menor complexidade que as funções parciais.
Ao contrário do Paradigma Imperativo que trata estados e eventos provocados em um sistema, o Paradigma Funcional trabalha de forma avaliativa, assim como as calculadoras, lê uma expressão, calcula o seu valor e apresenta o resultado.

A característica predominante da programação funcional é que o significado de um expressão é o seu valor, e o papel do computador é obtê-lo. Nas linguagens funcionais as funções são entidades de 1ª Classe, i.e., podem ser usadas como parâmetros, retornadas como resultado e até mesmo armazenadas em estruturas.

As linguagens funcionais são naturalmente recursivas e implementam de forma mais rápida o conceito de recursão. Este fato dependendo do contexto podem torná-las mais eficientes que as linguagens imperativas para alguns problemas.

Nota: Pode-se encontrar neste link uma comparação mostrando que Haskell pode ser mais eficiente que C para processadores com vários núcleos.
Algumas características
  • as expressões são a representação exata da informação;
  • as expressões podem ser associadas a nomes;
  • todos os nomes que em uma expressão tem um valor único e imutável;
  • os valores dependem dos valores das sub-expressões que as constituem;
  • não permite efeito colateral em funções, a linguagem oferece transparência referencial.
Vantagens
  • mais eficiente que as liguangens imperativas para cálculo recursivo;
  • transparência referencial;
  • grande flexibilidade, capacidade de abstração e modularização.
Desvantagens
  • ilegibilidade do código;
  • os programas podem ser menos eficiente.
Principais linguagens
  • Lisp
  • ML
  • Miranda
  • Haskell
Conclusão

Todo paradigma de programação, assim como tudo existente, tem seus prós e contras e o paradigma funcional não foge a essa regra. Pode-se considerar alguns contextos que as linguagens funcionais podem e devem ser utilizados, como: cálculos matemáticos e recursivos. Para as situações comumente encontradas nos ambientes de desenvolvimento é preferível usar paradigmas de mais clara legibilidade.

Referências
José Mauro da Silva Sandy

Clube de Revista
  • Anterior - Programação Estruturada versus Programação Orientada a Objetos
  • Próxima - ?

Programação Imperativa versus Programação Declarativa

Introdução


Esta postagem abordará os principais detalhes de dois dos principais paradigmas de programação existentes. Inicialmente, serão apresentados detalhes específicos de cada um paradigma e logo após será traçado uma relação de prós e contras de ambos os paradigmas.
Paradigma de programação é um padrão ou estilo que agrupam linguagens com certas características comuns.
Programação Imperativa

A Programação Imperativa é um conceito baseado em estados, definidos por variáveis, e ações que são manipuladoras de estado, procedimentos. Pelo fato de permitir o uso de procedimentos como estruturação, também é conhecido como, Programação Procedural.

Devido ao uso de sub-rotinas pode-se dividir o código para uma maior modularização de um sistema computacional.

A Figura 1 mostra graficamente a estrutura da Programação Imperativa. Tal figura, é apresentada sempre nos cursos de computação simulando a idéia de entrada, processamento e saída.

Figura 1. Programação Imperativa

São exemplos desse paradigma a maioria das linguagens conhecidas em uso no mercado, visto que as linguagens Orientadas à Objetos herdam as características das imperativas e implementam seus próprios conceitos.
  • Pascal
  • C
  • Cobol
  • Python
Programação Declarativa

A Programação Declarativa, ao contrário da Programação Imperativa que informa ao computador "COMO" as instruções devem ser executadas, preocupa-se em apenas dizer ao computador "O QUE" precisa ser feito, cabendo ao computador decidir qual a melhor solução para essa solicitação.

As linguagens definidas por este paradigma não podem ser consideradas como linguagens de programação, e sim, como sub-linguagens. O grande mercado que envolve a computação utiliza-se bastante destas linguagens. Tem-se como seus principais representantes:
  • XML
  • SQL
Vantages e Desvantagens

Vantagens: Programação Imperativa
  • Eficiência
  • Modelagem natural dos problemas do mundo real
  • Dominância de mercado
  • Bem estabelecido
Vantagens: Programação Declarativa
  • Facilidade de acesso a banco de dados(SQL)
  • Conversão de objetos complexos(Pessoa, Empregado) por Binding para trafegar pela rede(XML)
Desvantagens: Programação Imperativa
  • Focaliza o "COMO" e não o "QUE" precisa ser feito
  • Difícil legilibilidade
Desvantagens: Programação Declarativa
  • Ilegilidade do código(Quando usada de forma funcional)
Conclusão

Quando juntos, estes dois paradigmas formam a base da maioria dos sistemas de computação presentes no mercado. É claro que torna-se necessário acoplar à Programação Imperativa os conceitos de Orientação à Objetvos. Tais paradigmas se unem formando a base de todo o mercado de desenvolvimento.


Referências
José Mauro da Silva Sandy

Clube de Revista
  • Anterior - O Windows e os Usuários Experientes
  • Próxima - Programação Estruturada versus Programação Orientada a Objetos

Internet via Energia Elétrica

Introdução

Em 1991, em uma empresa de energia elétrica, Norweb, situada na cidade de Manchester, Inglaterra, teve início os estudos para a utilização da energia elétrica para prover comunicação de dados e voz, conhecida como PLC(Power Line Communications) ou BPL(Broadband over Power Lines)[1].

Baseia-se em uma transmissão sob um único fio de energia elétrica, só que, tanto a energia quanto a comunicação em frequências distintas[2].

Funcionamento

Como as frequências utilizadas pela PCL e a rede elétrica são diferentes, i.e., 1,7MHz a 30MHz e 50Hz a 60Hz, respectivamente, pode-se trabalhar com ambas simultaneamente sem que haja nenhum problema. Com isso, mesmo que não exista energia elétrica passando pelo fio naquele instante não há perda do sinal por parte da PCL. Um aspecto importante é que a internet sob PCL possui velocidade não assíncrona, tal característica, possibilita tanto download quanto upload com mesmo desempenho[2].

Tem-se um sinal que sai da central rumo ao um injetor, que tem como função envia-lo via rede elétrica. No caminho temos repetidores com o intuito de impedir que os transformadores filtrem a alta frequência necessária para execução do processo. Perto do local do destino, existe um extrator que possui a responsabilidade de deixar o sinal pronto para o uso, guiando até os modens PLC, para conversão do sinal para utilização em computadores. O caminho poste-casa pode ser de 3 maneiras: fibra óptica, wireless ou rede elétrica, esta última a principal[2].
Figura 1. Funcionamento

O componente mais importante deste ciclo, é o repetidor, que soluciona a principal desvantagem do uso da PLC, a perda de sinal.

Vantagens e Desvantagens

Abaixo, em forma de tópicos será destacado algumas vantagens e desvantagens presentes nesta tecnologia.

Vantagens[2]
  • facilidade de implantação, visto que, a rede elétrica cobre todos os territórios e no Brasil atinge cerca de 95% do território;
  • alta taxa de transmissão podendo chegar a 40Mbps nas frequências de 1,7MHz a 30MHz;
  • a segurança, ao contrário das redes Wi-Fi, que os usuários podem aproveitar de sinais abertos, que compartilham do mesmo "centralizador", relógio, não conseguem compartilhar a mesma conexão de rede, devido a criptografia pelo algoritmo DES de 56 bits;
Algoritmo DES é uma algoritmo de criptografia criado em 1977 e trabalha com uma chave de 56 bits, para maiores detalhes sobre a implementação deste algoritmo, clique aqui.
  • todos os eletro-eletrônicos podem fazer parte de uma grande rede doméstica(TV, geladeira, fogão, aparelho de som, etc);
  • uso de grid inteligente.
Com um grid inteligente seria possível realizar o mapeamento de toda a rede elétrica e caso houvesse algum problema com a rede, este problema seria automaticamente detectado e avisado a central. Além de, todo o consumo elétrica seria informado de forma instantânea para a central[2].
Desvantagens[2]
  • em distância longas os sinais tentem a se corromper;
  • a forma como o cabo é encapado faz com que a velocidade seja perdida;
  • os fios de cobres presentes, em tal frequência, podem interferir em alguns equipamentos eletro-eletrônicos;
  • pode haver perda de sinal por captura de ondas de rádios e outros;
  • aparelhos que plugados a rede elétrica, Te's, emendas, criam ponto de reflexão e isto causa eco no sinal, provocando corrupção de dados;
  • necessidade de instalação de repetidores em transformadores encontrados no percurso da rede elétrica, pois o sinal da alta frequência é dissipado.
Todas estas desvantagens poderiam ser superadas caso houvesse incentivo por parte do governo.

Conclusão

Sem duvida tal tecnologia poderá prover uma maior inclusão digital. Talvez inicialmente não em termos de valores mas sim em dimensões alcançadas. Pelo fato dos grids inteligentes pode-se pensar em um aumento do desemprego pois serão eliminados alguns, como: manutenção, coleta de dados, etc., mas em contra-partida surgirão outras profissões que irão compensar estas perdas. O principal é que veio para ficar e pode até demorar, mas quando o governo abrir os olhos para essa realidade precisaremos estar preparados para não ficarmos sucumbidos a essa tecnologia.

Referências

[1] WIKIPEDIA. PLC. Disponível em: <http://pt.wikipedia.org/wiki/PLC>. Acesso em 19. dez. 2008.

[2] GUIA DO HARDWARE. Entendendo a Internet sob rede elétrica. Disponível em: <http://www.guiadohardware.net/artigos/internet-rede-eletrica/>. Acesso em 14. dez. 2008.


José Mauro da Silva Sandy

Clube de Revista

Tecnologia 3G

Origem e evolução


Com o crescente aumento das tarefas e obrigações diárias, cada vez mais, torna-se indispensável ter acesso a informações rapidamente, independente do ambiente em que se encontre. Para tal, é imprescidível ter acesso a uma tecnologia móvel de boa qualidade.


Historicamente, a primeira geração dessa tecnologia ou 1G, originou-se no início dos anos 80 e transmitia informações sobre canais analógicos em uma frequência em torno de 800 MHz. Caracterizava-se por prover apenas o serviço de voz e possui uma segurança baixa, pois podia-se interceptar ligações alheias com um simples rádio, além de possuir grande perda nas comunicações devido a interferência[1].

A evolução da 1G deu-se em função da mudança dos sinais analógicos para digital, a sua sucessora ficou conhecida como segunda geração ou 2G. A 2G além de fornecer a trasmissão de voz, passou a implantar a possibilidade da transmissão de dados. Esta geração também surgiu com o intuito de padronizar as redes de comunicação móvel, aumento de segurança por autenticação e cifragem de chamadas, dentre outras[2].

A fim de estabelcer uma conexão entre a 2G e a atual geração de telefonia móvel 3G, surgiu a 2.5G, segunda e meia geração. Tal denominação diz respeito a mídia e não oficialmente pela UIT(Internation Telecommunication Union). Esta sub-geração empregou uma maior taxa de transmissão de dados[3].

Terceira Geração ou 3G

A terceira geração da telefonia móvel ou 3G, veio para substituir a 2G, visto que, a 2.5G não foi reconhecido oficialmente pelos orgãos regulamentadores. A 3G consiste em oferecer aos seus usuários uma maior qualidade, velocidade e alcance em suas transmissões de dados e voz, isso se torna possível, pois trabalha com uma melhor eficiência espectral[4].
Eficiência espectral de uma determinada modulação refere-se ao número de bits que se pode transmitir por unidade de hertz de largura de banda.
Por possuir um maior alcance podem ser útil para estabelecer uma VPN(Virtual Private Network), e.g, com um servidor centralizado em uma matriz e um vendedor externo. Tal episódio as distiguem das redes 802.11 que possuem um menor alcance, por suas restrições, ficam restritas as redes internas.

Características

A 3G possilita suportar um maior número de clientes de voz e dados. Há duas modalidades de comunicação utilizadas pela 3G, são: TDD e FDD.
  • TDD - Time Divisor Duplex, é um método onde tanto a transmissão do uplink quanto a do downlink, ocorrem na mesma frequência utilizando intervalos sincronizados de período[5].
  • FDD - Frequency Divisor Duplex, este método trabalha com frequências distintas para transmissão de uplink e downlink[5].
Por existirem modalidades distintas de comunicação, pode ocorrer de transitar por regiões onde emprega-se uma ou outra modalidade. No entanto, esta conversão acontece de forma implícita para seus usuários[5].

Como toda tecnologia que surge com o intuito de substituir outra tecnologia consolidada, a 3G mantem a compatibilidade de frequência entre suas antecessoras, operando nas frequências de 800 MHz e 1800 MHz, e em sua frequência específica a 2,1 GHz. A nível de transmissão de dados, o Brasil, opera em taxas de pico que gira entre 1,8 Mbps e 7,2 Mbps, dependendo da versão implatada[5].

Dados

Pode-se encontrar uma lista dos dispositivos 3G existentes no país no site da Teleco. Abaixo segue uma lista contendo as operadoras existentes no país com suporte a 3G e suas respectivas localidades.

Tabela 1. Operadoras de telefonia móvel e suas localidades

Esta tabela apresenta somente a cobertura das operadoras por estado, para ter acesso a uma listagem completa, acesse a página da Tecnologia 3G.
Dica: a operadora Oi está disponibilizando até o final do ano a tecnologia 3G para teste sem a obrigatoriedade de adesão. Porém, somente para poucas cidades onde há cobertura. Para maiores informações acesse a página da Oi.
Conclusão

Como toda tecnologia emergente, 3G ainda deverá passar um processo contínuo de atualização até que atinja seu limite, embora, já exista em desenvolvimento uma quarta geração de telefonia móvel, 4G.

Analisando o contexto existente nas vidas da maioria das pessoas, a 3G tem um futuro promissor em âmbito mundial, tomando assim, cada vez mais espaço em nosso cotidiano.

Referências

[1] WIKIPEDIA. 1G. Disponível em: <http://pt.wikipedia.org/wiki/1G>. Acesso em 29 nov. 2008.

[2] PUC-RIO. Disponível em: <http://www.maxwell.lambda.ele.puc-rio.br/cgi-bin/PRG_0599.EXE/8658_3.PDF?NrOcoSis=25785&CdLinPrg=pt>. Acesso em 29. nov. 2008.

[3] WIKIPEDIA. 2.5G. Disponível em: <http://pt.wikipedia.org/wiki/2.5G>. Acesso em 30 nov. 2008.

[4] TECNOLOGIA 3G. Disponível em: <http://www.tecnologia3g.com.br/default.php>. Acesso em 30 nov. 2008.

[5] SCRIBD. Tecnologia 3G. Disponível em: <http://www.scribd.com/doc/2413867/TECNOLOGIA-3G?autodown=pdf>. Acesso em: 30 nov. 2008.


José Mauro da Silva Sandy

Clube de Revista

IEEE 802.15.1 - Bluetooth

O IEEE 802.15, mas conhecido como Bluetooth, mantido atualmente pela SIG (Bluetooth Special Interest Group). O SIG é um grupo fundado em 1998, que desenvolve a tecnologia Bluetooth para seus aparelhos. Como integrantes deste grupo temos grandes empresas de diversos segmentos, tais como: computação, música, telecomunicações, etc.

O Bluetooth é um protocolo que possibilita a conexão e a troca de informação entre dispostivos, como: celulares, computadores, impressoras, dentre outros. Esta comunicação ocorre através de uma frequência de rádio com curto alcance.

Os dispositivos Bluetooth operam na faixa de 2,45 GHz e são divididos em três classes:
  • Classe 1: possui um alcance de 100m, na teoria, visto que na prática nunca nos encontramos em um ambiente livre de obstáculos.
  • Classe 2: são os mais usados atualmente, sendo encontrado na maioria dos celulares e dispositivos portáteis. Possui alcance de 10m.
  • Classe 3: raramente encontrada. Possui alcance de 1m.
Atualmente, os principais Sistemas Operacionais: Mac OS, Linux e Windows, dão suporte a este protocolo. Alguns computadores pessoais contêm um adaptador Bluetooth instalado e, em contra-partida, a grande maioria dos computadores portáteis vêem com um chip interno instalado. Caso seu computador não ofereça suporte a esta tecnologia, torna-se necessário a instalação de um adaptador interno, dongle Bluetooth.

Um dispositivo Bluetooth master(mestre), dispositivo que inicia a conexão, pode se conectar com até sete dispositivos slave(escravo), demais dispositivos que participam da conexão, formando um grupo de rede denominado Piconet. Piconet é uma rede ad-hoc, que utiliza os protocolos da tecnologia Bluetooth para prover a conexão entre dispositivos.
Ad-hoc é uma rede que se caracteriza pela ausência de infra-estrutura física. A responsabilidade por organizar e controlar a rede fica dividida entre os dispositivos.
O dispositivo mestre pode ser conectar com até sete dispositivos ativos. Porém, pode estar em conexão com até 255 dispositivos inativos ficando a cargo do dispostivo mestre ativar ou desativar seus dispostivos escravos de acordo com sua necessidade. A qualquer momento dados podem ser trocados entre o mestre e o outro dispositivo e os dispositovos podem trocar suas posiçoes, mestre e escravo(embora não muito utilizado). Ainda é possível conectar redes Piconets para formar uma Scatternet, com dispositivos agindo como ponte entre as Piconets.
Scatternet é um tipo de rede ad-hoc composta por dois ou mais Piconets.
Fig. 1 - Scatternet (master = vermelho, verde = slave, stacionamento = blue)

Qualquer dispositivo pode realizar a varredura para identificar outros dispositivos para conexão, e fica a cargo da configuração do dispositivo aceitar ou não a requisição de conexão. Caso, o dispositivo que esteja tentando a conexão souber o endereço do dispositivo que se queira conectar, o mesmo vai sempre responder as requisições. Porém, o uso dos dispositivos ficam aguardando a aceitação do proprietário ou o pareamento(emparelhamento).
Pareamento é ato de estabelecer uma conexão segura entre os dispositivos pela solicitação de uma senha secreta(passkey). O dispositivo que deseja realizar a comunicação deve informar uma senha que também deve ser digitada no dispositivo de destino. Uma vez emparelhados, os dispositivos armazenam as informações dos outros que estabeleceram a conexão e a partir daí é realizada uma conexão transparente sempre que se é reconhecido algum dispositivo. A qualquer momento podem ser apagados os pareamentos tornando-se obrigatório uma nova autenticação.
Todos os dispositivos que constituem a tecnologia Bluetooth, assim como as placas de rede que contém um Endereço MAC que é único e gravado pelo fabricante, possui um número único constituído de 48 bits que serve como identificação, no formato de 00:00:00:00:00:00. Quando é estabelecida a conexão entre dispositivos uma série de informações são apresentadas para os dispositivos participantes: classe do dispositivo, lista de serviço disponíveis, características, fabricantes, etc., além do número no formato apresentado que geralmente é substituído por algum nome dado ao dispositvo(somente na sua apresentação).

Como apresentado na postagem IEEE 802.11, onde as redes Ethernet tendem a ser substituídas por redes sem fio, a tecnologia Bluetooth está substituíndo os aparelhos com Infra-Vermelhos, visto que, os aparelhos infra-vermelhos necessitam de um alinhamento preciso entre seus participantes. Com o baixo custo existente no protocolo 802.15 e facilidade de conexão estes assumiram o mercado em seu seguimento.

José Mauro da Silva Sandy

Leituras Recomendadas
Clube de Revista