şükela:  tümü | bugün
  • jif, java'yı kapsayan güvenlik tipli programlama dili. bilginin gizliliğini ve bütünlüğünü statik bilgi akışıyla sağlamlaştırıyor. hangi bilgiye kimin ulaşabileceğini java'ya eklediği dekorasyonlarla belirtiyorsunuz. kodunuzda bir sıkıntı varsa compile etmiyor, hata veriyor. runtime error'leri de var ama işin çoğunu compile ederken hallediyor.

    yazdığınız jif kodu önce java'ya compile ediliyor. bundan sonra da standart java compiler kullanılabiliyor.

    ufak bir örnek olarak:

    int {ali -> veli} x = 3;
    int {ali -> veli, oya} y = 5;

    şeklinde iki değişken tanımlıyoruz. java assignment'ına eklenilen {ali -> veli} politikası, bu değişkenin güvenlik politikasını belirtiyor. ali, veli ve oya elinde tuttuğu izinleri olan principle'lar olarak adlandırılıyor. ok işaretinin(->) sol tarafında o değişkenin izinlerine sahip olan principle'ı, sağ tarafına ise, sahip principle'ın bu değişken hakkındaki izinlerini paylaşmak istediği diğer principle'lar yazılıyor.

    şimdi şu iki işleme bakalım:

    x = y; // successfull build
    y = x ; // compile error

    y = x işlemi compile etmeyecek. çünkü sadece ali ve veli'nin görmesine izin verilen bir bilgi, oya'ya da açık edilmiş olacak. ya da jif jargonuna göre y'nin policy'si x'inki kadar güçlü değil. ezberlemek için işi "politikası güçlü olmayan, karşıdakilerden birinden birşeyler gizleyendir" diye siyasileştirip espirikleştirebilirsiniz.