SableVM fue una implementación de sala limpia del intérprete de código de bytes de Java que implementa la especificación de máquina virtual Java ( VM ), segunda edición. SableVM fue diseñado para ser una máquina virtual Java robusta, extremadamente portátil, eficiente y totalmente compatible con las especificaciones (especificación JVM, interfaz nativa de Java , interfaz de invocación, interfaz de depuración, etc.) que sería fácil de mantener y ampliar. [ cita requerida ] Ahora ya no se mantiene.
Desarrollador (es) | Grupo de investigación Sable en la Universidad McGill |
---|---|
Lanzamiento final | 1.13 / 30 de marzo de 2007 |
Repositorio | |
Sistema operativo | Multiplataforma |
Tipo | máquina virtual de Java |
Licencia | Licencia pública general reducida GNU |
Sitio web | sablevm |
La implementación fue parte del esfuerzo a principios de la década de 2000 para liberar el ecosistema de Java del control de Sun Microsystems . [1] [2] [3]
Descripción general
El motor central es un intérprete que utilizó técnicas innovadoras para ofrecer un rendimiento que puede acercarse al de un compilador JIT "ingenuo" , al tiempo que conserva las ventajas de ingeniería de software de los intérpretes: portabilidad , facilidad de mantenimiento y simplicidad . [4] [5] Esta simplicidad hace que el código fuente de SableVM sea muy accesible y fácil de entender para nuevos usuarios / programadores.
SableVM es software libre , está licenciado bajo la GNU Lesser General Public License ( LGPL ). También hace uso de GNU Classpath (propiedad de la FSF ) que está bajo la Licencia Pública General GNU con excepción de vinculación .
SableVM es la primera máquina virtual de código abierto para Java que incluye el soporte para JVMDI (Interfaz de depuración de máquina virtual Java) y JDWP (Protocolo Java Debug Wire). [ cita requerida ] Estas interfaces de depuración estándar de Java son utilizadas, por ejemplo, por Eclipse para proporcionar un entorno de desarrollo Java rico y fácil de usar.
Lenguaje intermedio Java
Algunas versiones de SableVM utilizan Java Intermediate Language, un lenguaje intermedio (que es un subconjunto de XML ) que representa la estructura de tipos de un programa Java . El lenguaje fue propuesto por el equipo de SableVM en la Universidad McGill en enero de 2002 para ayudar al análisis de un programa Java con los objetivos de escalabilidad y buen rendimiento. [6] [7] El lenguaje no ha sido ampliamente adoptado.
Considere el siguiente fragmento de código Java.
public MyClass implementa MyInterface extiende MySupperClass { int MyField ; anular MyMethod ( doble x , doble y ) { doble z ; z = x + y ; esto . MyField = z } }
Esta pieza se puede expresar en el idioma de la siguiente manera:
name = "MyClass" extended = "MySupperClass" > name = "public" /> name = "myinterface" /> name = "MyField" type = "int" /> étodos> étodo> nombre = "Mi método" returnntype = "void" > ámetros> ámetro> nombre = "x" tipo = "doble" /> ámetro> nombre = "y" tipo = "doble" /> name = "z" type = "double" /> generador de código, como el código de tres direcciones. A continuación, se utiliza un lenguaje llamado baf. -> $ r2 = $ r0 + $ r1; this.MyField = (doble) $ r2; ]]> ->
Ver también
- Lista de máquinas virtuales Java
- Implementaciones Java gratuitas
Referencias
- ^ "Java de código abierto aprobado por el sol progresando" . El indagador. 2006-03-31. Archivado desde el original el 3 de diciembre de 2009 . Consultado el 2 de diciembre de 2012 .CS1 maint: URL no apta ( enlace )
- ^ "O'Reilly Network gana una sacudida; la plataforma SNAP se sacudió" . Onlamp.com . Consultado el 2 de diciembre de 2012 .
- ^ "Bárbaros en la puerta | SYS-CON.TV" . Tv.sys-con.com. 2006-09-22 . Consultado el 2 de diciembre de 2012 .
- ^ Gagnon, Etienne M. y Laurie J. Hendren. "SableVM: un marco de investigación para la ejecución eficiente del código de bytes de Java". Actas del Simposio de investigación y tecnología de máquinas virtuales Java. Vol. 1. 2001.
- ^ Prokopski, Gregory B., Etienne M. Gagnon y Christian Arcand. Marco de prueba de bytecode para el motor de copia de código SableVM. Informe técnico SABLETR-2007-9, Grupo de investigación Sable, Facultad de Ciencias de la Computación, Universidad McGill, Montreal, Québec, Canadá, 2007.
- ^ Ing, David. "JIL: un lenguaje intermedio extensible". Grupo de Investigación Sable, Universidad McGill (2002).
- ^ Ing, David. Combinando datos estáticos y dinámicos en la visualización de código. Vol. 28. No. 1. ACM, 2002.
enlaces externos
- Página web oficial
- Subsitio de desarrollo de SableVM
- Información sobre depuración con SableVM y Eclipse
- Lenguaje intermedio Java