Nella programmazione, la valutazione eager consiste nel valutare un'espressione non appena essa viene legata a una variabile. Tipicamente, il termine è usato in contrasto con la valutazione lazy, in cui un'espressione viene valutata solo quando si richiede il valore di un'espressione che da essa dipende. La valutazione eager è utilizzata quasi esclusivamente nei linguaggi imperativi dove l'ordine di esecuzione è definito implicitamente dall'organizzazione del codice sorgente.

Un vantaggio della valutazione eager è che elimina la necessità di tracciare e organizzare la valutazione delle espressioni. Essa permette inoltre al programmatore di specificare l'ordine di esecuzione, rendendo più semplice determinare il momento in cui saranno valutate sottoespressioni (e funzioni) all'interno di un'espressione.

Uno svantaggio della valutazione eager, invece, è che forza la valutazione di espressioni che potrebbe non essere necessaria a run time o che potrebbe essere ritardata a favore di espressioni che hanno necessità più immediata di essere valutate. Inoltre tale modalità di valutazione obbliga il programmatore a organizzare il codice sorgente secondo un ordine di esecuzione ottimale.

Voci correlate modifica