Domain: grammatech.com
Stories and comments across the archive that link to grammatech.com.
Comments · 11
-
Shameless plug for CodeSurferMy company makes a code understanding tool called CodeSurfer. It's not open source, and it's not free (though it is free for academic use).
You can browse your code, following dependences and definitions. You can also construct queries, do isolate what statements can affect a particular variable, and a bunch of other tricks based on static analysis. There's a programming interface too.
Other good ways to get your head around code (speaking as a software engineer, rather than a guy promoting his company):- I agree with whoever suggested breaking in a random spot and stepping through the code.
- Talk to the other developers, if they are around. Don't suffer in silence for the sake of doing it on your own.
- Pick a minor throwaway feature (eg every button should be blue) and modify the code to add that feature. This forces you really learn the code, but without the pressure of making a real product-worthy feature.
- I agree with whoever suggested breaking in a random spot and stepping through the code.
-
Re:Codesurfer vs "Source Insight" ?
I am not familiar with Source Insight, but CodeSurfer does have call-graph support. http://www.grammatech.com/products/codesurfer/screenshots.html . It also features a query analysis engine that allows you to run interesting queries on the data/control flow of the program. Plus the program slicing engine is useful for understanding how the program operates. The best thing would be try the trial editions for both products and see which works best
:) -
Re:Understand?
Oh yes, CodeSurfer http://www.grammatech.com/products/codesurfer/overview.html is another option. It costs $945. CodeSurfer has the capability to write fancy macros to do checks on your code...not sure how that compares to Understand's macro capabilities.
-
Codesurfer
You could have a look at CodeSurfer http://www.grammatech.com/products/codesurfer/overview.html/ which is a program slicing tool for c/c++. I found it extremely useful for analyzing programs. To make full use of it, I would recommend reading the manual in its entirety
:) -
Re:IDE for Linux, yup
Does it do everything that Understand does? Does it do everything Codesurfer does? How about DMS? CDT and Eclipse sure use large amounts of ram and cpu, but I don't see much payoff in terms of features for all that resource usage.
-
Re:FindBugs
One more in the same genre as coverity: http://www.grammatech.com/products/codesonar/over
v iew.html
Disclaimer: I have never used this tool and actually know relatively little about it. However, my current research uses other software the same company makes (CodeSurfer) and is very much tied to this company, and I have an internship with them this summer. The company was started by my adviser and his adviser, employs a couple former advisees of my adviser, etc. -
CodeSonar + other commercial tools
I work on a commercial static analysis tool called CodeSonar. It costs money, but we do offer free trials.
Our major competitors in this space are Coverity and Klocwork.
All three tools can (to some extent) infer how a program will behave at run-time, so they find more subtle bugs than tools that just look for suspicious patterns in your code. -
Re:Errr...I had some extensive conversations with the team at CodeSurfer and they think they the problem is NOT impossible, maybe more like Polynomial time.
I work at GrammaTech on CodeSurfer. I thought it might be helpful to clarify a few things:- We don't claim to solve the halting problem. None of our products will find every bug in your program--such a tool would be impossible.
- We have a bug-finding tool called CodeSonar which is designed to scan your software in something like polynomial time. It won't find all bugs, but in practice it does find lots of them, some of them very subtle.
- CodeSonar isn't classified or otherwise restricted--anyone can buy it.
- We're hiring. If you are into this kind of thing, please send us a resume
:)
-
No mention of Ada
I agree with most of the posts citing organizational and management techniques as the most fruitfull areas for improvement of software quality. But technical fixes don't require changing attitudes or otherwise fighting human nature. It seems to me, since the Sun's, IBM's and MicroSoft's of the world are spending tons of money to give us slickly integrated or widely applicable software development tools, that they would do themselves and us developers a favor to incorporate some of the oldest "lessons learned" into the tools. We have had so many "revolutionary" languages come and go that we seem to have forgotton just what array bounds checking and strict type enforcement save the average programmer from having to think about. In my current project, I am porting Ada code to C++. Yes, Ada is a language only its Mother, the DOD, could love but we shouldn't have tossed out the baby with the bath water when everyone dropped their support for it. There were vendors of quality assurance tools to be used on top of the qualitity built into the language because the customers and the developement culture all emphasized reliability of the finished product. How did we manage to so thoroughly get away from those objectives?
-
This is nothing new....
Lots of people have been doing this for years.
Check the University of Wisconsin's WiSA project. And, of course, the commercial solution
Standing on the shoulders of giants... ;) -
Code Surfer
I've never used it, but I've heard about code surfer from GrammaTech.
Is commercial software though.