Byte Code Engineering Library

Byte Code Engineering Library

Infobox Software
name = Jakarta BCEL



caption =
developer = Apache Software Foundation
latest release version = 5.2
latest release date = release date|2006|06|06
latest preview version =
latest preview date =
operating system = Cross-platform
programming language = Java
genre = bytecode Engineering Library
license = Apache License 2.0
website = http://jakarta.apache.org/bcel/
The Byte Code Engineering Library (BCEL) is a project sponsored by the Apache Foundation under their Jakarta charter to provide a simple API for decomposing, modifying, and recomposing binary Java classes (I.e. bytecode). The project was originally conceived and developed by Markus Dahm prior to officially being donated to the Apache Jakarta foundation on 27 October 2001. BCEL is Java-centric at present, and does not currently have a backend that exposes other bytecode implementations (such as .NET bytecode, Python bytecode, etc.).

Uses

BCEL provides a simple library that exposes the internal aggregate components of a given Java class through its API as object constructs (as opposed to the disassembly of the lower-level opcodes). These objects also expose operations for modifying the binary bytecode, as well as generating new bytecode (via injection of new code into the existing code, or through generation of new classes altogether.) The BCEL library has been used in several diverse applications, such as:
*Java Bytecode Decompiling, Obfuscation, and Refactoring
*Performance and Profiling:Instrumentation calls that capture performance meterics can be injected into Java class binaries to examine memory/coverage data. (For example, injecting instrumentation at entry/exit points.)
*Implementation of New Language Semantics:For example, Aspect-Oriented additions to the Java language have been implemented by using BCEL to decompose class structures for point-cut identification, and then again when reconstituting the class by injecting aspect-related code back into the binary. (See: AspectJ)

ee also

*ObjectWeb ASM
*Javassist

External links

* [http://jakarta.apache.org/bcel/index.html Jakarta ByteCode Engineering Library] - The BCEL Project Home Page.
* [http://jakarta.apache.org/bcel/projects.html BCEL-Based Project Listing] - A listing of projects that make use of the BCEL Library.
* [http://jakarta.apache.org/ Apache Jakarta Home] - The Apache Jakarta Home Page.
* [http://aspectj.org/ AspectJ] - The AspectJ Project Home Page. (One of the high-visibility projects that makes use of BCEL.)


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Byte Code Engineering Library — Jakarta BCEL Тип Библиотека модификации байт кодов Разработчик Apache Software Foundation Написана на Java Операционная система Кроссплатформенное программное обеспечение Последняя версия 5.2 (6 июня 2 …   Википедия

  • Self-modifying code — In computer science, self modifying code is code that alters its own instructions, intentionally or otherwise, while it is executing.Self modifying code is quite straightforward to write when using assembly language (taking into account the CPU… …   Wikipedia

  • ObjectWeb ASM — Developer(s) OW2 Consortium Stable release 4.0 / October 29, 2011; 19 days ago (2011 10 29) Written in Java …   Wikipedia

  • Bytecode — is a term which has been used to denote various forms of instruction sets designed for efficient execution by a software interpreter as well as being suitable for further compilation into machine code. Since instructions are processed by software …   Wikipedia

  • Javassist — infobox software developer = Shigeru Chiba released = latest release version = 3.8.0GA latest release date = release date|2008|01|21 programming language = Java operating system = Cross platform genre = bytecode Engineering Library license = dual …   Wikipedia

  • Object code optimizer — A binary optimizer takes the existing output from a compiler and produces a better execution file with the same functionality. An object code optimizer, sometimes also known as a post pass optimizer or, for small sections of code, peephole… …   Wikipedia

  • Java Et Logiciel Libre — Java est libre et open source (depuis le 13 novembre 2006 voir plus loin), et sa licence à permis l éclosion d un grand nombre d outils libres dans les domaines les plus variés. Sommaire 1 Discussion sur la licence de Java 2 Licence… …   Wikipédia en Français

  • Java et logiciel libre — Java est libre et open source (depuis le 13 novembre 2006 voir plus loin), et sa licence à permis l éclosion d un grand nombre d outils libres dans les domaines les plus variés. Sommaire 1 Discussion sur la licence de Java 2 Licence… …   Wikipédia en Français

  • Bytecode Java — Le bytecode Java est l ensemble des instructions exécutables par une machine virtuelle java. Par extension, il désigne un flux d octets binaire au format d une classe java. Ce flux est habituellement le résultat de la compilation d un code source …   Wikipédia en Français

  • Apache BCEL — BCEL (Byte Code Engineering Library) est une bibliothèque Java de manipulation et d analyse du bytecode Java. BCEL est un sous projet d Apache Jakarta publié sous licence Apache par la fondation Apache. BCEL permet d analyser, créer, et manipuler …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”