[JSR308] Can we agree on our goals?

Daniel Kogan daniel.kogan at us.ibm.com
Tue Feb 6 10:09:00 EST 2007

Hi all,

I would like to introduce myself to this list. I'm working on Static
Analysis Tooling
in IBM and I appreciate the importance of providing annotations for aid and
precision in Static Analysis.

After going though the last week's emails to get up to speed I have noticed
a healthy disagreement between
folks on this list about whether to provide annotations in every possible
place or to choosing specific programming construct
(declarations, loops, statements, etc. )

Each discussion of semantics in this bottom-up approach stirs up more
disagreement. I would like
to propose a top-to-bottom approach, under which the person who proposes
the annotation's semantics in corresponding
construct attempts to tie it to the particular tool. For example, @NonNull
and @ThreadSafe and other annotations
like that from JSR305 are used in tools such as FindBugs, CodeReview and

Shallow Analysis Rules from aforementioned tools and others can ( and do )
take advantage of boundary checking,
thus making the use of array annotations. There are Static Analysis Rules
that attempt to check the loops boundaries, so
loop annotations are handy. Some tools take advantage of checking pre- and
post-conditions for about any statement in the program,
in which case maybe we should propose "ANY CONSTRUCT" annotation. However
people who are most familiar with such tools might be
in a better position to suggest the benefits of providing annotation for
that tool.

I think that the Tool Approach might be a good filter to run each proposal
through to see if it yields a specific benefit.
If there is a pressure to reduce or widen the scope of this JSR, we can
always apply other filters like number of tools
that can benefit from it.

Please let me know if such approach was already implemented and I got
confused in myriad of emails.


Dan Kogan
Architect & Development Manager
IBM Rational
daniel.kogan at us.ibm.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.csail.mit.edu/pipermail/jsr308/attachments/20070206/1b601e95/attachment.htm

More information about the JSR308 mailing list