Computação nas Nuvens

13 Maio 2008

Nos próximos anos deveremos ouvir muito os termos “computação nas nuvens“, “cloud computing” e SaaS – Software-as-a-Service“. O conceito é claro, cada vez mais as informações estarão disponíveis e mais pessoas terão acesso a essas informações, graças à disponibilização de muitos serviços on-line, muitos gratuitamente, e que devem baratear o preço dos computadores, inclusive, aumentando a presença on-line de pequenas empresas e fornecedores de serviços.

O conceito não é novo para quem trabalha com internet, mas ganha cada vez mais destaque com declarações da Google estar trabalhando na sua “computações nas nuvens”. O termo refere-se à possibilidade de utilizarmos computadores menos potentes que podem se conectar à Web e utilizar todas as ferramentas on-line, seguindo o exemplo que o Google propõe com o Google Docs, Gmail e tantas outras aplicações. Assim, o computador seria simplesmente uma plataforma de acesso às aplicações, que estariam em uma grande nuvem – a Internet.

Vale lembrar, que como o termo não é nada novo, já existem vários sites que são praticamente sistemas operacionais on-line, além de muitos serviços que disponibilizam ferramentas fantásticas on-line. Exemplo recente da Adobe, que disponibilizou uma versão on-line do Photoshop.

O Jornal da Globo fez uma reportagem tentando explicar o conceito e, ao visitar a sede do Google em Mountain View tornou-se a primeira equipe de TV sul-americana a conversar com Eric Schmidt – CEO do Google. Na conversa, Eric falou que o Google compra novas empresas na proporção de uma por semana e, ao ser perguntado sobre uma possível aquisição do Yahoo!, respondeu que não há planos de comprar gigantes, mas sim de pequenas empresas que oferecem serviços “revolucionários”.

Eric também “alfinetou” a Microsoft, falando que não tem medo da empresa de Bill Gates e que a empresa deve sofrer com a concorrência da “computação nas nuvens” que deve crescer nos próximos anos e ir totalmente contra o conceito aplicado até hoje pela Microsoft. Segundo ele, o futuro está na internet, daí o interesse da Microsoft adquirir o Yahoo!.

Eric completou que o Google está trabalhando para esta “computação nas nuvens”, mostrando que a empresa tem interesse em disponibilizar cada vez mais informações e torná-las cada vez mais acessíveis, seguindo o lema da empresa e, lógico, ganhando mercado e fazendo dinheiro com este público sedento por informações.

Assista a reportagem realizada pela Globo dentro do GooglePlex:

Link


Compilador

13 Maio 2008

O compilador tem como função traduzir um programa de linguagem fonte (alto nível) para uma linguagem de máquina (baixo nível). Porém nesta  tradução existem estágios intermediários até chegar em linguagem de máquina para ser executada pelo processador. Esses estágios são:

1º) Edição: É o estágio onde o programador constrói sua linguagem (fonte) de alto nível em um editor qualquer e salva em uma terminação padrão da linguagem adotada. Ex em c++:.cpp;.C; etc.

2º) Pré-Processador: Antes de compilar o código fonte, este passa por um pré-processador que obedece à comandos chamados de diretivas de pré-processador (que em c++ são iniciados por #), que indicam que certas manipulações devem ser feitas antes da compilação. Exemplo em c++:

#define area_quadrado(x) (x*x)

Então o comando:

area = area_quadrado(2);

Vai ser traduzido para:

area = (2*2);

Daí então passa para fase de compilação.

3º) Compilação: Nesta fase o programa fonte já pré-processado é transformado em um arquivo objeto (.o) que já contém todo programa em binário. Neste processo, no caso c++, antes de passar para o “.o” é traduzido para código assembly para depois, utilizando um montador, ser passado para programa objeto (.o).

4º) Linkagem: O código objeto não é executado diretamente depois de traduzido, visto que em um programa pode-se ocorrer referências a outros programas ou dados, os quais se encontram em outros programas, ou em bibliotecas. Então nesta etapa um editor (linkeditor) tem como função juntar esses códigos traduzidos separadamente em um único módulo que seria um programa executável. Portanto se um programa for traduzido e linkado corretamente será gerado um executável.

5º) Carregamento: Antes que um programa possa ser executado, ele deve ser armazenado na memória principal. Portanto esta fase tem como função colocar o programa em memória principal.

6º) CPU: Por fim, o computador, sob controle da CPU executa uma instrução por vez.