Javac

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
javac
Тип

компилятор

Разработчик

Sun Microsystems

Написана на

Java

Интерфейс

командная строка

Операционная система

кроссплатформенное программное обеспечение

Аппаратная платформа

Java Virtual Machine

Последняя версия
Лицензия

GNU General Public License

Сайт

oracle.com/technetwork/java/javase/downloads/index.html

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

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