Bilgisayar biliminde, katı değerlendirme , bir program içindeki ifadeleri değerlendirmek için bir stratejidir. Bu, ifadenin bir değişkene bağlanabildiği anda değerlendirildiği değerlendirme modudur . Geleneksel olarak değere göre çağrı denir .
Özyinelemeli işlevi ( Fibonacci işlevi ) düşünün :
f (x) = eğer , x = 0 , sonra 0 , aksi takdirde , x = 1 daha sonra 1 aksi f (x-1) + f (x-2)F (6) 'yı hesaplayalım. İfadenin
Eğer 6 = 0 , sonra 0 , aksi takdirde 1 = 6 daha sonra 1 , aksi f (5) + r (4)f (5) + f (4) olarak değerlendirir ki bu da
F (x) = ( eğer 5 = 0 sonra 0 , aksi takdirde 5 = 1 daha sonra 1 aksi r (4) + f (3)) + ( eğer 4 = 0 sonra 0 , aksi takdirde R4 = 1 daha sonra 1 aksi f (3) + f (2)) vb.Bunu yapmak zorunda olduğumuzu bildiğimiz anda f (5), f (4), f (3) 'ü değerlendirmekten oluşan bu mekanizmanın çok basit ve oldukça doğal olduğunu görüyoruz. Ara ifadeler tutmaya veya gelecekteki hesaplamaları tahmin etmeye gerek yoktur. Ancak f (4) 'ün iki kez ve f (3)' ün üç kez değerlendirilmesine yol açar (f (4) 'ün kalan değerlendirmesini sayarak f (3)' ün üçüncü değerlendirmesine yol açar).
Sıkı değerlendirmenin bir dezavantajı, son değerlendirme için gerekli olmayan ifadelerin değerlendirilmesini zorlaması veya hemen gerekli olan ifadelerin değerlendirilmesini geciktirebilmesidir . Ayrıca, geliştiriciye veya programcıya yürütme sırasını düzenleme görevi bırakırken, çoğu modern derleyici, işlemci kaynaklarının kullanımını en üst düzeye çıkarmak ve gereksiz ifadeleri ortadan kaldırmak için ifadelerin yürütme sırasını optimize edebilir.