imported>FlaBot m (Bot: Adicionando: es:Java bytecode) |
imported>Tuga1143 m (v1.43b - Corrigido usando WP:PCW (en dash ou em dash)) |
||
(37 revisões intermediárias por 29 usuários não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
{{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. | |||
* [[ | == 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: | |||
* [[Jasmin]] | |||
* [[Jamaica (montador para bytecode)|Jamaica]] | |||
[[ | == 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 (linguagem de programação)|Ada]]. | |||
* [[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]]. | |||
* 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 == | |||
* {{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}} | |||
[[ | * {{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}} | ||
[[ | * {{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}} | ||
== 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]])}} | |||
{{Esboço-programação}} | |||
[[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
- «Especificações da JVM» (em English)
- «Especificação da Máquina Virtual Java» (em English). , contendo todos os códigos de operação do bytecode Java
- «Jasmin» (em English)
- «Linguagem Groovy» (em English)
- «Compilador SmartEiffel» (em English)
- «Compilador BASIC» (em English). www.jabaco.org
- «JEiffel» (PDF). (em formato PDF)