[Wasp] Static analyzer of run-time errors

"Shelekhov V.I." <vshel@iis.nsk.su>
5 Apr 2000 22:27:11 -0400

          From comp.compilers

Related articles
[Wasp] Static analyzer of run-time errors vshel@iis.nsk.su (Shelekhov V.I.) (2000-04-05)
| List of all articles for this month |
From: "Shelekhov V.I." <vshel@iis.nsk.su>
Newsgroups: comp.lang.java.programmer,comp.compilers
Date: 5 Apr 2000 22:27:11 -0400
Organization: Institute of Informatic Systems
Keywords: errors, Java, tools

    The static error checker Wasp employs powerful data flow analysis
to detect subtle run-time errors and weak points in Java programs.


    Some types of erroneous situations that Wasp is able to detect
in Java programs are listed below:
      - usage of an uninitialized variable
      - null pointer exception
      - assignment of a variable whose value is never used
      - impermissible cast of variable value of reference type
      - unreachable branches in the if and switch statements and
                in conditional expressions
      - unreachable catch clauses
      - method has no normal completion
      - array index is out of bounds
      - overflow (underflow) in arithmetic operators
      - division by zero
      - for or while statement repeats zero times
      - etc.


    Static error checker seems to be an exotic tool unknown for the most
of Java programmers. All known to us source code analyzers (e.g. for
the C/C++ languages) that detect run-time errors may produce only long
lists of messages of possible errors (warnings) due to weakness of
analysis. A user has to waste much time to analyse all warnings. As
a rule, such analyzers are useless and not popular.


    The analyser Wasp performs powerful data flow analysis that
recognizes obligatory relations in a program. All Wasp error messages
are produced from obligatory relations. Erroneous situations which
may be derived from possible relations are ignored by Wasp.


    In many cases, Wasp is able to determine that a certain potentially
erroneous situation is in fact a definite error. It was shown in our
scientific article that definite errors can be automatically
recognized only for obligatory relations.


    Beta version 2.10 of Wasp for Windows NT/95 may be downloaded from:


                            http://www.iis.nsk.su/wasp/


    The analyzer Wasp has been successfully applied for Modula-2 and
Oberon-2 programs during last three years. It was known as
Oberon-2/Modula-2 Static Analyzer (OSA). Wasp has proven its ability
to find subtle bugs in real programs intensively exploited some years
because Wasp detects situations of real complexity. Wasp applications
to several embedded systems written in Modula-2 were the most
successful.


    Please download beta 2.10 of Wasp for Java:


            http://www.iis.nsk.su/wasp/


    The trial version for Modula-2/Oberon-2 (Windows NT/95)
is also available.


------------------------------------------------------------------------
      Vladimir I.Shelekhov
      wasp@iis.nsk.su
      Institute of Informatics Systems
      Novosibirsk, Russia


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.