Maybe because ... planned for perl6.

Damn man! Way to go, twisting history in your attempt to make a puerile point of no consequence and extremely dubious value. I think you just proved everything dave_the_m said about you. And more.

Perl has undefined subroutine argument evaluation order because C had undefined subroutine argument evaluation order.

And C had it, because when C was defined, the plethora of cpu architectures, with weird and different instruction sets -- RISC, CISC, orthogonal and irregular, 8-bit, 16-bit, 18-bit et al. -- combined with no pipelining, no branch prediction and many clock-cycles for even the simplest of instructions -- giving what by today's standards was absolutely glacial performance -- meant that specifying it one way might be optimal for one architecture, but lead to the worst possible performance on another.

Hence, is was a conscious design decision by K&R to leave it to the implementors of compilers, despite that they acknowledged that it detracted from the generality of the language, placing the onus on the human programmer to avoid, otherwise legal language constructs that were ambiguous -- like the classic: func( a++, ++a );

It was an expedient compromise to the realisation that 'the hardware problem' was beyond the control of programmers and their software.

outlaw any possible parallelization effort ...

That's just garbage. Though in your defense, it is widely misunderstood and disseminated garbage.

A defined evaluation order -- not just subroutine args, but also subexpressions -- would enable the programmer to make informed choices at the source level that would vastly enhance the potential for parallelisation.

It all comes from LISP, which is the only other language which left it undefined,

And that's just plain wrong! Glaringly, verifiably, obviously, wrong.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority". I knew I was on the right track :)
In the absence of evidence, opinion is indistinguishable from prejudice.

In reply to Re^6: Evaluation Order again. by BrowserUk
in thread Evaluation Order again. by BrowserUk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.