K-Lint Beta 1.0

K-Lint is a WWW-based tool for parsing and analyzing K programs.

K-Lint translates K verbs (symbols) to names and detects "errors" that the K compiler may not catch.

K-Lint checks a K program for the following "errors" -

1. Use of a variable that was not previously assigned a value.

2. Use of a variable that was initially assigned a value in a conditional (if, while or : operator)

3. A variable that has been assigned a value that was not subsequently used in the program

The URL of K-Lint is http://www.cs.nyu.edu/~waldman/klint.html

A K program can be entered into the textbox or can be read from disk. Selecting the "Browse" button will open up a file selection dialog box from which the K file can be selected.

Once the K program has been entered or read from disk, just press the corresponding "K-Lint" button. This will generate a frames-based web page that contains the submitted K program in the middle frame and the "error" messages (if any) in the bottom frame.

The top frame will display the name of the verb that the mouse cursor is currently on. This information can also be viewed by clicking on the verb. If the verb name does not display in the middle frame please report this to me along with the name and version of your browser.

K-Lint does not recover from most parse errors. If a statement contains a parse error it may not appear in the program frame or an "Internal Server Error" may occur. Better error recovery is planned for K-Lint.

K-Lint does not handle all K Name Space Directory references correctly. This may cause "Variable Not Used" messages to be generated for some variables. This will be corrected in a later release of K-Lint.

Please send any source code requests, comments or bug reports to Marc Waldman(waldman@cs.nyu.edu)

If K-Lint generates an "Internal Server Error" or other error please include the program that caused the error (if possible).

K-Lint was built with Java and the ANTLR Parser generator. The K-Lint CGI script was written in Python

Marc Waldman
NYU CS Dept.

joint work with

Professor Dennis Shasha
NYU CS Dept.