Optimizing JML Features Compilation in Ajmlc Using Aspect-Oriented Refactorings Henrique Rebˆ elo, Ricardo Lima, M´ arcio Corn´ elio, Gary T. Leavens, Alexandre Mota, C´ esar Oliveira CS-TR-09-05 April 2009 Keywords: ajmlc, runtime assertion checking, optimization, refactoring, seman- tics preservation, laws of programming, formal methods, formal interface speci- fication, programming by contract, aspect-oriented programming, JML language, Java language, AspectJ language 2009 CR Categories: D.2.1 [Software Engineering] Requirements/ Specifica- tions — languages, tools, JML; D.2.2 [Software Engineering] Design Tools and Techniques — computer-aided software engineering (CASE); D.2.4 [Software En- gineering] Software/Program Verification — Assertion checkers, class invariants, formal methods, programming by contract, reliability, tools, validation, JML; D.2.5 [Software Engineering] Testing and Debugging — Debugging aids, design, testing tools, theory; F.3.1 [Logics and Meanings of Programs] Specifying and Verifying and Reasoning about Programs — Assertions, invariants, pre- and post- conditions, specification techniques. This is a preprint of a paper that will appear in the proceedings of the XIII Brazilian Symposium on Programming Languages (SBLP 2009), Gramado-RS, Brazil, August 19-21. School of Electrical Engineering and Computer Science University of Central Florida 4000 Central Florida Blvd. Orlando, FL 32816-2362 USA