Definição de Bytecode

Por Carlos E. Morimoto. Há .

Linguagens de programação "tradicionais", como o C e o C++ utilizam um compilador diferente para cada plataforma ou sistema operacional em que o programa irá rodar. O código fonte em sí pode ser escrito de forma a ser facilmente portável, ou seja, rodar em diferentes versões do Unix ou em várias famílias de processadores diferentes sem muitas alterações, mas ainda assim será necessário recompilar o código fonte, gerando um binário diferente para cada caso.

Embora o trabalho inicial seja maior, a vantagem desta abordagem é que o desempenho é o melhor possível, já que sempre teremos um binário otimizado para a plataforma.

Mas, várias linguagens mais recentes como o Java utilizam um conceito diferente. Ao invés de gerar um binário diferente para cada plataforma, é gerado um binário que pode ser executado em qualquer plataforma, dentro de uma máquina virtual. Este binário "universal" é chamado de bytecode.

A idéia é criar aplicativos que possam ser escritos uma vez e executados em qualquer plataforma, reduzindo os custos de desenvolvimento. Apenas o software da máquina virtual é que precisa ser reescrita para cada plataforma, mas isso é problema dos desenvolvedores da linguagem, não do programador.

Existe ainda a opção de abrir mão da flexibilidade do bytecode em troca de um maior desempenho, passando a compilar os programas com otimizações para uma determinada plataforma. Isso é muito útil quando o programa será executado apenas dentro de computadores de uma certa plataforma, como PCs rodando Linux.

No caso do Java a máquina virtual que executa os programas é chamada de Java Virtual Machine. Muitas páginas Web utilizam applets Java, por isso a maioria das pessoas acaba instalando o suporte a Java. Hoje em dia, além do Java da Sun temos versões alternativas, como o Blackdown e o Kofee, que possuem conjuntos de recursos variados, mas são a princípio compatíveis com o código gerado para o Java da Sun.

Embora tenha ganhado relevância com o Java, este conceito não é exatamente novo. Linguagens mais antigas como o LISP e o Prolog já utilizam bytecode e máquinas virtuais.

Veja também
Um toque de elegância: a história do exclusivo PS1 dourado produzido pela Sony em 1996
Um toque de elegância: a história do exclusivo PS1 dourado produzido pela Sony em 1996
Artigos
Seu Jorge usa fone de ouvido que purifica o ar e viraliza nas redes; mas será que funciona?
Seu Jorge usa fone de ouvido que purifica o ar e viraliza nas redes; mas será que funciona?
Notícias
Propaganda em todo lugar! Uber mostrará anúncios antes das corridas no Brasil
Propaganda em todo lugar! Uber mostrará anúncios antes das corridas no Brasil
Notícias
The Crew: Americanas faz promoção de game que não funciona mais
The Crew: Americanas faz promoção de game que não funciona mais
Games
Pesquisa revela que jovens estão trocando os consoles por dispositivos portáteis
Pesquisa revela que jovens estão trocando os consoles por dispositivos portáteis
Games
Qualcomm lança processadores Snapdragon X Elite e Plus para notebooks
Qualcomm lança processadores Snapdragon X Elite e Plus para notebooks
Hardware
true