[Openmcl-devel] Static Program Analysis

Brent Fulgham bfulg at pacbell.net
Thu Jan 11 13:21:02 PST 2007


I was reading that the Common Lisp standard supports various type declarations that may be used by the compiler to perform some optimizations.  I also know I've seen various messages from the OpenMCL compiler that it performs some type of analysis, since it identifies unreferenced variables, undeclared functions, etc.

I'm curious if any tools exist in Common Lisp (or perhaps are already part of the compiler) that perform static analysis, along the lines of the Erlang Dialyzer (http://www.it.uu.se/research/group/hipe/dialyzer/) or even DrScheme's MrSpidey (http://www.cs.brown.edu/~sk/Publications/Papers/Published/ffkwf-mrspidey/).

These tools can identify cases where a user attempts to execute non-functions, perform math on non-numbers, etc.

The only thing a Google search turned up for me was an ancient (circa mid-80's) reference to an internal HP project called "MicroScope".  I don't see much else that is more recent.  The concensus on the #lisp IRC channel was that some static analysis is done in SBCL/CMUCL, but no one knew of any external tools.

Thanks,

-Brent






More information about the Openmcl-devel mailing list