Intepretador

Alguem podria me explicar, pq Java e um intepretador? Estou iniciando agora a programação em java, qual caminho vc me aconselham a seguir, para programação Orientada a Objeto.

Olá, bem vindo.

A Java Virtual Machine é um interpretador pois traduz o código Java para algo que o sistema operacional onde está rodando entenda. Por este motivo Java roda em qualquer plataforma, como Windows, Linux, celulares, etc.

Se você já conhece um pouco de programação e quer aprender OO, aconselho este livro:

É um interpretador em partes. Isso porque o código fonte Java é compilado para bytecodes. Os bytecodes são como um arquivo executável de qualquer sistema operacional; a diferença é que roda na Máquina Virtual do Java (os bytecodes são “instruções de máquina” como outras quaisquer, só que para essa máquina virtual).

Então, Java não é uma linguagem interpretada como uma linguagem de script tipo PHP ou Python. Essas linguagens interpretam o código fonte. O Java interpreta um código compilado.

Portanto, o Java é um interpretador apenas no sentido de traduzir as intruções para a máquina virtual em intruções “reais”, para o sistema operacional em questão.

Correcaozinha rapida: Python e PHP nao sao interpretadas direto do codigo-fonte. Elas passam por um processo de compilacao muito semelhante ao do Java, com a diferenca dele ser transparente. Sempre que voce roda um script Python, por exemplo, a VM escreve um arquivo .pyc, com os bytecodes. :wink:

Olá

O que vou falar é puritanismo babaca mas vamos lá. Para nós da velha guarda, código interpretado implica na necessidade de compilar o programa cada vez que ele é executado. Se este arquivo .pyc pudesse ser reaproveitado e não ser gerado sempre que voce roda um script Python, então pelos critérios atuais que aceita Java como código compilado, Python seria compilado. :frowning:

[]s
Luca

[quote=LIPE]
Se você já conhece um pouco de programação e quer aprender OO, aconselho este livro:

Queria ter um filho assim :mrgreen:

E ele eh reaproveitado, Luca. A VM do Python checa pela existencia desse arquivo toda vez que vai rodar o script, e se a data de atualizacao dele for boa (ou seja, o script nao foi alterado depois da ultima compilacao), ele roda direto dali. :wink:

Pessoal muito obrigado pela ajuda, mas pintou outra duvida, ja programo um pouco em C e VB, quando vi Java pela primeira vez, foi amor a primeira vista, hoje estou me deticando muito, mas como todo iniciante estou perdido em alguns conceitos, o java tem varias plataformas J2SE, J2EE e J2ME, o que seria cada uma delas? Existe herarquia entre estas plataformas? O que vcs me aconselham: Devo primeiro aprender OO ou a linguagem java em si, para depois pular para OO.
Me disseram que o livro Java como programar vol 4 e otimo livro para iniciantes, vc estão de acordo com esta afirmação?