Страницы

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

суббота, 4 января 2020 г.

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

#java #jit #javac


Цитата из книги "Java. Новое поколение разработки":


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


Правильно ли я понимаю, что, в то время как JIT - динамический компилятор, javac
- статический компилятор?
    


Ответы

Ответ 1



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

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

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