Valutazione a corto circuito

Da Wikipedia, l'enciclopedia libera.

La valutazione a corto circuito è un meccanismo relativo agli operatori booleani binari per cui il secondo operando viene valutato unicamente se il valore del primo operando non è sufficiente da solo a determinare il risultato dell'operatore.

Ad esempio, il risultato dell'operatore logico AND è necessariamente falso quando il primo operando è falso, ed il risultato dell'operatore logico OR è necessariamente vero quando il primo operando è vero; in entrambi i casi è possibile determinare il risultato indipendentemente dal valore del secondo operando, che quindi non viene preso in considerazione.

La valutazione a corto circuito, prevista in numerosi linguaggi di programmazione, è usata sia per sveltire il calcolo del risultato delle espressioni, sia come forma compatta di un'istruzione condizionale qualora la valutazione del secondo operando produca degli effetti collaterali.

Esempi[modifica | modifica sorgente]

In uno script di shell:

test -d /tmp/foo || mkdir /tmp/foo

In questo caso il comando mkdir /tmp/foo viene eseguito unicamente se il risultato del primo comando (che verifica l'esistenza della directory /tmp/foo) è falso, per via della valutazione a corto circuito dell'operatore OR (indicato come || nello script). Rappresenta una forma compatta di

if ! test -d /tmp/foo; then mkdir /tmp/foo; fi

Nel linguaggio C:

char * p;
...
if (p != NULL && *p == 'x') ...;

In questo caso la dereferenziazione del puntatore p (*p == 'x') viene effettuata solo se esso non è NULL (p != NULL) per via della valutazione a corto circuito dell'operatore AND (&&). Senza la valutazione a corto circuito esso sarebbe stato dereferenziato anche nel caso in cui p valesse NULL, che è un'operazione non ammessa, per cui si sarebbe dovuto ricorrere a

if (p != NULL) {
   if (*p == 'x') ...;
}

Voci correlate[modifica | modifica sorgente]

informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica