𝖂𝖎ƙ𝖎𝖊

Bytecode Java: mudanças entre as edições

imported>Tuga1143
m (v1.43b - Corrigido usando WP:PCW (en dash ou em dash))
 
(24 revisões intermediárias por 20 usuários não estão sendo mostradas)
Linha 1: Linha 1:
O código de um [[programa de computador]] escrito na linguagem [[Java (linguagem de programação)|Java]] é [[Compilador|compilado]] para uma forma intermediária de código denominada '''[[bytecode]]''', que é interpretada pelas [[Máquina virtual Java|Máquinas Virtuais Java]] (JVMs). É essa característica que faz com que os os programas Java sejam independentes de plataforma, executando em qualquer sistema que possua uma JVM. Cada opcode tem o tamanho de um [[byte]] - daí o seu nome - e assim o número de diferentes códigos de operação está limitado a 256. Os 256 possíveis valores para códigos de operação não são todos utilizados. Na verdade, alguns dos códigos foram inclusive reservados para nunca serem implementados.
{{sem notas|data=fevereiro de 2014}}
O código de um [[programa de computador]] escrito na linguagem [[Java (linguagem de programação)|Java]] é [[Compilador|compilado]] para uma forma intermediária de código denominada '''[[bytecode]]''', que é interpretada pelas [[Máquina virtual Java|Máquinas Virtuais Java]] (JVMs). É essa característica que faz com que os programas Java sejam independentes de plataforma, executando em qualquer sistema que possua uma JVM. Cada opcode tem o tamanho de um [[byte]] daí o seu nome e assim o número de diferentes códigos de operação está limitado a 256. Os 256 possíveis valores para códigos de operação não são todos utilizados. Na verdade, alguns dos códigos foram inclusive reservados para nunca serem implementados.


Um programador Java não precisa entender - e nem tomar conhecimento - dos '''bytecodes Java''' para ser proficiente na linguagem, da mesma forma que um programador de qualquer linguagem de alto nível compilada para linguagem de máquina não precisa conhecer a linguagem de montagem do computador hospedeiro para escrever bons programas naquela linguagem.
Um programador Java não precisa entender e nem tomar conhecimento dos '''bytecodes Java''' para ser proficiente na linguagem, da mesma forma que um programador de qualquer linguagem de alto nível compilada para linguagem de máquina não precisa conhecer a linguagem de montagem do computador hospedeiro para escrever bons programas naquela linguagem.


== Montadores de Bytecode Java ==
== Montadores de Bytecode Java ==
Existem alguns montadores que permitem que se escrevam programas diretamente em '''bytecodes Java'''. Normalmente, esse tipo de ferramenta é útil para desenvolvedores de compiladores, e também para se estudar detalhadamente o comportamento das máquinas virtuais Java disponíveis no mercado. Dentre os montadores de '''bytecode Java''' disponíveis destacam-se:
Existem alguns montadores que permitem que se escrevam programas diretamente em '''bytecodes Java'''. Normalmente, esse tipo de ferramenta é útil para desenvolvedores de compiladores, e também para se estudar detalhadamente o comportamento das máquinas virtuais Java disponíveis no mercado. Dentre os montadores de '''bytecode Java''' disponíveis destacam-se:
*[[Jasmin]]
* [[Jasmin]]
*[[Jamaica (montador para bytecode)|Jamaica]]
* [[Jamaica (montador para bytecode)|Jamaica]]


== Outras linguagens ==
== Outras linguagens ==
Existem compiladores para outras linguagens de programação que geram '''bytecode Java'''. Por exemplo:
Existem compiladores para outras linguagens de programação que geram '''bytecode Java'''. Por exemplo:
*[[JGNAT]] e [[AppletMagic]], que são compiladores para a linguagem [[Ada (linguagem de programação)|Ada]].
* [[JGNAT]] e [[AppletMagic]], que são compiladores para a linguagem [[Ada (linguagem de programação)|Ada]].
*[[Groovy]], que é uma linguagem de script baseada em Java.
* [[Groovy]], que é uma linguagem de script baseada em Java.
*[[JEiffel]] e [[SmartEiffel]], que geram '''bytecode Java''' para a linguagem [[Eiffel (linguagem de programação)|Eiffel]].
* [[JEiffel]] e [[SmartEiffel]], que geram '''bytecode Java''' para a linguagem [[Eiffel (linguagem de programação)|Eiffel]].
*Conversores de C para Java que geram código diretamente para '''bytecode Java'''.
* Conversores de C para Java que geram código diretamente para '''bytecode Java'''.
*Conversores de linguagem Pascal para Java e compiladores Pascal que geram '''bytecode Java'''.
* Conversores de linguagem Pascal para Java e compiladores Pascal que geram '''bytecode Java'''.


== {{Links}} ==
== Bibliografia ==
* {{en}} [http://java.sun.com/docs/books/jvms - Livro sobre as especificações da JVM]
* {{Citar livro |autor=Alves-Foss, Jim |título=Formal Syntax and Semantics of Java |subtítulo= |idioma=inglês |edição= |local=Heidelberg |editora=Springer-Verlag |ano=1999 |páginas=404 |volumes= |volume= |id= |ISBN=3-540-66158-1}}
* {{en}} [http://java.sun.com/docs/books/jvms/second_edition/html/VMSpecTOC.doc.html -Especificação da Máquina Virtual Java, contendo todos os códigos de operação do '''bytecode Java''']
* {{Citar livro |autor=Engel, Joshua |título=Programming for the Java Virtual Machine |subtítulo= |idioma=inglês |edição= |local=Reading, Massachusetts |editora=Addison-Wesley |ano=1999 |páginas=488 |volumes= |volume= |id= |ISBN=0-201-30972-6}}
* {{en}} [http://jasmin.sourceforge.net/ - Jasmin]
* {{Citar livro |autor=Lindholm, Tim; Yellin, Frank |título=The Java Virtual Machine Specification |subtítulo= |idioma=inglês |edição=2ª |local=Reading, Massachusetts |editora=Addison-Wesley |ano=1999 |páginas=473 |volumes= |volume= |id= |ISBN=0-201-43294-3}}
* {{en}} [http://groovy.codehaus.org/ - Linguagem Groovy]
* {{en}} [http://smarteiffel.loria.fr/ - Compilador SmartEiffel]
*[http://se.ethz.ch/projects/benno_baumgartner/jeiffel.pdf - JEiffel]
* {{en}} [http://www.jabaco.org/ - Compilador BASIC]


[[Categoria:Java]]
== Ligações externas ==
* {{link|1=en|2=http://java.sun.com/docs/books/jvms|3=Especificações da JVM}}
* {{link|1=en|2=http://java.sun.com/docs/books/jvms/second_edition/html/VMSpecTOC.doc.html|3=Especificação da Máquina Virtual Java|4=, contendo todos os códigos de operação do ''bytecode Java''}}
* {{link|1=en|2=http://jasmin.sourceforge.net/|3=Jasmin}}
* {{link|1=en|2=http://groovy.codehaus.org/|3=Linguagem Groovy}}
* {{link|1=en|2=http://smarteiffel.loria.fr/|3=Compilador SmartEiffel}}
* {{link|1=en|2=http://www.jabaco.org/|3=Compilador BASIC|4=www.jabaco.org}}
* {{link|1=|2=http://se.ethz.ch/projects/benno_baumgartner/jeiffel.pdf|3=JEiffel|4=(em formato [[PDF]])}}


[[bs:Java bytecode]]
 
[[en:Java bytecode]]
{{Esboço-programação}}
[[es:Java bytecode]]
 
[[fr:Bytecode Java]]
[[Categoria:Java (linguagem de programação)]]

Edição atual tal como às 22h18min de 11 de junho de 2018

Predefinição:Sem notas O código de um programa de computador escrito na linguagem Java é compilado para uma forma intermediária de código denominada bytecode, que é interpretada pelas Máquinas Virtuais Java (JVMs). É essa característica que faz com que os programas Java sejam independentes de plataforma, executando em qualquer sistema que possua uma JVM. Cada opcode tem o tamanho de um byte — daí o seu nome — e assim o número de diferentes códigos de operação está limitado a 256. Os 256 possíveis valores para códigos de operação não são todos utilizados. Na verdade, alguns dos códigos foram inclusive reservados para nunca serem implementados.

Um programador Java não precisa entender — e nem tomar conhecimento — dos bytecodes Java para ser proficiente na linguagem, da mesma forma que um programador de qualquer linguagem de alto nível compilada para linguagem de máquina não precisa conhecer a linguagem de montagem do computador hospedeiro para escrever bons programas naquela linguagem.

Montadores de Bytecode Java

Existem alguns montadores que permitem que se escrevam programas diretamente em bytecodes Java. Normalmente, esse tipo de ferramenta é útil para desenvolvedores de compiladores, e também para se estudar detalhadamente o comportamento das máquinas virtuais Java disponíveis no mercado. Dentre os montadores de bytecode Java disponíveis destacam-se:

Outras linguagens

Existem compiladores para outras linguagens de programação que geram bytecode Java. Por exemplo:

  • JGNAT e AppletMagic, que são compiladores para a linguagem Ada.
  • Groovy, que é uma linguagem de script baseada em Java.
  • JEiffel e SmartEiffel, que geram bytecode Java para a linguagem Eiffel.
  • Conversores de C para Java que geram código diretamente para bytecode Java.
  • Conversores de linguagem Pascal para Java e compiladores Pascal que geram bytecode Java.

Bibliografia

  • Alves-Foss, Jim (1999). Formal Syntax and Semantics of Java (em inglês). Heidelberg: Springer-Verlag. 404 páginas. ISBN 3-540-66158-1 
  • Engel, Joshua (1999). Programming for the Java Virtual Machine (em inglês). Reading, Massachusetts: Addison-Wesley. 488 páginas. ISBN 0-201-30972-6 
  • Lindholm, Tim; Yellin, Frank (1999). The Java Virtual Machine Specification (em inglês) 2ª ed. Reading, Massachusetts: Addison-Wesley. 473 páginas. ISBN 0-201-43294-3 

Ligações externas


Ícone de esboço Este sobre programação de computadores é um esboço. Você pode ajudar a Wikipédia expandindo-o.

talvez você goste