Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #32955
| From | Martin Gregorie <martin@address-in-sig.invalid> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: A hypothetical compiler extension |
| Date | 2015-10-29 12:24 +0000 |
| Organization | A noiseless patient Spider |
| Message-ID | <n0t354$87u$2@dont-email.me> (permalink) |
| References | <extension-20151027221547@ram.dialup.fu-berlin.de> <n0pbf2$ld5$1@speranza.aioe.org> <n0qcpj$1e3$1@dont-email.me> <n0ro37$tnm$1@speranza.aioe.org> |
On Wed, 28 Oct 2015 20:09:09 -0400, Arne Vajhøj wrote: > On 10/28/2015 7:50 AM, Martin Gregorie wrote: >> On Tue, 27 Oct 2015 22:21:20 -0400, Arne Vajhøj wrote: >>> On 10/27/2015 5:24 PM, Stefan Ram wrote: >>>> The following is hypothetical AFAIK, but wouldn't it be nice? >>>> >>>> One calls >>>> >>>> javac -Xlint:null >>>> >>>> and then > >>>> Javac alread has path-value-analysis as it already can detect >>>> when a path of execution of a method (think of nested ifs) >>>> accesses a variable that has not been defined yet in this path. >>> >>> I don't think it would be appropriate for the compiler to complain >>> about something that very well may not be a problem due to something >>> being done in the calling code. > >> There is a similar tool, 'lint' for C and has been for a very long >> time, though Its name is 'lint'. There is an enhanced version, >> 'splint', which has replaced lint on some Linux distros. It is separate >> from the compiler. The preferred approach is to run lint after the >> source has been clean compiled. ake a look at their manpages or visit >> http://splint.org/ to see what it can do. >> >> I don't see why you shouldn't write a similar program for Java if >> you're feeling keen, though much simpler programs are also useful and >> can be whipped up in no time by using awk or Perl. For instance, I have >> one, written in awk, that searches C source for insecure string >> functions, i.e. using the strcpy() function instead of strncpy(). Its >> useful for hardening older code. > > There are a ton of tools available for Java that check for potential > unsafe constructs and violations of coding convention. > > Not sure if any of them checks for what Stefan want though. > If Stefan feels like checking out Coco/R, writing such a tool could be the perfect project. CoCo/R is a 'compiler generator'. You describe the language you need to parse and it generates source for a parser. You just add back-end code to the parser to do what you need (generate byte code, check for unsafe constructs, etc). There is a Java version available which I used to parse C source in order to document preprocessor macros and function declarations (both K&R and ANSI). I found that to be fairly straight forward. http://www.ssw.uni-linz.ac.at/Research/Projects/Coco/ -- martin@ | Martin Gregorie gregorie. | Essex, UK org |
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: A hypothetical compiler extension Arne Vajhøj <arne@vajhoej.dk> - 2015-10-27 22:21 -0400
Re: A hypothetical compiler extension Martin Gregorie <martin@address-in-sig.invalid> - 2015-10-28 11:50 +0000
Re: A hypothetical compiler extension Arne Vajhøj <arne@vajhoej.dk> - 2015-10-28 20:09 -0400
Re: A hypothetical compiler extension Martin Gregorie <martin@address-in-sig.invalid> - 2015-10-29 12:24 +0000
Re: A hypothetical compiler extension Jeff Higgins <jeff@invalid.invalid> - 2015-10-29 18:36 -0400
csiph-web