ObjectWeb ASM

редактировать
ASM
Разработчик (и) Консорциум OW2
Стабильный выпуск 9.0 / 22 сентября 2020 г. (2020-09-22)
Написано наJava
Операционная система Кросс-платформенная
Тип байт-код Инженерная библиотека
Лицензия Лицензия BSD
Веб-сайтhttp://asm.ow2.org/

Библиотека ASM является проектом Консорциума OW2. Он предоставляет простой API для декомпозиции, изменения и перекомпоновки двоичных классов Java (т. Е. байт-код ). Первоначально проект был задуман и разработан Эриком Брюнетоном. В настоящее время ASM ориентирован на Java и в настоящее время не имеет серверной части, которая предоставляет другие реализации байт-кода (например, байт-код .NET, байт-код Python и т. Д.).

Имя ASM ничего не означает: это просто ссылка на ключевое слово C asm, которое позволяет реализовать некоторые функции на языке ассемблера.

Содержание

  • 1 Использует
    • 1.1 Invokedynamic
  • 2 История выпуска
  • 3 См. Также
  • 4 Ссылки
  • 5 Внешние ссылки

Использует

ASM предоставляет простой библиотека, которая предоставляет внутренние агрегированные компоненты данного класса Java через его посетитель ориентированный API. ASM также предоставляет поверх этого API посетителя древовидный API, который представляет классы как конструкции объекта. Оба API-интерфейса могут использоваться для изменения двоичного байт-кода, а также для создания нового байт-кода (путем внедрения нового кода в существующий код или путем генерации новых классов в целом). Библиотека ASM использовалась в нескольких различных приложениях, таких как :

  • Производительность и профилирование
Инструментальные вызовы, которые фиксируют показатели производительности, могут быть введены в двоичные файлы классов Java для проверки данных о памяти / покрытии. (Например, внедрение инструментария в точках входа / выхода.)
  • Реализация семантики нового языка
Например, Groovy использует ASM для генерации своего байт-кода. Кроме того, Аспектно-ориентированные дополнения к языку Java были реализованы с использованием ASM для декомпозиции структур классов для точной идентификации, а затем снова при воссоздании класса путем введения кода, связанного с аспектами, обратно в двоичный файл. (См.: AspectWerkz )

Invokedynamic

Начиная с версии 3.2, в ASM добавлена ​​поддержка нового кода invokedynamic, который позволяет вызывать методы, полагаясь на динамические проверка типов в последних двоичных файлах JDK 7, что упрощает поддержку языков с динамической типизацией.

История выпусков

В этой таблице представлены только выпуски со значительными шагами в истории ObjectWeb ASM, кроме версий, в которых в основном исправлены ошибки и повышена производительность.

ВыпускДата выпускаОсновные моменты
2.017 мая 2005 г.Поддержка языка Java 5
3.22009-06-11поддержка нового кода invokedynamic.
4.029.10.2011Поддержка языка Java 7
5.02016-03-16Поддержка языка Java 8
6.023.09.2017Кодовая база перенесена на Gitlab. Поддержка языка Java 9
6.12011-03-11язык Java 10 поддержка
7.02018-10-27Поддержка языка Java 11
7.12019-03-03Поддержка языка Java 13
8.02020-03-28Поддержка языка Java 14

См. также

Ссылки

Внешние ссылки

Последняя правка сделана 2021-06-01 07:22:06
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте