Jump to content

ОбъектВеб ASM

АСМ
Оригинальный автор(ы) Эрик Брюнетон
Разработчик(и) ОВ2
Первоначальный выпуск 2002 год ; 22 года назад ( 2002 )
Стабильная версия
9.3 / 3 апреля 2022 г .; 2 года назад ( 03.04.2022 )
Репозиторий
Написано в Ява
Операционная система Кросс-платформенный
Тип байт-кода Инженерная библиотека
Лицензия Лицензия БСД
Веб-сайт Асм .ow2 .что Отредактируйте это в Викиданных

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

Название «ASM» не является аббревиатурой: это просто ссылка на ключевое слово asm языка C, которое позволяет реализовать некоторые функции на языке ассемблера. [1]

Использование

[ редактировать ]

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

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

Вызватьдинамический

[ редактировать ]

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

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

[ редактировать ]

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

Выпускать Дата выпуска Основные моменты
2.0 2005-05-17 Поддержка языка Java 5
3.2 2009-06-11 поддержка нового invokedynamic код. [2]
4.0 2011-10-29 Поддержка языка Java 7
5.0 2014-03-16 Поддержка языка Java 8
6.0 2017-09-23 Кодовая база перенесена на Gitlab
Поддержка языка Java 9
6.1 2018-03-11 Поддержка языка Java 10
7.0 2018-10-27 Поддержка языка Java 11
7.1 2019-03-03 Поддержка языка Java 13
8.0 2020-03-28 Поддержка языка Java 14
9.0 2020-09-22 Поддержка языка Java 16.
9.1 2021-02-06 Поддержка языка Java 17
9.2 2021-06-20 Поддержка языка Java 18
9.3 2022-04-03 Поддержка языка Java 19, новая спецификация Maven

См. также

[ редактировать ]
  1. ^ Брюнетон, Эрик; Лангле, Ромен; Купай, Тьерри (2002). «ASM: инструмент манипулирования кодом для реализации адаптируемых систем» . FranceTélécom R&D, DTL/ASR. CiteSeerX   10.1.1.117.5769 . Проверено 23 августа 2023 г.
  2. ^ Перейти обратно: а б Форакс, Реми (11 июня 2009 г.). «ASM теперь поддерживает ignoredynamic» . Проверено 14 ноября 2009 г.
  3. ^ «11 июня 2009 г.: ASM 3.2 (тег cvs: ASM_3_2)» . ОбъектВеб. 11 июня 2009 г. Проверено 14 ноября 2009 г.
  4. ^ «Версии» . ОбъектВеб . Проверено 6 июня 2020 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 1300cd75f93ea0e4aada8f267b1421e7__1712016240
URL1:https://arc.ask3.ru/arc/aa/13/e7/1300cd75f93ea0e4aada8f267b1421e7.html
Заголовок, (Title) документа по адресу, URL1:
ObjectWeb ASM - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)