Спецификация байт-кода Java [закрыта]

Есть хорошее место для изучения набора инструкций байт-кода JVM. Спецификация, возможно, и, возможно, некоторые учебники?

Я спрашиваю, потому что я хотел бы разработать игрушечный язык и компилятор для него, который генерирует байт-код JVM.

Спасибо за ваши знания и, возможно, поиск в Google.

11.12.2008 00:39:20
9 ОТВЕТОВ
23
4.07.2017 00:12:16
Вы должны смотреть на спецификацию JVM, а не на другую
RobotHumans 6.08.2012 23:24:41

Также полезными являются javap дизассемблер и инфраструктуры манипулирования байт-кодом, такие как ASM и BCEL , даже если все, что вы хотите сделать, это проверить ваши классы.

4
11.12.2008 00:50:03

Немного более «графического» объяснения, разработчик IBM работает: понимание байт-кода делает вас лучшим программистом .

11
30.08.2012 09:42:37

Это немного более специализировано, но здесь представлена ​​онлайн-презентация о том, как оптимизировать сгенерированный байт-код для работы на JVM. Он был представлен на недавних конференциях саммита JVM Languages . InfoQ имеет коллекцию презентаций с этой конференции, которые могут помочь кому-то, кто хочет поднять язык в JVM (или посмотреть, что уже сделано).

1
11.12.2008 14:44:23

Книга Программирование для виртуальной машины Java объясняет набор инструкций JVM и как писать код для него. Он также представляет ассемблер байт-кода под названием Oolong, который я не смог загрузить. Вы можете, однако, использовать Jasmin , предшественника улун. По сути, вы пишете текстовый файл с инструкциями, а Jasmin будет выплевывать файл .class. Книга была опубликована в 1999 году, но она все еще является хорошим и ласковым введением в ВМ.

4
1.01.2009 16:26:39
Jasmin не поддерживается и не поддерживает многие функции файла классов. Я бы рекомендовал вместо этого использовать Krakatau Assembler, который обратно совместим с Jasmin, но гораздо более мощный. (Раскрытие: я это написал).
Antimony 2.03.2013 20:24:14

Для начала я предлагаю генерировать код Java на вашем языке.

Это сделает чтение и отладку намного проще.

2
8.03.2009 19:06:32

Спецификация виртуальной машины Java - хорошее место для начала.

См. Главу 4 «Формат файла класса» . Обновления охватывают новые атрибуты, добавленные после выпуска 2-го издания.

3
30.08.2012 09:46:37

Возможно, посмотрите пример Преона о том, как анализировать файл классов Java . Он имеет довольно полное представление байт-кода в объектной модели Java.

2
25.10.2013 08:10:34
Ссылка мертва: нет хранилища с таким именем.
GKFX 24.10.2013 16:13:25
Спасибо GKFX, исправил это.
Wilfred Springer 25.10.2013 08:10:47

Была выпущена новая версия спецификации:

Спецификация виртуальной машины Java, Java SE 7 Edition

Это новое добавление исключает главу о понятиях языка программирования Java, которая может оказаться полезной или нет. Смотрите здесь для этой главы во втором издании спецификации.

2
13.02.2013 16:02:47