Каков наилучший способ узнать о реализации виртуальной машины помимо фактического взлома кода?
Я хотел бы узнать больше о внедрении и оптимизации виртуальных машин. Прямо сейчас я помогаю (в малой степени) с JRuby, а также играю / пишу с помощью своей собственной языковой реализации, похожей на lisp, которая работает на ВМ.
Однако я хотел бы получить больше информации о работе с виртуальными машинами и их проектировании. Есть ли хороший ресурс для этого типа информации, кроме чтения / работы с существующим кодом? Я не против этого, я просто подумал, есть ли другие источники, которые я мог бы изучить.
3 ответа
Прочитайте работу Антона Эртля. Также Дэвид Грегг. Также вы можете прочитать синюю книгу Smalltalk, которая состоит из трех глав о виртуальной машине. Зеленая книга Smalltalk также интересна и бесплатна онлайн.
Менее технический, но все же интересный, если у вас есть доступ к цифровой библиотеке ACM, является прародителем всех портативных виртуальных машин, UCSD Pascal.
Наконец, я поддерживаю рекомендацию по внедрению Lua 5.0. Это превосходная работа.
Также проверьте реализацию Lua 5.0. он считается самой быстрой виртуальной машиной в своем классе, а также одной из самых чистых и маленьких реализаций.