Version 46 of Static syntax analysis

Updated 2007-12-11 18:09:11 by LV

This is a sub-category of Category Debugging.

Static syntax analysis is the process of looking at a text file and attempting to identify errors, warnings, etc. from the text without executing the code. This is tricky to do in-depth because in an interpretive environment, programmers often make use of dynamic techniques for code generation, etc. These dynamic code fragments typically won't be evaluated during a static syntax sweep. Another short-coming, at least as far as procheck and frink go, is that they operate only on the source code specified on the command line. This means that calls to autoloaded or sourced commands are treated as unknowns, unless the file in which they are defined was specified before the invocation.

A C programmer will be familar with a program called lint; this program provides static syntax analysis for C.


Any tool doing SSA and having its own page should have a link to this page on its page, like for normal categories. That way clicking on the title of this page will then deliver a list of tools in this sub-category.

The list of options below is only for external references we cannot categorize directly, and unnamed tools which are part of greater system. The moment such tools get their own page here they will be removed from the list below and can be reached through the title of this page.

  • Frink has syntax checking and style suggestion for static analysis.
  • XotclIDE has a syntax checker for Tcl and XOTcl code.
  • TDK has a program called tclchecker that does static syntax checking.
  • Nagelfar is an extensible syntax checker.
  • Sugar is a macro system that can be used as a programmable SSA tool.
  • SoftGuard [L1 ] appears to do at least some sorts of SSA [Does SoftGuard deserve its own page in the Wiki? I think so. Anyone familar with it? The web page mentions sgxCP profiling, sgxCT tracing, sgxDbg procedure debugging, sgxRSM resource standard metrics, and sgxTVC variable consistency testing]
  • Andreas Leitgeb's bracecheck [L2 ] is a "mostly heuristic script ... which compares bracing with indentation ..."
  • See a page by Cameron Laird for more [L3 ].

[ Give examples of use. ]

See also


Recently, on comp.lang.tcl, Peter Martin recommended: Tools for souce code comprehension may also be of interest. An annotated list is available at: http://grok2.tripod.com/code_comprehension.html

Tools for TCL include:

Also mentioned here was:

but since it's based on cscope [L4 ] it is only meant for C and can be used for C++ and Java. It is coded in Tcl though.


AM (18 august 2007) Here's an idea to check such diverse "sublanguages" as the arithmetic and regular expressions in Tcl: Statically verifying arithmetic and regular expressions


logiscope c rulechecker