Jikes Research Virtual Machine ( Jikes RVM ) es una máquina virtual madura que ejecuta programas escritos para la plataforma Java . A diferencia de la mayoría de las otras máquinas virtuales Java (JVM), está escrito en el lenguaje de programación Java , en un estilo de implementación denominado meta-circular . Es un software gratuito y de código abierto publicado bajo una licencia pública de Eclipse .
Desarrollador (es) | Jikes RVM Team, colaboradores [1] |
---|---|
Versión inicial | 1999 |
Lanzamiento estable | 3.1.4 / 18 de febrero de 2016 |
Repositorio | |
Escrito en | Java |
Sistema operativo | Tipo Unix |
Tipo | Máquina virtual Java , biblioteca |
Licencia | Licencia pública de Eclipse |
Sitio web | www |
Historia
- 1997 Noviembre, el proyecto de jalapeño comienza como un proyecto de investigación interna en IBM 's Thomas J. Watson Research Center . [2]
- 1999, 2000, investigadores de IBM publican artículos de investigación que describen aspectos novedosos de Jikes RVM y varias universidades tienen acceso al código fuente .
- 2001 Octubre, Jikes RVM versión 2 se lanza como un proyecto modelo de código abierto bajo la Licencia Pública Común . La versión es compatible con las arquitecturas PowerPC e Intel y una variedad de diferentes algoritmos de recolección de basura .
- En 2002, se lanza Jikes RVM 2.2 con los recolectores de basura precisos ahora refactorizados en los populares recolectores precisos de Memory Management Toolkit .
- 2004, Jikes RVM 2.4 se lanza con mayor estabilidad y rendimiento en parte, con un enfoque especial para ejecutar eclipse.
- 2007, el desarrollo de Jikes RVM 2.9 comienza con la base de código ampliamente refactorizada para usar características de Java 5.0 y usar un sistema de compilación Apache Ant .
- 2008, Jikes RVM 3.0 se lanzó marcando el final del desarrollo 2.9 y la nueva estabilidad en la base del código.
- 2009, Jikes RVM 3.1 lanzado bajo la Licencia Pública Eclipse (EPL) con mejoras significativas sobre el rendimiento de la versión 3.0.1 y un cambio a subprocesos nativos .
- En 2012, Jikes RVM ganó el premio de Software del Grupo de Interés Especial de Lenguajes de Programación ( SIGPLAN ) de la Asociación de Maquinaria de Computación (ACM) , citado por su "diseño modular y de alta calidad". [3]
Oreja
Al ser meta-circular , Jikes RVM requiere una JVM de arranque para ejecutarse para crear una imagen de arranque. La imagen de arranque es una vista de los objetos que Jikes RVM necesita para arrancar, creada mediante la reflexión en la JVM de arranque. Un pequeño cargador C es responsable de cargar la imagen de arranque en tiempo de ejecución.
VM Magic
VM Magic es donde el compilador genera un código diferente para una clase del que deberían realizar los códigos de bytes dentro de esa clase. Las clases de VM Magic permiten el acceso directo a la memoria y son clave para el rendimiento de Memory Management Toolkit. Las clases de VM Magic residen en el paquete org.vmmagic y se han reutilizado en otros proyectos Java.
Kit de herramientas de gestión de memoria
El Memory Management Toolkit (MMTk) es un conjunto de recolectores de basura precisos que se han utilizado dentro de Jikes RVM y otros proyectos como el sistema operativo Singularity y la Shared Source Common Language Infrastructure (SSCLI, anteriormente llamado Rotor). [4] Al igual que con el resto de Jikes RVM, la implementación está en Java , pero la principal dependencia está en VM Magic.
Bibliotecas de clases
Las bibliotecas de clases de Apache Harmony o GNU Classpath se pueden utilizar con Jikes RVM, con soporte experimental para la biblioteca de clases de OpenJDK .
Compiladores
Jikes RVM utiliza un compilador de línea de base rápido para generar rápidamente código para una arquitectura determinada. La compilación adaptable vuelve a compilar el código con un compilador de optimización con características como el reemplazo en la pila (OSR). El sistema de compilación adaptativo utiliza un modelo de análisis de costo-beneficio.
Tiempo de ejecución
El tiempo de ejecución de Jikes RVM tiene muchas características innovadoras que incluyen mecanismos para bloqueo rápido, programación colaborativa y soporte para la recopilación y el envío rápido de excepciones.
Procesadores
Jikes RVM admite arquitecturas de procesador de conjuntos de instrucciones PowerPC (o ppc) e IA-32 (o Intel x86, 32 bits) .
Investigar
Dado que se trata de un proyecto de investigación, el énfasis de Jikes RVM está en la investigación de nuevas tecnologías, como se desprende de las publicaciones científicas que ha generado, más de 220 artículos en 2015. [5] [6]
Jikes RVM también ha participado en Google Summer of Code 2007, 2008, 2010, 2011 y 2012.
Ver también
- Jikes
- Lista de máquinas virtuales Java
- Implementaciones Java gratuitas
- Bootstrapping (compiladores)
- Autohospedaje
- Auto-intérprete
- PyPy (implementación de Python en Python)
- Rubinius (implementación de Ruby en Ruby)
Referencias
- ^ "Equipo de Jikes RVM y colaboradores" .
- ^ "Preguntas frecuentes" .
- ^ "Copia archivada" . Archivado desde el original el 3 de julio de 2013 . Consultado el 21 de junio de 2013 .CS1 maint: copia archivada como título ( enlace )
- ^ "Propuestas de proyecto Jikes RVM 2009" .
- ^ "Documentos de investigación de Jikes RVM" .
- ^ "El proyecto de máquina virtual de investigación de Jikes: la construcción de una comunidad de investigación de código abierto" (PDF) . Revista de sistemas de IBM . 44 (2). 2005.
enlaces externos
- Página web oficial
- JikesRVM Github
- Guía del usuario de Jikes RVM
- Página del proyecto Jikes RVM en SourceForge
- Puntos de referencia de DaCapo
- WALA