ObjectWeb ASM - ObjectWeb ASM
Vývojáři | Konsorcium OW2 |
---|---|
Stabilní uvolnění | 9.0 / 22. září 2020 |
Napsáno | Jáva |
Operační systém | Cross-platform |
Typ | bytecode Technická knihovna |
Licence | Licence BSD |
webová stránka | http://asm.ow2.org/ |
The ASM knihovna je projektem Konsorcium OW2. Poskytuje jednoduché rozhraní API pro rozklad, úpravu a opětovné složení binárních tříd Java (tj. bytecode ). Projekt původně vytvořil a vytvořil Eric Bruneton. ASM je v současné době zaměřen na Javu a v současné době nemá backend, který vystavuje další implementace bytecode (například .SÍŤ bytecode, Krajta bytecode atd.).
Název ASM nic neznamená: je to jen odkaz na asm klíčové slovo C, které umožňuje implementaci některých funkcí v assembleru.[1]
Použití
ASM poskytuje jednoduchou knihovnu, která prostřednictvím své zpřístupňuje vnitřní agregační komponenty dané třídy Java návštěvník orientované API. ASM také poskytuje nad tímto API pro návštěvníky stromové API, které představuje třídy jako konstrukty objektů. Obě API lze použít k úpravě binárního bajtového kódu i ke generování nového bajtkódu (prostřednictvím vložení nového kódu do stávajícího kódu nebo prostřednictvím generování nových tříd dohromady.) Knihovna ASM byla použita v několika různých aplikacích, například :
- Výkon a profilování
- Volání přístrojů, která zachycují metriky výkonu, lze vložit do binárních souborů třídy Java, aby se prozkoumala data paměti / pokrytí. (Například vstřikování přístrojů do vstupních / výstupních bodů.)
- Implementace sémantiky nového jazyka
- Například, Báječný používá ASM ke generování svého bytecode. Taky, Aspektově orientovaný doplňky jazyka Java byly implementovány pomocí ASM k rozložení třídních struktur pro identifikaci bodového řezu a poté znovu při rekonstituci třídy vložením kódu souvisejícího s aspektem zpět do binárního souboru. (Vidět: AspectWerkz )
Invokedynamic
Od verze 3.2, ASM přidal podporu pro nový invokedynamic
kód, který umožňuje vyvolání metody na základě dynamiky kontrola typu nejpozději JDK 7 binární soubory, což usnadňuje podporu pro dynamicky psané jazyky.[2][3]
Historie vydání
Tato tabulka představuje pouze vydání s významnými kroky v historii ObjectWeb ASM, kromě verzí, které hlavně opravovaly chyby a zlepšovaly výkon.[4]
Uvolnění | Datum vydání | Hlavní body |
---|---|---|
2.0 | 2005-05-17 | Podpora jazyka Java 5 |
3.2 | 2009-06-11 | podpora nového invokedynamic kód.[2] |
4.0 | 2011-10-29 | Podpora jazyka Java 7 |
5.0 | 2014-03-16 | Podpora jazyka Java 8 |
6.0 | 2017-09-23 | Codebase migroval do Gitlabu Podpora jazyka Java 9 |
6.1 | 2018-03-11 | Podpora jazyka Java 10 |
7.0 | 2018-10-27 | Podpora jazyka Java 11 |
7.1 | 2019-03-03 | Podpora jazyka Java 13 |
8.0 | 2020-03-28 | Podpora jazyka Java 14 |
Viz také
Reference
- ^ Bruneton, Éric; Lenglet, Romain; Coupaye, Thierry (2002). „ASM: nástroj pro manipulaci s kódy k implementaci adaptabilních systémů“. Francie Télécom R & D, DTL / ASR. Citováno 2020-06-07.
- ^ A b Forax, Remi (11.6.2009). "ASM nyní podporuje invokedynamic". Citováno 2009-11-14.
- ^ „11. června 2009: ASM 3.2 (značka cvs: ASM_3_2)“. ObjectWeb. 11. 06. 2009. Citováno 2009-11-14.
- ^ „Verze“. ObjectWeb. Citováno 2020-06-06.
externí odkazy
- Knihovna ASM - Domovská stránka projektu ASM.
- Výpis projektů založených na ASM - Seznam projektů, které využívají knihovnu ASM.
- OW2 Home - Domovská stránka konsorcia OW2.
- AspectWerkz - Domovská stránka projektu AspectWerkz. (Jeden z vysoce viditelných projektů, který využívá ASM.)
- Bytecode Visualizer - bezplatný modul Eclipse pro prohlížení a ladění bytového kódu Java, který využívá knihovnu ASM