Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Our <a href="http://www.semanticdesigns.com/Products/DMS/DMSToolkit.html" rel="nofollow noreferrer">DMS Software Reengineering Toolkit</a> is commercially available, general purpose machinery for parsing/analyzing/transforming source code for many languages, including C, C++, C#, Java, COBOL, ...</p> <p>It uses explicit langauge definitions (e.g., BNF) to drive parsing machinery to build ASTs directly; DMS supports multiple dialects for some languages. There are built in analyzers to support symbol table construction, control and data flow anlaysis, points-to analysis, symbolic range analysis ... </p> <p>For C, Java and COBOL, the built-in analysis machinery is tied to the language definitions so that you can use these analyzers as a foundation for a custom analysis you might want to build. C++ does have the symbol tables but isn't yet tied to the other internal analyzers, but the machinery is there. </p> <p>DMS also provides procedural and source-to-source transformations, conditioned by analysis results, on top of all of this; the modified ASTs can be prettyprinted to regenerate compilable source complete with the original comments.</p> <p>Your three questions:</p> <p>1.What static analysis API's do you use?</p> <ul> <li>DMS + the APIs I've described above.</li> <li>You can use the transformational aspect to get dynamic analysis.</li> </ul> <p>2.Why do you use it? </p> <ul> <li>Mostly to support custom tool construction. Its amazing how many different questions people have about code, and how many ways they want to reshape a large application.</li> </ul> <p>3.Name one thing you have written with it?</p> <ul> <li>B-2 Stealth Bomber JOVIAL-to-C translator (seriously, see website).</li> <li>IBM Mainframe application architecture extraction.</li> <li>Automated C++ component restructuring.</li> <li>Clone Detection.</li> <li>Test Coverage and Profilers</li> <li>Smart Differencer</li> <li>(See website for longer more detailed list)</li> </ul>
 

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