[eros-arch] Static checking
David Wagner
eros-arch@mail.eros-os.org
Mon, 1 Mar 2004 23:11:07 -0800 (PST)
In article <200403020649100920.0022F5DB@smtp.village.it> you write:
>C-Breeze
>http://www.cs.utexas.edu/users/c-breeze/
>opinions ?
I've never tried it. Does anyone know whether it will parse real
C programs?
I've found lots of "C parsers", but in my experience, many of them have
trouble parsing a large suite of real programs reliably. Real programs
do lots of crazy things. Looking at the Known Bugs for C-Breeze has
me a little concerned, as well as the comment "C compilers built using
C-Breeze can only compile C89 code".
Underestimating the importance of this issue can easily lead to a
static analysis tool that can analyze toy examples just great but that
falls apart on large, complex programs. (I know -- I've been guilty
of building one or two tools like this, myself.) Hence, you have to be
really careful.
FYI, here are a few more C parsers and front-ends, if you're
interested in this topic:
http://www.cs.berkeley.edu/~smcpeak/elkhound/sources/elsa/index.html
http://manju.cs.berkeley.edu/cil/
http://www.cs.berkeley.edu/~dgay/rc/
http://www.smlnj.org/doc/ckit/
These seem to be reasonably mature, though not entirely without warts.