<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2015-03-22 16:03 GMT+01:00 Gollum1 <span dir="ltr"><<a href="mailto:gollum1.smeagol1@gmail.com" target="_blank">gollum1.smeagol1@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Il 22/03/2015 14:13, Manlio Perillo ha scritto:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
<a href="http://en.wikipedia.org/wiki/Short-circuit_evaluation#Possible_problems" target="_blank">http://en.wikipedia.org/wiki/<u></u>Short-circuit_evaluation#<u></u>Possible_problems</a><br>
<br>
</blockquote>
<br>
grazie, lettura molto interessante, la prima problematica l'avevo già intuita (il fatto di usare la seconda valutazione booleana per avere dei risultati che saranno poi usati nel seguito, che non vengono mai generati perché non viene valutata la seconda espressione se è falsa la prima).<br>
<br>
Con un po' di attenzione nella stesura del codice, questo problema non sarebbe poi tale (certo è da sapere che si può cadere in questo tranello).<br>
<br>
invece non avevo considerato le problematiche date dalla valutazione a corto circuito nel campo dei compilatore, che praticamente va ad impattare in modo pesante nel sistema di predizione del compilatore stesso...<br></blockquote><div><br></div><div>Tra l'altro il tutto è complicato dal fatto, AFAIK, che ciascuno degli operandi può avere effetti collaterali.</div><div>Ad esempio:</div><div><a href="https://play.golang.org/p/jc0vKCWFu7">https://play.golang.org/p/jc0vKCWFu7</a></div><div><br></div><div>Se lasciamo la scelta di come valutare i termini al compilatore, il programma avrà un comportamento diverso a seconda di come il compilatore decide di ottimizzare.</div><div>L'alternativa è proibire gli effetti collaterali ovunque il compilatore ha la possibilità di ottimizzare...</div><div>Questo credo sia il caso di Fortran, ma non ne sono sicuro.</div><div><br></div><div><br></div><div>Ciao  Manlio</div></div></div></div>