• [^] # Re: Pascal...

    Posté par . En réponse au journal Python comme premier langage de programmation ?. Évalué à 1.

    Pas tout à fait : le compilateur raisonne bien en termes d'entiers « infinis » et lorsqu'il raisonne lors de la phase d'analyse sémantique ou bien lors des phases d'optimisation dans le middle-end. Par exemple :

    float f = fabs(some_float);
    if (f > 0) { // always true -- compiler should be able to simplify branch
     /* ... */
    } else { 
     /* ... */
    }

    ou bien

    int a = ...,
     b = ...;
    if (a > 0 && b > 0 && a+b < 0) { /* not possible, a > 0, b > 0 → a+b > 0, ALWAYS ! */
    }

    Un compilateur aura le droit d'optimiser ces branchements car fabs est une fonction de la libC, donc « magique » et que dans le deuxième cas, le compilateur ne considère pas les limites « physiques » des entiers considérés, mais juste les relations entre eux.