Interested Article - Byte Code Engineering Library
- 2020-09-13
- 1
Byte Code Engineering Library (сокр. BCEL ) — проект Apache Foundation , подпроект Jakarta , представляющий собой API для декомпиляции , изменения и повторной компиляции файлов классов Java (состоящих из байт-кодов ). Проект изначально был задуман и разработан Маркусом Дамом, а впоследствии — безвозмездно передан Apache Jakarta foundation 27 октября 2001 года . На данный момент Java-ориентирован и не поддерживает байт-коды .NET , Python и т. д.
Использование
BCEL — простая библиотека, которая разбирает Java-класс на объекты существовавших в нём конструкций (в отличие от обычных дизассемблеров, которые просто генерируют ассемблерный код). Эти объекты поддерживают операции по изменению своих байт-кодов, а за одно и генерацию новых (вставкой их в существующий код или с помощью генерации нового класса целиком). Библиотека BCEL используется в реализации следующих функций приложений:
- Компиляция , декомпиляция и обфускация байт-кодов
- Производительность и профилирование
- Например, в код могут быть введены специальные фрагменты, замеряющие производительность или получающие информацию о работе части программы.
- Внедрение новой семантики языка
- К примеру, элементы аспектно-ориентированного программирования в Java были введены путём пересборки классов с помощью BCEL
См. также
Примечания
- .
Ссылки
- — домашняя страница проекта BCEL
- — список проектов, использующих BCEL
- — сайт проекта Apache Jakarta
- 2020-09-13
- 1