Bilgisayar
bilimlerinde, bir programın incelenmesi sırasında, çeşitli işlemler
uygulanmasına karşılık yeknesan olması halidir.Diğer bir deyişle, program
çalışır ve çeşitli işlemlerden geçer, ancak bazı şeyler değişmeden kalıyor ve
ne kadar işlem yapılırsa yapılsın değişmiyorsa buna yeknesan (değişmez,
invariant) ismi verilir.En basit örneği, bir değişkenin
(variable) içine değer
atanması ama hiç değiştirilememesidir.
int a = 10;
// işlemler
printf("%d",a);
Yukarıdkai kodda, a
değerini ilgilendiren işlemler yapılmıyorsa, a için yeknesan olmuş denilebilir.
Farklı bir örnek de döngülerde görülür:
for(int i = 0;i<10;i++){
printf("%d",i);
}
Yukarıdaki döngüde,
i<10 şartında bulunan 10’dan küçük olma şartı yeknesan olmuştur. Yani
döngünün dönmesi sırasında değişmeden kalmaktadır. Hemen bu noktada önemli bir
farkı belirtmek gerekir. Yeknesean kavramı, sabit kavramı ile (constant)
karıştırılabilmektedir. Örneğin yukarıdaki döngüde bulunan 10 sayısı bir
sabittir ve yeknesan değildir. 10’dan küçük olma durumu ise değişmeden kalan
bir yeknesan olarak düşünülmelidir.
Yukarıdaki tip yeknesan örneklerine, özel olarak daire yeknesanı (loop invariant, döngü değişmezi) ismi de verilebilir.
Yukarıdaki tip yeknesan örneklerine, özel olarak daire yeknesanı (loop invariant, döngü değişmezi) ismi de verilebilir.
Bu yaklaşım, ayrıca
program analizi veya problem analizi sırasında da kullanılabilir. Örneğin MU
Probleminin çözümünde,
yeknesan bir değer yakalamaya çalışmak gerekir. Benzer şekilde Hoare
Mantığı (Hoare Logic), programların
belirli bölümlerinde, ön ve son koşullar belirleyerek bunların yeknesan
olmasını sağlamaktadır.
Bu yöntem, bilgisayar
bilimleri dışında da kullanılır. Örneğin, kanun yapım sürecinde, bütün
kanunlarda değişmeyen kötü hasletler vardır. Bu yüzden, hırsızlık veya cinayet
gibi suçlar, kanunlar değişmesine karşılık, bütün kanunlarda yerini almaktadır.
Bu anlamda, değişen kanun sistemleri için, hırsızlık, yeknesan bir suçtur
denilebilir.
Hiç yorum yok:
Yorum Gönder