Возможна ли такая оптимизация компилятором (или VM), когда вычисление передаваемых параметров происходит при необходимости? К примеру:
void Func(int a, int b) {
if ( a > 0 ) { // 95% true
CallA(); return;
}
if ( a > -1 && b > 0 ) {
CallB();
}
}
...
Func( GetValueFromDisk(), GetValueFromNetwork() );
Если да, то может ли императивный ЯП (c,java) иметь нестрогую модель вычислений?
Если присмотреться, то в коде большинства программ довольно много параметров методов, значения которых не используется в ряде случаев.