Static analysis tool customization for any language
We are using a Tool in our project. This tool has its own language which is similar to Java. I am looking for a sta开发者_如何学编程tic analysis tool which can be applied to the new language. Are there any static analysis tools which can be customized to any languages? or Is there any document or any reference on how to develop the static analysis tool for our own languages?
Thanks.
Depending on what you really want, Rascal may help:
Rascal is a domain specific language for source code analysis and manipulation a.k.a. meta-programming.
The DMS Software Reengineering Toolkit is an infrastructure for building program analysis tools, both static and dynamic. DMS also has a large number of front end for widely uses languages and their dialects (C, C++, Java, C#, COBOL, Fortran, ...)
If your langauge is a lot like Java, you'd likely be able to easily build a dialect of the existing Java front end that covered your language. From that point you could build a static analysis tool of your choice.
Static analysis is a pretty broad topic. In general, to do it you need to know how information flows in your program: control flow, data flow, pointer anlaysis, call graphs, etc. DMS provides infrastructure for implementing all that; again, you may be able to modify the implementation for Java.
精彩评论