Javac (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]
- parse — лексический и синтаксический анализ, генерация абстрактного синтаксического дерева,
- enter — регистрация символов всех классов, определенных в программе,
- process annotations — обработка аннотаций,
- attribute — проверка типов, разрешение имен классов, свертка констант, вывод типов,
- flow — анализ потока управления (достижимость операций), анализ обработки исключений, проверка обращений к неинициализированным данным, проверка корректности инициализации final переменных,
- desugar — удаление синтаксического сахара (вложенные классы, классовые литералы, assert, foreach),
- generate — создание файла .class.
См. также
[править | править код]Примечания
[править | править код]- ↑ 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. "
- ↑ Sun opens Java (feature story) . Дата обращения: 17 апреля 2013. Архивировано из оригинала 13 мая 2008 года.
- ↑ Sun’s OpenJDK Hotspot page (недоступная ссылка)
- ↑ «This release supports compiling and running the GPL OpenJDK javac compiler[…]» GNU Classpath 0.95 Announcement . Архивировано из оригинала 18 апреля 2013 года.
- ↑ The Hacker’s Guide to Javac, 2008
Ссылки
[править | править код]- Sun’s OpenJDK javac page
- The Java Virtual Machine Specification
- JSR 199 Java Compiler API Java Specification Request for invoking the Java compiler from a Java program
- David Erni and Adrian Kuhn, The Hacker’s Guide to Javac // University of Bern, March 2008