Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>If you want to reason about the source code after aspects have been woven into the code, you should weave the aspects into the source code rather than the binary code.</p> <p>Many aspect weavers do binary-code weaving because they don't have access to the information (symbol table, names, types, expression types,...) produced by a compiler front end. So, the hack is, use the virtual machine code produced by the compiler (this stunt basically only works for VM instruction sets like the .net IL and java class codes) which often is easy to decode (nice, regular instruction set) decorated with symbol table information.</p> <p>But if you can't reason about the binary results of such a weaving process, then you can't be sure than the woven program isn't buggy, which is the point of the OP's original question: "How do I run SCA tools on the (effective) woven source?".</p> <p>You can fix this two ways:</p> <ul> <li>Get the community to write SCA tools that process the byte codes rather than the source. This might be hard because the source code may contain information lost in the compilation process.</li> <li><strong>A better idea:</strong> Get the aspect community to write aspect weavers that operate on source code, and produce source code. This might be hard because getting full language front ends is difficult.</li> </ul> <p>I can't help you make the community make a choice. </p> <p>I can offer strong encouragement to help the community choose the second way: our <a href="http://www.semanticdesigns.com/Products/DMS/DMSToolkit.html" rel="nofollow noreferrer">DMS Software Reengineering Toolkit</a>. This is a program transformation system that carries out directives of the form of, "if you see <em>this</em>, replace it by <em>that</em>" but honoring the syntax and the semantics of the language by actually applying such changes to compiler data structures produced by full language front ends. (<em>This is the software engineering version of equational substitution in mathematics</em>). The changed data structures can be re-exported as compilable source text, complete with comments.</p> <p>If you understand what transformations can do in general, you can see that <a href="http://www.semdesigns.com/products/DMS/AspectOrientedProgramming.html" rel="nofollow noreferrer">aspect weavers are a special case of program transformation systems</a>. So, it is easy to implement aspect weavers using DMS, and the results are source code, which means you can apply the source-code analysis tools.</p> <p>I doubt this actually solves the OPs problem of analyzing Roo-generated code in the short term :-{ </p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload