[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Summary: Static C Analyzers
- To: info-mcl
- Subject: Summary: Static C Analyzers
- From: jm@hp-vcd.vcd.hp.com (John Matthews)
- Date: 7 Mar 92 00:39:50 GMT
- Newsgroups: comp.lang.lisp.mcl
- Organization: Hewlett Packard, Vancouver, WA, USA
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