xref: /aosp_15_r20/external/apache-commons-bcel/src/site/xdoc/manual/manual.xml (revision 0c56280ab0842982c46a149f7b9eaa497e31e292)
1*0c56280aSSorin Basca<?xml version="1.0"?>
2*0c56280aSSorin Basca<!--
3*0c56280aSSorin Basca    * Licensed to the Apache Software Foundation (ASF) under one
4*0c56280aSSorin Basca    * or more contributor license agreements.  See the NOTICE file
5*0c56280aSSorin Basca    * distributed with this work for additional information
6*0c56280aSSorin Basca    * regarding copyright ownership.  The ASF licenses this file
7*0c56280aSSorin Basca    * to you under the Apache License, Version 2.0 (the
8*0c56280aSSorin Basca    * "License"); you may not use this file except in compliance
9*0c56280aSSorin Basca    * with the License.  You may obtain a copy of the License at
10*0c56280aSSorin Basca    *
11*0c56280aSSorin Basca    *   http://www.apache.org/licenses/LICENSE-2.0
12*0c56280aSSorin Basca    *
13*0c56280aSSorin Basca    * Unless required by applicable law or agreed to in writing,
14*0c56280aSSorin Basca    * software distributed under the License is distributed on an
15*0c56280aSSorin Basca    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*0c56280aSSorin Basca    * KIND, either express or implied.  See the License for the
17*0c56280aSSorin Basca    * specific language governing permissions and limitations
18*0c56280aSSorin Basca    * under the License.
19*0c56280aSSorin Basca-->
20*0c56280aSSorin Basca<document>
21*0c56280aSSorin Basca
22*0c56280aSSorin Basca  <properties>
23*0c56280aSSorin Basca    <title>Byte Code Engineering Library (BCEL)</title>
24*0c56280aSSorin Basca  </properties>
25*0c56280aSSorin Basca
26*0c56280aSSorin Basca  <body>
27*0c56280aSSorin Basca
28*0c56280aSSorin Basca  <section name="Abstract">
29*0c56280aSSorin Basca  <p>
30*0c56280aSSorin Basca    Extensions and improvements of the programming language Java and
31*0c56280aSSorin Basca    its related execution environment (Java Virtual Machine, JVM) are
32*0c56280aSSorin Basca    the subject of a large number of research projects and
33*0c56280aSSorin Basca    proposals. There are projects, for instance, to add parameterized
34*0c56280aSSorin Basca    types to Java, to implement <a
35*0c56280aSSorin Basca    href="http://www.eclipse.org/aspectj/">Aspect-Oriented Programming</a>, to
36*0c56280aSSorin Basca    perform sophisticated static analysis, and to improve the run-time
37*0c56280aSSorin Basca    performance.
38*0c56280aSSorin Basca  </p>
39*0c56280aSSorin Basca
40*0c56280aSSorin Basca  <p>
41*0c56280aSSorin Basca    Since Java classes are compiled into portable binary class files
42*0c56280aSSorin Basca    (called <em>byte code</em>), it is the most convenient and
43*0c56280aSSorin Basca    platform-independent way to implement these improvements not by
44*0c56280aSSorin Basca    writing a new compiler or changing the JVM, but by transforming
45*0c56280aSSorin Basca    the byte code. These transformations can either be performed
46*0c56280aSSorin Basca    after compile-time, or at load-time. Many programmers are doing
47*0c56280aSSorin Basca    this by implementing their own specialized byte code manipulation
48*0c56280aSSorin Basca    tools, which are, however, restricted in the range of their
49*0c56280aSSorin Basca    re-usability.
50*0c56280aSSorin Basca  </p>
51*0c56280aSSorin Basca
52*0c56280aSSorin Basca  <p>
53*0c56280aSSorin Basca    To deal with the necessary class file transformations, we
54*0c56280aSSorin Basca    introduce an API that helps developers to conveniently implement
55*0c56280aSSorin Basca    their transformations.
56*0c56280aSSorin Basca  </p>
57*0c56280aSSorin Basca  </section>
58*0c56280aSSorin Basca
59*0c56280aSSorin Basca  <section name="Table of Contents">
60*0c56280aSSorin Basca    <ul>
61*0c56280aSSorin Basca      <li><a href="introduction.html">Introduction</a></li>
62*0c56280aSSorin Basca      <li><a href="jvm.html">The Java Virtual Machine</a></li>
63*0c56280aSSorin Basca      <li><a href="bcel-api.html">The BCEL API</a></li>
64*0c56280aSSorin Basca      <li><a href="application-areas.html">Application Areas</a></li>
65*0c56280aSSorin Basca      <li><a href="appendix.html">Appendix</a></li>
66*0c56280aSSorin Basca    </ul>
67*0c56280aSSorin Basca  </section>
68*0c56280aSSorin Basca
69*0c56280aSSorin Basca</body>
70*0c56280aSSorin Basca</document>
71