Asm4 guide ASM A Java bytecode engineering library Eric Bruneton CCopyright c Eric Bruneton All rights reserved Redistribution and use in source LYX format and compiled forms LATEX PDF PostScript HTML RTF etc with or without modi ?cation are permitted pro
ASM A Java bytecode engineering library Eric Bruneton CCopyright c Eric Bruneton All rights reserved Redistribution and use in source LYX format and compiled forms LATEX PDF PostScript HTML RTF etc with or without modi ?cation are permitted provided that the following conditions are met Redistributions of source code LYX format must retain the above copyright notice this list of conditions and the following disclaimer Redistributions in compiled form converted to LATEX PDF PostScript HTML RTF and other formats must reproduce the above copyright notice this list of conditions and the following disclaimer in the documentation and or other materials provided with the distribution The name of the author may not be used to endorse or promote products derived from this documentation without speci ?c prior written permission THIS DOCUMENTATION IS PROVIDED BY THE AUTHOR ??AS IS ? AND ANY EXPRESS OR IMPLIED WARRANTIES INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT INDIRECT INCIDENTAL SPECIAL EXEMPLARY OR CONSEQUENTIAL DAMAGES INCLUDING BUT NOT LIMITED TO PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES LOSS OF USE DATA OR PROFITS OR BUSINESS INTERRUPTION HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY WHETHER IN CONTRACT STRICT LIABILITY OR TORT INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE Version September CContents Introduction Motivations Overview Scope Model Architecture Organization Acknowledgments I Core API Classes Structure Overview Internal names Type descriptors Method descriptors Interfaces and components Presentation Parsing classes Generating classes Transforming classes Removing class members Adding class members Transformation chains Tools Type TraceClassVisitor CheckClassAdapter ASMi ?er i CContents Methods Structure Execution model Bytecode instructions Examples Exception handlers Frames Interfaces and components Presentation Generating methods Transforming methods Stateless transformations Statefull transformations Tools Basic tools AnalyzerAdapter LocalVariablesSorter AdviceAdapter Metadata Generics Structure Interfaces and components Tools Annotations Structure Interfaces and components Tools Debug Structure Interfaces and components Tools Backward compatibility Introduction Backward compatibility contract An example Guidelines Basic rule ii CContents Inheritance rule II Tree API Classes Interfaces and components Presentation Generating classes Adding and removing class members Components composition Presentation Patterns Methods Interfaces and components Presentation Generating methods Transforming methods Stateless and statefull transformations Global transformations Components composition Presentation Patterns Method Analysis Presentation Data ow analyses Control ow analyses Interfaces and components Basic data ow analysis Basic data ow veri ?er Simple data ow veri ?er User de ?ned data ow analysis Control ow analysis Metadata Generics Annotations iii CContents Debug Backward compatibility Introduction Guidelines Basic rules Inheritance rules Other packages A Appendix A Bytecode instructions A Subroutines A Attributes A Guidelines A Performances Index iv C Introduction Motivations Program analysis generation and transformation are useful techniques that can be used in many situations ? Program analysis which can range from a simple syntaxic parsing to a full semantic analysis can be used to ?nd potential bugs in applications to detect unused
Documents similaires










-
29
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Aucune attribution requise- Détails
- Publié le Mai 01, 2021
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 340.3kB