Optimizing generated aspect-oriented assertion checking code for JML using program transformations: An empirical study

  • Authors:
  • Henrique RebêLo;Ricardo Lima;Gary T. Leavens;MáRcio CornéLio;Alexandre Mota;CéSar Oliveira

  • Affiliations:
  • Informatics Center, Federal University of Pernambuco, Caixa Postal 7851, 50740-540, Recife, PE, Brazil;Informatics Center, Federal University of Pernambuco, Caixa Postal 7851, 50740-540, Recife, PE, Brazil;Department of Electrical Engineering and Computer Science, University of Central Florida, 4000 Central Florida Blvd., Orlando, FL, 32816, USA;Informatics Center, Federal University of Pernambuco, Caixa Postal 7851, 50740-540, Recife, PE, Brazil;Informatics Center, Federal University of Pernambuco, Caixa Postal 7851, 50740-540, Recife, PE, Brazil;Informatics Center, Federal University of Pernambuco, Caixa Postal 7851, 50740-540, Recife, PE, Brazil

  • Venue:
  • Science of Computer Programming
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

The AspectJ JML compiler (ajmlc) explores aspect-oriented programming (AOP) mechanisms to implement JML specifications, such as pre- and postconditions, and enforce them during runtime. This compiler was created to improve source-code modularity. Some experiments were conducted to evaluate the performance of the code generated through ajmlc. Results demonstrated that the strategy of adopting AOP to implement JML specifications is very promising. However, there is still a need for optimization of the generated code's bytecode size and running time. This paper presents a catalog of transformations which represent the optimizations implemented in the new optimized version of the ajmlc compiler. We employ such transformations to reduce the bytecode size and running time of the code generated through the ajmlc compiler. Aiming at demonstrating the impact of such transformation on the code quality, we conduct an empirical study using four applications in optimized and non-optimized versions generated by ajmlc. We show that our AOP transformations provide a significant improvement, regarding bytecode size and running time.