SableVM - SableVM - Wikipedia
Разработчики) | Sable Research Group в г. Университет Макгилла |
---|---|
Окончательный релиз | 1.13 / 30 марта 2007 г. |
Репозиторий | |
Операционная система | Кроссплатформенность |
Тип | Виртуальная машина Java |
Лицензия | Стандартная общественная лицензия ограниченного применения GNU |
Интернет сайт | sablevm |
SableVM был реализация чистой комнаты из Ява байт-код устный переводчик реализация Виртуальная машина Java (ВМ ) спецификация, второе издание. SableVM была разработана как надежная, чрезвычайно портативная, эффективная и полностью соответствующая спецификациям (спецификация JVM, Собственный интерфейс Java, Интерфейс вызова, интерфейс отладки и т. Д.) Виртуальная машина Java, которую было бы легко поддерживать и расширять.[нужна цитата ] Сейчас он больше не поддерживается.
Внедрение было частью попытки в начале 2000-х сломать Ява экосистема, свободная от Sun Microsystems под контролем.[1][2][3]
Обзор
Ядро двигателя - это устный переводчик который использовал новаторские методы для обеспечения производительности, приближающейся к "наивной" JIT-компилятор, сохраняя программная инженерия преимущества переводчиков: переносимость, ремонтопригодность и простота.[4][5] Эта простота делает SableVM исходный код очень доступный и простой для понимания для новых пользователей / программистов.
SableVM - это Бесплатно программное обеспечение - под лицензией GNU Стандартная общественная лицензия ограниченного применения (LGPL ). Он также использует Путь к классам GNU (защищены авторским правом ФСПО ) под лицензией Стандартная общественная лицензия GNU с исключением связи.
SableVM - первая Открытый исходный код виртуальная машина для Java, чтобы включить поддержку JVMDI (Интерфейс отладки виртуальной машины Java) и JDWP (Протокол Java Debug Wire Protocol).[нужна цитата ] Эти стандартные интерфейсы отладки Java используются, например, Затмение чтобы предоставить богатую и удобную среду разработки Java.
Промежуточный язык Java
Некоторые версии SableVM используют Java Intermediate Language, промежуточный язык (который является подмножеством XML ), представляющий структуру типов Ява программа. Язык был предложен командой SableVM в Университет Макгилла в январе 2002 г., чтобы помочь в анализе программы Java с целью масштабируемости и хорошей производительности.[6][7] Язык не получил широкого распространения.
Рассмотрим следующий фрагмент кода Java.
общественный Мой класс орудия МойИнтерфейс расширяет MySupperClass { int MyField; пустота MyMethod (двойной Икс, двойной у) { двойной z; z = Икс + у; это.MyField = z }}
Это произведение может быть выражено на языке следующим образом:
<jil><класс имя ="Мой класс" расширяется ="MySupperClass"> <модификаторы> <модификатор имя ="общественный" /> <интерфейсы> <интерфейс имя ="мой интерфейс" /> <fields> <поле имя =«MyField» type ="int" /> </fields> <methods> <метод имя =«MyMethod» тип возврата ="пустота"> <parameters> <параметр имя ="Икс" type ="двойной" /> <параметр имя ="у" type ="двойной" /> </parameters> <locals> <местный имя ="z" type ="двойной" /> </locals> <statements> генератор кода как трехадресный код. Ниже используется язык, называемый baf. -> <baf> $ r2 = $ r0 + $ r1; this.MyField = (двойной) $ r2; ]]> <!-- Here, we are assuming x is expressed as $r0, y $r1 and z $r2. --> </baf> </statements> </method> </methods></class></jil>
Смотрите также
Рекомендации
- ^ «Утвержденная Sun Java с открытым исходным кодом делает успехи». Спрашивающий. 2006-03-31. Получено 2012-12-02.
- ^ «Сеть O'Reilly получает удар; платформа SNAP получает удар». Onlamp.com. Получено 2012-12-02.
- ^ "Варвары у ворот | SYS-CON.TV". Tv.sys-con.com. 2006-09-22. Получено 2012-12-02.
- ^ Ганьон, Этьен М. и Лори Дж. Хендрен. «SableVM: исследовательская структура для эффективного выполнения байт-кода Java». Труды симпозиума по исследованиям и технологиям виртуальных машин Java. Vol. 1. 2001.
- ^ Прокопский, Грегори Б., Этьен М. Ганьон и Кристиан Аркан. Фреймворк для тестирования байт-кода для механизма копирования кода SableVM. Технический отчет SABLETR-2007-9, Исследовательская группа Sable, Школа компьютерных наук, Университет Макгилла, Монреаль, Квебек, Канада, 2007.
- ^ Eng, Дэвид. «JIL: расширяемый промежуточный язык». Исследовательская группа Sable, Университет Макгилла (2002).
- ^ Eng, Дэвид. Объединение статических и динамических данных в визуализации кода. Vol. 28. № 1. АКМ, 2002.