Byte Code Engineering Library (Byte Code Engineering Library)
Jakarta BCEL | |
---|---|
Тип | Библиотека модификации байт-кодов |
Разработчик | Apache Software Foundation |
Написана на | Java |
Операционная система | Кроссплатформенное программное обеспечение |
Последняя версия | 6.5.0[1] (9 июня 2020 ) |
Репозиторий | github.com/apache/common… |
Лицензия | Apache License 2.0 |
Сайт | jakarta.apache.org/bcel/ |
Byte Code Engineering Library (сокр. BCEL) — проект Apache Foundation, подпроект Jakarta, представляющий собой API для декомпиляции, изменения и повторной компиляции файлов классов Java (состоящих из байт-кодов). Проект изначально был задуман и разработан Маркусом Дамом, а впоследствии — безвозмездно передан Apache Jakarta foundation 27 октября 2001 года. На данный момент Java-ориентирован и не поддерживает байт-коды .NET, Python и т. д.
Использование
[править | править код]BCEL — простая библиотека, которая разбирает Java-класс на объекты существовавших в нём конструкций (в отличие от обычных дизассемблеров, которые просто генерируют ассемблерный код). Эти объекты поддерживают операции по изменению своих байт-кодов, а за одно и генерацию новых (вставкой их в существующий код или с помощью генерации нового класса целиком). Библиотека BCEL используется в реализации следующих функций приложений:
- Компиляция, декомпиляция и обфускация байт-кодов
- Производительность и профилирование
- Например, в код могут быть введены специальные фрагменты, замеряющие производительность или получающие информацию о работе части программы.
- Внедрение новой семантики языка
- К примеру, элементы аспектно-ориентированного программирования в Java были введены путём пересборки классов с помощью BCEL
См. также
[править | править код]Примечания
[править | править код]Ссылки
[править | править код]- Jakarta ByteCode Engineering Library — домашняя страница проекта BCEL
- BCEL-Based Project Listing — список проектов, использующих BCEL
- Apache Jakarta Home — сайт проекта Apache Jakarta
Это заготовка статьи по информатике. Помогите Википедии, дополнив её. |