Существует ли какой-либо инструмент для анализа кода Java сверху вниз (до генерации ассемблера)?
Не в той степени, в которой вы хотите, AFAIK.Просто нет необходимости в таком инструменте, чтобы оправдать усилия по его созданию.
Теоретически вы можете создать и запустить JVM, используя отладчик уровня исходного кода C / C ++.Однако я подозреваю, что вам понадобится много времени, чтобы добраться до того момента, когда вы сможете увидеть, что происходит, когда выполняется Java-оператор.
Другой альтернативой является выявление JVM.параметры, которые сообщают JIT-компилятору выгружать исходный код, который он генерирует, а затем разбирать собственный код.Но это говорит лишь о небольшой части ответа.
В любом случае, я не понимаю, как вы собираетесь многому научиться, что особенно важно ... если вы не планируетереализовать свои собственные инструменты генерации кода Java.И все, что вы изучаете, может быть эфемерным;то есть устарел, когда появится Java 7.
FOLLOWUP
Для того, что вы пытаетесь сделать (исследуя эволюцию "виртуальной машины HLL от паскальной виртуальной машиныв JVM. ") вы, вероятно, тратите свое время, копаясь во внутренностях JVM.Вы получите лучшую картину и быстрее, найдя и читая научные статьи, статьи и блоги разработчиков на эту тему.(Обратитесь к своему руководителю.) Если вы обнаружите конкретные моменты, которые недостаточно освещены в литературе ... МОЖЕТ быть, стоит погрузиться в реализацию.Но в этот момент у вас будет лучшее представление о том, что вы должны искать.
Поверьте мне ... Я сам делал такие вещи.