Javac

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
javac
Тип компилятор
Разработчик Sun Microsystems
Написана на Java
Интерфейс командная строка
Операционная система кроссплатформенное программное обеспечение
Аппаратная платформа Java Virtual Machine
Лицензия GNU General Public License
Сайт oracle.com/technetwork/j…

Javac — оптимизирующий[1] компилятор языка java, включенный в состав многих Java Development Kit (JDK).

Компилятор принимает исходные коды, соответствующие спецификации Java language specification (JLS), и возвращает байт-код, соответствующий спецификации Java Virtual Machine Specification (JVMS).

Javac написан на Java. Может вызваться непосредственно из java-программ (JSR 199).

История

Javac входил в состав JDK с первой версии.

13 ноября 2006 г. корпорация Sun Microsystems сменила лицензию Java Virtual Machine (JVM) и Java Development Kit (JDK) на GPL v2.[2][3]

GNU Classpath начиная с версии 0.95 поддерживает компилирование и запуск javac при помощи GIJ и GCJ. Также поддерживается компиляция самой библиотеки Classpath, её утилит и примеров.[4]

Структура javac

Исполнение javac разбито на следующие фазы:[5]

  1. parse — лексический и синтаксический анализ, генерация абстрактного синтаксического дерева,
  2. enter — регистрация символов всех классов, определенных в программе,
  3. process annotations — обработка аннотаций,
  4. attribute — проверка типов, разрешение имен классов, свертка констант, вывод типов,
  5. flow — анализ потока управления (достижимость операций), анализ обработки исключений, проверка обращений к неинициализированным данным, проверка корректности инициализации final переменных,
  6. desugar — удаление синтаксического сахара (вложенные классы, классовые литералы, assert, foreach),
  7. generate — создание файла .class.

См. также

Примечания

  1. Special edition Using Java, 1996], ISBN 0-7897-0604-0, Chapter 3 "The javac compiler is an optimizing compiler and is the one you will usually use. "
  2. Sun opens Java (feature story) (недоступная ссылка). Дата обращения: 17 апреля 2013. Архивировано 13 мая 2008 года.
  3. Sun’s OpenJDK Hotspot page (недоступная ссылка)
  4. «This release supports compiling and running the GPL OpenJDK javac compiler[…]» GNU Classpath 0.95 Announcement (недоступная ссылка). Архивировано 18 апреля 2013 года.
  5. The Hacker’s Guide to Javac, 2008

Ссылки