Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #9287

Re: code generation for the ternary operator

From Wanja Gayk <brixomatic@yahoo.com>
Newsgroups comp.lang.java.programmer
Subject Re: code generation for the ternary operator
Date 2011-10-29 00:23 +0200
Organization Netfront http://www.netfront.net/
Message-ID <MPG.29154993d0220d239896ca@202.177.16.121> (permalink)
References <29cla79dh934epr5n27cghvupjk77mpuqr@4ax.com>

Show all headers | View raw


In article <29cla79dh934epr5n27cghvupjk77mpuqr@4ax.com>, 
see_website@mindprod.com.invalid says...
> 
> I wonder if anyone has ever looked at the byte code and/or the hotspot
> code generated by code like this:
> 
> final int count = lines * 3 + ( b1 ? 2 : 0 ) + ( b2 ? 2 : 0 ) ;
> 
> vs:
> 
> int count = lines *3;
> if ( b1 ) count += 2;
> if ( b2 ) count += 2;
> 
> I wondered how clever it is.  This is just curiosity. This is not
> critical code.
> 
> Which style do you prefer?

I personally don't care for the byte code unless it really matters, 
which is almost certainly never. So I concentrate on readability and 
code style.
Among these two, I'd prefer the first variant for these reasons:
It is obviously very clear that the value "count" won't change later in 
the program. It's short, concise and the brackets look like a "capsule" 
that wraps the decision being made.
But if the term is getting too long, it might be a good idea to write 
this, which I find even more readable:

final int v1 = b1 ? 2 : 0;
final int v2 = b2 ? 2 : 0;
final int count = lines * 3 + v1 + v2 ;

Still I would try to find proper names for "v1", "v2", "b1" and "b2", 
like for example:

final int optionalHeader = headerPrinted ? 2 : 0;
final int optionalFooter = footerPrinted ? 2 : 0;
final int count = lines * 3 + optionalFooter + optionalHeader;

Kind regards, 
Wanja

-- 
..Alesi's problem was that the back of the car was jumping up and down 
dangerously - and I can assure you from having been teammate to 
Jean Alesi and knowing what kind of cars that he can pull up with, 
when Jean Alesi says that a car is dangerous - it is. [Jonathan Palmer]

--- Posted via news://freenews.netfront.net/ - Complaints to news@netfront.net ---

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

code generation for the ternary operator Roedy Green <see_website@mindprod.com.invalid> - 2011-10-28 06:46 -0700
  Re: code generation for the ternary operator Jaap Droogers <JaapDroogers@unusable.meel.homelinux.net> - 2011-10-28 16:07 +0200
    Re: code generation for the ternary operator markspace <-@.> - 2011-10-28 08:32 -0700
      Re: code generation for the ternary operator Owen Jacobson <angrybaldguy@gmail.com> - 2011-11-01 01:53 -0400
        Re: code generation for the ternary operator Roedy Green <see_website@mindprod.com.invalid> - 2011-11-01 06:25 -0700
          Source code representation (was: code generation for the ternary operator). Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2011-11-01 09:41 -0700
            Re: Source code representation Patricia Shanahan <pats@acm.org> - 2011-11-01 13:46 -0700
              Re: Source code representation Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2011-11-01 16:09 -0700
              Re: Source code representation Roedy Green <see_website@mindprod.com.invalid> - 2011-11-01 23:54 -0700
            Re: Source code representation (was: code generation for the ternary operator). Gene Wirchenko <genew@ocis.net> - 2011-11-01 17:33 -0700
              Re: Source code representation (was: code generation for the ternary operator). Roedy Green <see_website@mindprod.com.invalid> - 2011-11-02 01:19 -0700
                Re: Source code representation (was: code generation for the ternary operator). Gene Wirchenko <genew@ocis.net> - 2011-11-02 09:42 -0700
              Re: Source code representation (was: code generation for the ternary operator). Lew <lewbloch@gmail.com> - 2011-11-02 07:45 -0700
              Re: Source code representation Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2011-11-02 10:58 -0700
                Re: Source code representation Gene Wirchenko <genew@ocis.net> - 2011-11-02 14:11 -0700
                Re: Source code representation Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2011-11-02 15:21 -0700
                Re: Source code representation Gene Wirchenko <genew@ocis.net> - 2011-11-02 16:07 -0700
            Re: Source code representation (was: code generation for the ternary operator). Roedy Green <see_website@mindprod.com.invalid> - 2011-11-01 23:52 -0700
              Re: Source code representation (was: code generation for the ternary operator). Gene Wirchenko <genew@ocis.net> - 2011-11-02 09:47 -0700
                Re: Source code representation (was: code generation for the ternary operator). Martin Gregorie <martin@address-in-sig.invalid> - 2011-11-02 20:58 +0000
                Re: Source code representation Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2011-11-02 15:27 -0700
                Re: Source code representation Martin Gregorie <martin@address-in-sig.invalid> - 2011-11-02 23:18 +0000
                Re: Source code representation Lew <lewbloch@gmail.com> - 2011-11-02 17:30 -0700
                Re: Source code representation Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2011-11-02 15:30 -0700
                Re: Source code representation Gene Wirchenko <genew@ocis.net> - 2011-11-02 21:30 -0700
                Re: Source code representation Lew <lewbloch@gmail.com> - 2011-11-02 22:07 -0700
            Re: Source code representation Arne Vajhøj <arne@vajhoej.dk> - 2011-11-05 21:01 -0400
      Re: code generation for the ternary operator Arne Vajhøj <arne@vajhoej.dk> - 2011-11-05 20:56 -0400
    Re: code generation for the ternary operator rossum <rossum48@coldmail.com> - 2011-10-29 13:01 +0100
    Re: code generation for the ternary operator Lew <lewbloch@gmail.com> - 2011-10-29 10:46 -0700
  Re: code generation for the ternary operator Henk van Voorthuijsen <voorth@xs4all.nl> - 2011-10-28 08:05 -0700
    Re: code generation for the ternary operator Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-10-28 15:41 +0000
  Re: code generation for the ternary operator Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2011-10-28 10:31 -0700
    Re: code generation for the ternary operator Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-10-29 03:24 +0200
  Re: code generation for the ternary operator Wanja Gayk <brixomatic@yahoo.com> - 2011-10-29 00:23 +0200
    Re: code generation for the ternary operator Lew <lewbloch@gmail.com> - 2011-10-29 10:50 -0700
      Re: code generation for the ternary operator Wanja Gayk <brixomatic@yahoo.com> - 2011-11-01 13:36 +0100
  Re: code generation for the ternary operator Michal Kleczek <kleku@poczta.onet.pl> - 2011-10-31 17:38 +0100

csiph-web