A Máquina Virtual

By Tiago Frossard | 09/08/2007

Entender o que é e como funciona uma Máquina Virtual é extremamente importante quando queremos entender conceitos como portabilidade e multiplataforma.

Para entendermos uma Máquina Virtual, precisamos entender primeiro como funciona a programação. Quando a gente está programando, a gente está criando um texto que vai indicar o que cada coisa vai fazer. É como se a gente escrevesse uma longa lista de ordens, como “Quando clicar no botão sair, feche o programa” ou “Se for sair do programa sem ter salvo o arquivo, mostre ao usuário que o arquivo não foi salvo e pergunte se ele quer salvá-lo”, só que em uma linguagem diferente, como Inglês, Japonês ou Polonês.

Essa “linguagem diferente” é o que a gente chama de Linguagem de Programação. Existem várias dessas linguagens por aí, como C, Pascal, Java, C++, PHP e Action Script 3.0. O texto digitado (que chamamos de Código-fonte) é então compilado ou interpretado: Compilar um código-fonte significa transformá-lo em um programa, enquanto interpretar significa lê-lo para extrair dele as ordens a serem executadas.

Interpretando ou compilando, a linguagem de programação, no fundo, vai traduzir pro computador tudo aquilo que eu quero que ele faça e vai traduzir pra mim tudo aquilo que o computador me responde, como no diagrama abaixo:

“Mas e a Máquina Virtual???”, você pergunta. Já estamos chegando lá. Quando nós compilamos o código-fonte e transformamos ele em um programa complexo, acontece uma coisa indesejável: aquele programa funcionará somente no sistema operacional onde foi compilado. Ou seja: compilou no Windows, não vai funcionar no Linux. Isso faz com que a gente tenha que reescrever várias coisas no programa prá que ele funcione em outros Sistemas Operacionais. Esse é o exemplo de um programa de Baixa Portabilidade.

 

A Máquina Virtual funciona como um meio-termo entre o programa e o Sistema Operacional. Quando fazemos um programa em Java ou Action Script 3.0, por exemplo, não precisamos nos preocupar em escrevê-lo para diversos Sistemas Operacionais diferentes: a Maquina Virtual já traduz aquele código automaticamente, sem que a gente saiba como isso foi feito (o que chamamos de Forma Transparente), como no diagrama abaixo.

Não entendeu? Hmmm…. vejamos: Imagine que estejamos escrevendo um livro em português. Para ganhar mais com o livro, por quê não publicá-lo em outros países? Seguindo a idéia de uma linguagem SEM MÁQUINA VIRTUAL, teríamos que reescrever o livro em inglês, alemão e holandês.

 

Porém, se tivéssemos um tradutor, ao invés de escrevermos o texto em 3 línguas diferentes, escreveríamos em uma linguagem que nosso tradutor entendesse e ele sim traduziria para inglês, alemão e holandês.

 

Nesse exemplo, o tradutor seria a Máquina Virtual, enquanto o texto seria nosso Código-fonte. Cada país é um Sistema Operacional e a capacidade do mesmo texto chegar em diversos países é a Portabilidade dele. Se o texto foi traduzido com sucesso e alcançou diversos países, ele é considerado Multiplataforma.

Vale lembrar que esse funcionamento é bem diferente do padrão da maioria das linguagens, que devem ser compiladas pros diversos Sistemas Operacionais.

 

Pois então, agora que já sabemos como funciona uma Máquina Virtual, é hora de falarmos de uma coisa mais complexa. No próximo artigo vou explicar o que são os Paradigmas de Programação e falar um pouco sobre os mais comuns. Até breve!

Artigos Relacionados:

Sem artigos relacionados.

4 Comments

  • By victor, 10/08/2007 @ 19:24

    Parabens
    Eu acabei de ler todos os artigos…

    Esta fikando muito BOM o Blog

    Vou esta sempre passando aqui…

    Parabens mesmo…
    PS:Eu acho jogos em flash muito fodas, porem eu gostaria de saber se da para fazer algo parecido com tibia, MAs offline…

    tipow um single player…

    Qual enginer se me idicaria caso naum fosse possivel?

    A linguagem do enginer naum importa…
    xD
    Eu comesso a estudar qualquer linguagem…

  • By Tiago Frossard, 10/08/2007 @ 19:34

    Eu não gosto d trabalhar com engines. Pelo menos não no sentido que eu entendi vc perguntando.

    Porém, pro que você tá querendo, acho que o RPGMaker vai bem. É mais prá Final Fantasy que prá Tibia, mas mesmo assim…

  • By Caio Rocha, 14/08/2007 @ 02:45

    Máquina virtual?? Já ouvi sobre amigo virtual, realidade virtual, bichinho virtual, sexo virtual, mas máquina?! É de lavar?

    auhhuauhauha

    como eu já disse… eu posso me virar com computador, mas quando o assunto é programação eu sou um 000 a esquerda. uhahuahuhua

    Brincadeiras a parte, parabens pelo seu blog. Sempre vi blogs na internet e isso é bem o seu jeito mesmo… tanto que ta assim, super bem feito. Já posso ver os flashs e câmeras ligadas =D

Links to this Post

  1. Nuss… E agora?!? » Paradigmas de Programação: Estilos diferentes de escrever o mesmo texto — 11/02/2008 @ 21:46

RSS feed for comments on this post. TrackBack URI

Leave a comment

WordPress Themes

Rec6plug

Search engine optimization by SEO Design Solutions