Страницы

Поиск по вопросам

понедельник, 28 января 2019 г.

Компилятор javac - статический компилятор?

Цитата из книги "Java. Новое поколение разработки":
"В техническом отношении с точки зрения теории компиляции байт-код — это действительно своеобразный промежуточный язык (intermediate language), а не настоящий машинный код. Это означает, что процесс преобразования исходного кода Java в байт-код не является компиляцией в том смысле, в каком она понимается в языках C и С++. В свою очередь, javac не назовешь таким же компилятором, как gcc. В сущности, это генератор файлов классов для обработки исходного кода Java. Настоящим компилятором в экосистеме Java является динамический компилятор (JIT)".
Правильно ли я понимаю, что, в то время как JIT - динамический компилятор, javac - статический компилятор?


Ответ

Javac не является статическим компилятором. Потому, что он генерирует байт код, который уже в процессе выполнения программы будет динамически компилироваться в машинный код, или интерпретироваться
Но в java 9 появится возможность генерировать машинный код до запуска программы.

Комментариев нет:

Отправить комментарий