2014-11-26 3 views
3

Иногда я вижу буквы «asm» в банке библиотеки файлов имен.Что такое стандарт asm?

Например, в библиотеке фреймов пакетов.

SpringFramework : org.springframework.asm-x.y.z.M(a).jar 
Eclipse Link  : org.eclipse.persistence.asm.jar 

Asm, что это значит?

+0

[AMS гид] (http://download.forge.objectweb.org/asm/asm4-guide.pdf) – iCrazybest

+0

[AMS Home Page] (HTTP: // ASM. ow2.org/) – iCrazybest

+0

Целью библиотеки ASM является создание, преобразование и анализ скомпилированных классов Java, представленных в виде массивов байтов (поскольку они хранятся на диске и загружаются в виртуальную машину Java) Src- [ASM 4.0 A Java (http://download.forge.objectweb.org/asm/asm4-guide.pdf). – iCrazybest

ответ

0

ASM просто означает ASMifier инструмент

+0

Я пробовал поиск по ключевым словам [класс ASMifier] (https://www.google.com.vn/?gfe_rd = cr & ei = wKJ1VJPsOOSK8QeBjoGAAg & gws_rd = ssl # q = класс ASMifier +), но больше не связанных результатов. – iCrazybest

+0

__asm__ в C связано с Assembly, ASM хотя и не имеет к этому отношения. Но это обычно означает сборку. –

0

Скорее всего, ссылка на Ассамблею (Language), так как если мы считаем байткод быть машинным кодом Java, а затем библиотека, как это было бы несколько похожа на компилятор Asm в мире x86 (то есть позволяет проще писать машину/байт-код).

2

Обе библиотеки, которые вы упомянули, являются копиями ASM library, которые обеспечивают возможности управления байт-кодом низкого уровня (ASM -> сборка).

Spring и EclipseLink изменяют имена пакетов ASM и переупаковывают их для внутреннего использования. Это делается для того, чтобы избежать конфликтов, если пользователь этих библиотек хочет использовать свою собственную версию ASM. Имея переименованные пакеты, обе версии могут успешно сосуществовать. JDK делает это также - вы можете видеть, что jdk.internal.org.objectweb.asm.util.ASMifier, например, является частью JDK. Префикс 'jdk.internal' должен избегать конфликтов с другими версиями пользователей ASM, которые, возможно, захотят использовать.

1

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

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

Источник: 1.2.1. Scope - footnote

Смежные вопросы