Javac

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

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

Компилятор принимает исходные коды, соответствующие спецификации 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

Ссылки

править