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

Ссылки[править | править вики-текст]