Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #19471
| From | "Peter J. Holzer" <hjp-usenet2@hjp.at> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Assigning void |
| Date | 2012-10-22 10:18 +0200 |
| Organization | LUGA |
| Message-ID | <slrnk8a0b3.j97.hjp-usenet2@hrunkner.hjp.at> (permalink) |
| References | (10 earlier) <slrnk87mr1.im0.hjp-usenet2@hrunkner.hjp.at> <1uzdh4wgruckd.17j0ybexezx6n$.dlg@40tude.net> <slrnk88srt.q6b.hjp-usenet2@hrunkner.hjp.at> <10ly294mtg6oq$.8c1dav63rhaz.dlg@40tude.net> <slrnk89qp0.68n.hjp-usenet2@hrunkner.hjp.at> |
On 2012-10-22 06:43, Peter J. Holzer <hjp-usenet2@hjp.at> wrote: > On 2012-10-21 23:25, Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> wrote: >> The given example in Java is crystal clear, given that only one >> interpretation of the expression can even compile. >> >> That it's ambiguous in C without knowing of operator precedence is >> irrelevant. It's not ambiguous in Java. > > It could still be an error in Java. Java syntax is fixed. The compiler > doesn't go back and try some other other parse tree if the code violates > some semantic constraint. > > Yes, the code is unambiguous. But it is unambiguous because the syntax > is what it is. And the syntax is what it is because it was the same way > in C. If it had been different in C, it would (probably) also be > different in Java and then the code *wouldn't* compile. Here's an example which (hopefully) illustrates what I mean: C got the relative precedence of the bitwise operators and the comparison operators wrong: & has lower precedence than ==, although that's usually not what you want. That could have been fixed in Java, but it wasn't. So given three int variables a, b, and m, consider this expression: a & m == b & m This is parsed as (a & (m == b)) & m which then produces the error message The operator & is undefined for the argument type(s) int, boolean The compiler can't go back and parse it as (a & m) == (b & m) even though that would make sense and is almost certainly what the programmer meant. That's just not how Java (or any other language with a context free grammar) works. So even though one of the interpretations doesn't even compile, the one which doesn't compile is actually the correct one and the the one which would compile is wrong. hp -- _ | Peter J. Holzer | Deprecating human carelessness and |_|_) | Sysadmin WSR | ignorance has no successful track record. | | | hjp@hjp.at | __/ | http://www.hjp.at/ | -- Bill Code on asrg@irtf.org
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Assigning void Wojtek <nowhere@a.com> - 2012-10-12 22:54 -0700
Re: Assigning void Lew <lewbloch@gmail.com> - 2012-10-12 23:27 -0700
Re: Assigning void Wojtek <nowhere@a.com> - 2012-10-13 12:35 -0700
Re: Assigning void Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-10-13 09:26 -0400
Re: Assigning void Donkey Hottie <donkey@fredriksson.dy.fi> - 2012-10-13 17:06 +0300
Re: Assigning void Jeff Higgins <jeff@invalid.invalid> - 2012-10-13 10:34 -0400
Re: Assigning void Wanja Gayk <brixomatic@yahoo.com> - 2012-10-13 22:33 +0200
Re: Assigning void Jeff Higgins <jeff@invalid.invalid> - 2012-10-13 17:34 -0400
Re: Assigning void Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-10-13 17:45 -0400
Re: Assigning void Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-10-13 21:35 -0400
Re: Assigning void Wanja Gayk <brixomatic@yahoo.com> - 2012-10-16 00:16 +0200
Re: Assigning void Jeff Higgins <jeff@invalid.invalid> - 2012-10-13 11:59 -0400
Re: Assigning void glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-10-13 17:05 +0000
Re: Assigning void Jeff Higgins <jeff@invalid.invalid> - 2012-10-13 14:26 -0400
Re: Assigning void markspace <-@.> - 2012-10-13 11:51 -0700
Re: Assigning void Jeff Higgins <jeff@invalid.invalid> - 2012-10-13 15:08 -0400
Re: Assigning void Wojtek <nowhere@a.com> - 2012-10-13 12:28 -0700
Re: Assigning void markspace <-@.> - 2012-10-13 12:42 -0700
Re: Assigning void Lew <lewbloch@gmail.com> - 2012-10-13 12:54 -0700
OT - Trolling Wojtek <nowhere@a.com> - 2012-10-13 14:16 -0700
Re: OT - Trolling Jeff Higgins <jeff@invalid.invalid> - 2012-10-13 18:09 -0400
Re: OT - Trolling Gene Wirchenko <genew@ocis.net> - 2012-10-14 18:47 -0700
Re: Assigning void Martin Gregorie <martin@address-in-sig.invalid> - 2012-10-13 20:28 +0000
Re: Assigning void Wojtek <nowhere@a.com> - 2012-10-13 13:31 -0700
Re: Assigning void Joerg Meier <joergmmeier@arcor.de> - 2012-10-20 18:00 +0200
Re: Assigning void Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2012-10-20 09:56 -0700
Re: Assigning void "Peter J. Holzer" <hjp-usenet2@hjp.at> - 2012-10-21 13:24 +0200
Re: Assigning void Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2012-10-21 10:23 -0700
Re: Assigning void "Peter J. Holzer" <hjp-usenet2@hjp.at> - 2012-10-22 00:13 +0200
Re: Assigning void Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2012-10-21 16:25 -0700
Re: Assigning void "Peter J. Holzer" <hjp-usenet2@hjp.at> - 2012-10-22 08:43 +0200
Re: Assigning void "Peter J. Holzer" <hjp-usenet2@hjp.at> - 2012-10-22 10:18 +0200
Re: Assigning void Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2012-10-22 08:14 -0700
Re: Assigning void glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-10-21 19:45 +0000
Re: Assigning void "Peter J. Holzer" <hjp-usenet2@hjp.at> - 2012-10-22 00:14 +0200
Re: Assigning void Lew <lewbloch@gmail.com> - 2012-10-13 12:44 -0700
Re: Assigning void Jukka Lahtinen <jtfjdehf@hotmail.com.invalid> - 2012-10-15 14:38 +0300
Re: Assigning void Lew <lewbloch@gmail.com> - 2012-10-15 09:11 -0700
Re: Assigning void Jeff Higgins <jeff@invalid.invalid> - 2012-10-13 15:03 -0400
Re: Assigning void glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-10-13 20:21 +0000
Re: Assigning void Lew <lewbloch@gmail.com> - 2012-10-13 12:38 -0700
Re: Assigning void markspace <-@.> - 2012-10-13 12:49 -0700
Re: Assigning void Lew <lewbloch@gmail.com> - 2012-10-13 13:03 -0700
Re: Assigning void Robert Klemme <shortcutter@googlemail.com> - 2012-10-14 14:09 +0200
Re: Assigning void Lew <lewbloch@gmail.com> - 2012-10-14 11:31 -0700
Re: Assigning void Jeff Higgins <jeff@invalid.invalid> - 2012-10-13 19:55 -0400
Re: Assigning void Jeff Higgins <jeff@invalid.invalid> - 2012-10-13 20:25 -0400
Re: Assigning void Jeff Higgins <jeff@invalid.invalid> - 2012-10-13 21:01 -0400
Re: Assigning void Gene Wirchenko <genew@ocis.net> - 2012-10-14 18:42 -0700
Re: Assigning void Roedy Green <see_website@mindprod.com.invalid> - 2012-10-14 00:51 -0700
Re: Assigning void Jeff Higgins <jeff@invalid.invalid> - 2012-10-14 10:40 -0400
Re: Assigning void Sven Köhler <remove-sven.koehler@gmail.com> - 2012-10-21 01:24 +0200
Re: Assigning void Wojtek <nowhere@a.com> - 2012-10-21 14:52 -0700
Re: Assigning void Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-10-21 20:13 -0400
Re: Assigning void Wojtek <nowhere@a.com> - 2012-10-21 20:20 -0700
Re: Assigning void Sven Köhler <remove-sven.koehler@gmail.com> - 2012-10-22 11:12 +0200
Re: Assigning void Wanja Gayk <brixomatic@yahoo.com> - 2012-10-24 22:03 +0200
Re: Assigning void Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-10-24 17:47 -0400
Re: Assigning void Wanja Gayk <brixomatic@yahoo.com> - 2012-10-25 01:02 +0200
Re: Assigning void Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-10-24 20:21 -0400
Re: Assigning void Martin Gregorie <martin@address-in-sig.invalid> - 2012-10-25 20:04 +0000
(OT) Re: Assigning void Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-10-25 16:31 -0400
Re: (OT) Re: Assigning void Martin Gregorie <martin@address-in-sig.invalid> - 2012-10-25 20:44 +0000
Re: Assigning void Arved Sandstrom <asandstrom2@eastlink.ca> - 2012-10-25 07:25 -0300
Re: Assigning void Lew <lewbloch@gmail.com> - 2012-10-25 11:12 -0700
Re: Assigning void Sven Köhler <remove-sven.koehler@gmail.com> - 2012-10-22 11:01 +0200
Re: Assigning void Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2012-10-23 00:38 +0200
csiph-web