Решил снова покопать байт код.
Пока пролистал jvm spec, javap, reJ, ClassEditor.
Дальше хочется построить простейшую jvm на java.
В учебных целях.
Вернее даже не одну jvm, а серию итераций jvm с постепенным усложнением и с поясняющими презентациями.
Когда проект будет готов - можно будет на его основе "играться" с чем-то более интересным.
Главное - максимальная простота и наглядность.
ОС - Windows.
Минимум зависимостей от сторонних библиотек.
Однако основная цель - сделать классный практический курс по jvm internals.
Чтоб разобраться самому (по крайней мере я о себе).
Плюс - помочь всем, кого интересует тема.
Начать можно с парсера .class файлов.
Затем сделать простейшую обработку небольшого набора команд + стек.
Затем добавить создание объектов и heap.
И так далее.
И наоборот - код и работающие примерчики будут пояснять презентации )
А потом возможно можно будет написать книжку на основе проекта.
Вот примеры похожего (но всё же не совсем то).
Home Made Java Virtual Machine
http://www.codeproject.com/Articles/24029/Home-Made-Java-Virtual-Machine
small java jvm
http://igormaznitsa.com/projects/mjvm/index.html
Home Made Java Virtual Machine
http://www.codeproject.com/Articles/24029/Home-Made-Java-Virtual-Machine
How to create your own virtual machine -- Part 2
http://www.codeproject.com/Articles/61924/How-to-create-your-own-virtual-machine-Part-2
companion to the book Inside the Java Virtual Machine
http://web.informatik.uni-bonn.de/IV/martini/Lehre/Veranstaltungen/SS00/InformatikII/JavaSimulation/index.html
Есть желание подсказать куда лучше копать?
Есть желание поучаствовать в "проекте"?
Пока пролистал jvm spec, javap, reJ, ClassEditor.
Дальше хочется построить простейшую jvm на java.
В учебных целях.
Вернее даже не одну jvm, а серию итераций jvm с постепенным усложнением и с поясняющими презентациями.
Когда проект будет готов - можно будет на его основе "играться" с чем-то более интересным.
Главное - максимальная простота и наглядность.
ОС - Windows.
Минимум зависимостей от сторонних библиотек.
Однако основная цель - сделать классный практический курс по jvm internals.
Чтоб разобраться самому (по крайней мере я о себе).
Плюс - помочь всем, кого интересует тема.
Начать можно с парсера .class файлов.
Затем сделать простейшую обработку небольшого набора команд + стек.
Затем добавить создание объектов и heap.
И так далее.
И наоборот - код и работающие примерчики будут пояснять презентации )
А потом возможно можно будет написать книжку на основе проекта.
Вот примеры похожего (но всё же не совсем то).
Home Made Java Virtual Machine
http://www.codeproject.com/Articles/24029/Home-Made-Java-Virtual-Machine
small java jvm
http://igormaznitsa.com/projects/mjvm/index.html
Home Made Java Virtual Machine
http://www.codeproject.com/Articles/24029/Home-Made-Java-Virtual-Machine
How to create your own virtual machine -- Part 2
http://www.codeproject.com/Articles/61924/How-to-create-your-own-virtual-machine-Part-2
companion to the book Inside the Java Virtual Machine
http://web.informatik.uni-bonn.de/IV/martini/Lehre/Veranstaltungen/SS00/InformatikII/JavaSimulation/index.html
Есть желание подсказать куда лучше копать?
Есть желание поучаствовать в "проекте"?
Подсказали покопать OpenJDK или JikesRVM и глянуть
ОтветитьУдалитьOracle JRockit: The Definitive Guide
http://www.packtpub.com/oracle-jrockit-definitive-guide/book
На досуге копаю.
Кто-то разбирался с OpenJDK / JikesRVM?
Для изменения и генерации байт кода может пригодится ASM http://asm.ow2.org/ и Javassist http://www.csg.ci.i.u-tokyo.ac.jp/~chiba/javassist/
ОтветитьУдалитьСпасибо.
УдалитьУчтём.
А на практике приходилось работать с этими библиотеками?
Какое о них сложилось мнение?
Плюс - что вы думаете по поводу BPEL?
http://commons.apache.org/proper/commons-bcel/