오브젝트웹 ASM
ObjectWeb ASM| 원본 작성자 | 에릭 브런턴 |
|---|---|
| 개발자 | OW2 |
| 초기 릴리즈 | 2002년;전( |
| 안정적 해제 | 9.1 / 2021년 2월 6일; 전 |
| 리포지토리 | |
| 기록 위치 | 자바 |
| 운영 체제 | 크로스 플랫폼 |
| 유형 | 바이트코드 엔지니어링 라이브러리 |
| 면허증 | BSD 라이선스 |
| 웹사이트 | asm |
ASM 라이브러리는 OW2 컨소시엄의 프로젝트다.바이너리 Java 클래스(즉, 바이트코드)를 분해, 수정, 재구성할 수 있는 간단한 API를 제공한다.이 프로젝트는 원래 에릭 브루니톤에 의해 구상되고 개발되었다.ASM은 현재 자바 중심이며, 현재 다른 바이트 코드 구현(예: )을 노출하는 백엔드를 가지고 있지 않다.NET 바이트코드, Python 바이트코드 등).
'ASM'이라는 명칭은 약어가 아니라, 일부 기능이 조립 언어로 구현될 수 있도록 하는 C의 asm 키워드를 가리키는 것일 뿐이다.[1]
사용하다
ASM은 방문자 지향 API를 통해 주어진 자바 클래스의 내부 집계 구성요소를 노출시키는 간단한 라이브러리를 제공한다.ASM은 또한 이 방문자 API 위에 객체 구성으로 클래스를 나타내는 트리 API를 제공한다.두 API는 바이너리 바이트 코드를 수정하는 것뿐만 아니라 새로운 바이트 코드 생성에 사용될 수 있다(기존 코드에 새로운 코드를 주입하거나 새로운 클래스를 완전히 생성함).ASM 라이브러리는 다음과 같은 여러 가지 다양한 애플리케이션에서 사용되어 왔다.
- 성능 및 프로파일링
- 성능 지표를 캡처하는 계측 호출을 Java 클래스 이진 파일에 주입하여 메모리/커버리지 데이터를 검사할 수 있다(예: 입력/출구 지점에 계측기 주입).
- 신언어 의미론 구현
- 예를 들어 그루비는 ASM을 사용하여 바이트코드를 생성한다.또한, 자바 언어에 대한 측면 지향적 추가는 ASM을 사용하여 점 절단 식별을 위한 클래스 구조를 분해한 다음, 다시 측면 관련 코드를 바이너리에 다시 주입하여 클래스를 재구성할 때 구현되었다.(참조: SideWerkz)
인보키다이나믹
버전 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 언어 지원 |
참고 항목
참조
- ^ Bruneton, Éric; Lenglet, Romain; Coupaye, Thierry (2002). "ASM: a code manipulation tool to implement adaptable systems". FranceTélécom R&D,DTL/ASR. Retrieved 2020-06-07.
- ^ a b Forax, Remi (2009-06-11). "ASM now supports invokedynamic". Retrieved 2009-11-14.
- ^ "11 June 2009: ASM 3.2 (cvs-tag: ASM_3_2)". ObjectWeb. 2009-06-11. Retrieved 2009-11-14.
- ^ "Versions". ObjectWeb. Retrieved 2020-06-06.
외부 링크
- 공식 웹사이트

- OW2 홈 - OW2 컨소시엄 홈 페이지
- SideWerkz - The SideWerkz Project 홈 페이지(ASM을 활용하는 높은 가시성 프로젝트 중 하나)
- Bytecode Visualizer - ASM 라이브러리를 사용하는 Java 바이트 코드를 보고 디버깅하기 위한 무료 Eclipse 플러그인