Javac

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
javac
Тип компилятор
Разработчик Sun Microsystems
Написана на Java
Интерфейс командная строка
Операционная система кроссплатформенное программное обеспечение
Аппаратная платформа Java Virtual Machine
Читаемые форматы файлов Java
Создаваемые форматы файлов Джава class-файл[d]
Лицензия 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 Mahine (JVM) и Java Development Kit (JDK) на GPL v2.[2][3]

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

Структура javac[править | править код]

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

  1. parse — лексический и синтаксический анализ, генерация AST,
  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)
  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

Ссылки[править | править код]