WikiDer > SableVM - Википедия
Разработчики) | 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.