СаблеВМ
![]() | |
Разработчик(и) | Группа исследований соболя в Университете Макгилла |
---|---|
Финальный выпуск | 1.13
/ 30 марта 2007 г |
Репозиторий | |
Операционная система | Кросс-платформенный |
Тип | Виртуальная машина Java |
Лицензия | Меньшая стандартная общественная лицензия GNU |
Веб-сайт | саблевм |
SableVM представлял собой чистую реализацию интерпретатора Java байт-кода , реализующую спецификацию виртуальной машины Java ( VM ), второе издание. SableVM был разработан как надежная, чрезвычайно портативная, эффективная и полностью соответствующая спецификациям (спецификация JVM, собственный интерфейс Java , интерфейс вызова, интерфейс отладки и т. д.) виртуальная машина Java, которую можно было бы легко поддерживать и расширять. [ нужна ссылка ] Сейчас он больше не поддерживается.
Реализация была частью усилий начала 2000-х годов по освобождению экосистемы Java от Sun Microsystems . контроля [1] [2] [3]
Обзор
[ редактировать ]Ядро ядра представляет собой интерпретатор , в котором использованы новаторские методы для обеспечения производительности, которая может приблизиться к производительности «наивного» JIT-компилятора , сохраняя при этом разработке программного обеспечения преимущества интерпретаторов в : переносимость , удобство сопровождения и простоту . [4] [5] SableVM Эта простота делает исходный код очень доступным и понятным для новых пользователей/программистов.
SableVM — это бесплатное программное обеспечение , оно распространяется под лицензией GNU Lesser General Public License ( LGPL ). Он также использует GNU Classpath (авторские права принадлежат FSF ), который лицензируется по лицензии GNU General Public License с исключением ссылок .
SableVM — первая виртуальная машина с открытым исходным кодом для Java, включающая поддержку JVMDI (интерфейс отладки виртуальной машины Java) и JDWP (протокол отладки Java). [ нужна ссылка ] Эти стандартные интерфейсы отладки Java используются, например, в Eclipse для обеспечения богатой и удобной среды разработки Java.
Промежуточный язык Java
[ редактировать ]Некоторые версии SableVM используют Java Intermediate Language, промежуточный язык (который является подмножеством XML ), представляющий структуру типов программы Java . Этот язык был предложен командой SableVM в Университете Макгилла в январе 2002 года для облегчения анализа Java-программ с целью обеспечения масштабируемости и хорошей производительности. [6] [7] Язык не получил широкого распространения.
Рассмотрим следующий фрагмент кода Java.
public MyClass implements MyInterface extends MySupperClass {
int MyField;
void MyMethod (double x, double y) {
double z;
z = x + y;
this.MyField = z
}
}
Это произведение можно выразить на языке следующим образом:
<jil>
<class name="MyClass" extends="MySupperClass">
<modifiers><modifier name="public" /></modifiers>
<interfaces><interface name="myinterface" /></interfaces>
<fields>
<field name="MyField" type="int" />
</fields>
<methods>
<method name="MyMethod" returntype="void">
<parameters>
<parameter name="x" type="double" />
<parameter name="y" type="double" />
</parameters>
<locals>
<local name="z" type="double" />
</locals>
<statements>
<!-- Each statement is expressed by some intermediate format for
code generator like three address code. In the below
a language called baf is used. -->
<baf>
<![CDATA[
$r2 = $r0 + $r1;
this.MyField = (double) $r2;
]]>
<!-- Here, we are assuming x is expressed as $r0, y $r1 and z $r2. -->
</baf>
</statements>
</method>
</methods>
</class>
</jil>
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Прогресс в одобренной Sun Java с открытым исходным кодом» . Спрашивающий. 31 марта 2006 г. Архивировано из оригинала 3 декабря 2009 года . Проверено 2 декабря 2012 г.
{{cite web}}
: CS1 maint: неподходящий URL ( ссылка ) - ^ «Сеть O'Reilly побеждает в тряске; платформа SNAP трясется» . Onlamp.com. Архивировано из оригинала 3 марта 2016 г. Проверено 2 декабря 2012 г.
- ^ «Варвары у ворот | SYS-CON.TV» . TV.sys-con.com. 22 сентября 2006 г. Проверено 2 декабря 2012 г.
- ^ Ганьон, Этьен М. и Лори Дж. Хендрен. «SableVM: исследовательская среда для эффективного выполнения байт-кода Java». Материалы симпозиума по исследованиям и технологиям виртуальных машин Java. Том. 1. 2001.
- ^ Прокопски, Грегори Б., Этьен М. Ганьон и Кристиан Арканд. Платформа тестирования байт-кода для механизма копирования кода SableVM. Технический отчет SABLETR-2007-9, Исследовательская группа Sable, Школа компьютерных наук, Университет Макгилла, Монреаль, Квебек, Канада, 2007 г.
- ^ Энг, Дэвид. «JIL: расширяемый промежуточный язык». Исследовательская группа Сейбла, Университет Макгилла (2002 г.).
- ^ Энг, Дэвид. Объединение статических и динамических данных при визуализации кода. Том. 28. № 1. АКМ, 2002.