[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Summary: Static C Analyzers



The following is a summary of suggestions for a tool that parses either
C or C++ into a form suitable for static analysis (Call trees, use-def
analysis, etc):

1) Take the gnu gcc compiler (version 2.0 out this week) and use the 
   front-end to generate the Intermediate Representation Language.

2) Lucid Inc. has a program that parses C functions to convert the
   definitions into a foreign-function interface file.

3) Use a general LALR-parser generator and a C or C++ grammar to create
   a customized C parser. Two such lalr-parsers were suggested:

	a) Mark Johnson's "yacc" parser (written in lisp), 
	   available at a.gp.cs.cmu.edu, in directory 
	   /afs/cs.cmu.edu/user/mkant/Public/Lisp-Utilities/
	   (You have to cd to the directory "all at once")

	b) A parser called "Zebu", at hplstl.hp.com

   The C++ grammar can be gotten from either:

	a) ics.uci.edu in ftp/pub, or

	b) mach1.mpac.syr.edu in ftp/pub/C++

   The names of the files are c++grammar2.0.tar.Z and byacc1.8.tar.Z

4) Examine the C tools "calls" (a call graph generator) and "id"
   (a symbol cross-reference system) in the comp.sources.unix 
   archives (say on uunet.uu.net)

5) There is a company called PROCASE that has a tool for 
   reverse-engineering C programs, it generates call trees etc..
   Their Dallas number is (214) 770-5199. I don't think it is 
   available as or even written in Lisp source.

Hope this is of interest...
John Matthews