Разработчик (и) | Исследовательская группа Sable в Университете Макгилла |
---|---|
Финальная версия | 1.13 / март 30, 2007; 13 лет назад (30.03.2007) |
Репозиторий | |
Операционная система | Кросс-платформенная |
Тип | Виртуальная машина Java |
Лицензия | Стандартная общественная лицензия ограниченного применения GNU |
Веб-сайт | sablevm.org |
SableVM был реализацией чистой комнаты из Java bytecode интерпретатор, реализующий спецификацию виртуальной машины Java (VM ), второе издание. SableVM была разработана как надежная, чрезвычайно портативная, эффективная и полностью соответствующая спецификациям (спецификация JVM, Java Native Interface, интерфейс вызова, интерфейс отладки и т. Д.) Виртуальная машина Java, которую было бы легко поддерживать и расширить. Сейчас он больше не поддерживается.
Реализация была частью усилий в начале 2000-х годов по освобождению экосистемы Java от контроля Sun Microsystems.
Основным механизмом является интерпретатор, который использовал новаторские методы обеспечения производительности, приближающейся к производительности «наивного» JIT-компилятора, при сохранении преимуществ программной инженерии интерпретаторов: портативность, ремонтопригодность и простота. Эта простота делает исходный код SableVM очень доступным и легким для понимания новыми пользователями / программистами.
SableVM - это бесплатное программное обеспечение - оно находится под лицензией GNU Стандартной общественной лицензии ограниченного применения (LGPL ). Он также использует GNU Classpath (авторское право FSF ), который находится под лицензией Стандартной общественной лицензии GNU с исключением связи.
SableVM является первым виртуальная машина с открытым исходным кодом для Java, чтобы включить поддержку JVMDI (интерфейс отладки виртуальной машины Java) и JDWP (протокол Java Debug Wire Protocol). Эти стандартные интерфейсы отладки Java используются, например, в Eclipse для обеспечения богатой и удобной среды разработки Java.
Некоторые версии SableVM используют промежуточный язык Java, промежуточный язык (который является подмножеством XML ), представляющий структуру типа Программа Java. Этот язык был предложен командой SableVM в Университете Макгилла в январе 2002 года для помощи в анализе программы Java с целью масштабируемости и хорошей производительности. Язык не получил широкого распространения.
Рассмотрим следующий фрагмент кода Java.
public MyClass реализует MyInterface extends MySupperClass {int MyField; void MyMethod (двойной x, двойной y) {двойной z; г = х + у; this.MyField = z}}
Эта часть может быть выражена на языке следующим образом: