quién - Especificación de bytecode de Java
tabla de codigo bytecode (10)
Esto es un poco más especializado, pero aquí hay una presentación en línea sobre cómo optimizar bytecode generado para ejecutar en la JVM. Fue presentado en las recientes conferencias de JVM Languages Summit . InfoQ tiene una colección de presentaciones de esa conferencia que podrían ser útiles para alguien que quiera abrir un idioma en la JVM (o para ver lo que ya se ha hecho).
¿Hay algún lugar agradable para aprender el conjunto de instrucciones de bytecode de JVM? La especificación tal vez y tal vez algunos tutoriales?
Pregunto porque me gustaría diseñar un lenguaje de juguete y un compilador que genere bytecode JVM.
Gracias por su conocimiento y tal vez Google.
También son útiles el desensamblador javap y los marcos de manipulación de códigos de bytes como ASM y BCEL , incluso si todo lo que quiere hacer es verificar sus clases.
El libro Programación para la máquina virtual Java explica el conjunto de instrucciones JVM y cómo escribir código para él. También presenta un ensamblador de código de bytes llamado Oolong, que no he podido descargar. Sin embargo, puede usar Jasmin , el predecesor de Oolong. Esencialmente, escribes un archivo de texto con instrucciones y Jasmin escupirá un archivo .class. El libro fue publicado en 1999, pero sigue siendo una introducción buena y gentil a la máquina virtual.
Algunos recursos que encontré útiles cuando comencé a aprender sobre bytecode JVM (Perdón por la auto referencia).
http://bytecoded.blogspot.com/2009/01/continuing-with-learning-path-good.html
Para empezar, sugiero generar código Java a partir de su idioma.
Esto hará que la lectura y la depuración sean mucho más simples.
Se ha lanzado una nueva versión de la especificación:
La especificación de la máquina virtual de Java, Java SE 7 Edition
Esta nueva adición excluye el capítulo sobre Conceptos del lenguaje de programación de Java que las personas pueden o no pueden ser útiles. Vea aquí para ese capítulo en la Segunda Edición de la especificación.
Tal vez consulte el ejemplo de Preon sobre cómo analizar un archivo de clase Java . Tiene una representación bastante completa del bytecode en un modelo de objetos Java.
Una buena referencia para la especificación de bytecode de Java es la especificación de la máquina virtual de Java .
Consulte el Capítulo 4. El Formato de archivo de clase y el Capítulo 6. El Conjunto de instrucciones de máquina virtual de Java .
La especificación de la máquina virtual Java es un buen lugar para comenzar.
Ver el Capítulo 4 El Formato de archivo de clase . Las actualizaciones cubren nuevos atributos agregados desde que se realizó la segunda edición.
Una explicación un poco más "gráfica", el desarrollador de IBM funciona: Comprender bytecode lo convierte en un mejor programador .