Bilgi ve Uygulama

JAL 3.1: İşleçler (Operators)

Yazar: İsmail Sahillioğlu
Tarih: 06.12.2020
Türkçe

İşleçler, kod yazarken aritmetik, mantıksal, karşılaştırma ve dile özel bazı işlevleri gerçekleştirmeye yararlar. JAL 2. versiyonu itibariyle aşağıdaki işleçleri desteklemektedir.


Tablo: JALv2 İşleçleri
İşleç (Operator)      İşlem (Operation)
Sonuç
COUNT
Bir dizideki öğe sayısını döndürür.
UNIVERSAL
WHEREIS
Bir tanımlayıcının adres konumunu döndürür.
UNIVERSAL6
DEFINED
Bir tanımlayıcının olup olmadığını denetler.
BIT
’(’ ifade ’)’
Gruplandırma.
ifade değerlendirmesinin sonucu
’-’3
Birli - (eksileştirme)
İşlecin aynısı
’+’3
Birli +
İşlecin aynısı
’!’3
1'in tümleyeni
İşlecin aynısı
’!!’3
Mantıksal. İzleyen değer 0 ise, sonuç da 0 olur,
aksi takdirde sonuç 1 olur.
BIT
’*’3,5
Çarpma
Promosyon2
’/’3,5 Bölme
Promosyon2
’%’5 Modülüs bölme (kalan bulma)
Promosyon2
’+’3 Toplama
Promosyon2
’-’3 Çıkarma
Promosyon2
’<<’ Sola kaydırma
Promosyon2
’>>’1 Sağa kaydırma
Promosyon2
’<’3 Kesinlikle küçük
BIT
’<=’3 Küçük veya eşit
BIT
’==’4 Eşit, aynı
BIT
’!=’4 Eşit değil
BIT
’>=’3 Büyük veya eşit
BIT
’>’3 Kesinlikle büyük
BIT
’&’ İkilik VE (binary AND)
Promosyon2
’|’ İkilik VEYA (binary OR)
Promosyon2
’^’ İkilik özel VEYA (binary EX-OR)
Promosyon2

    1sağa kaydırma: Soldaki işlenen(operand) işaretliyse, kaydırma aritmetik (işaret korunur), işaretsiz ise basit ikilik kaydırmadır.


    2promosyon: Promosyon kuralları biraz karmaşıktır, durumlar şu şekildedir:
        İşlenenlerden biri FLOAT ise, sonuç da FLOAT olur.
        İşlenenlerden biri UNIVERSAL ve diğerleri değilse, sonuç UNIVERSAL-olmayan işlenen ile aynı türdedir.
        Heriki işlenen de aynı işaretliliğe ve genişliğe sahipse, sonuç işlenenlerin türünde olacaktır.
        Heriki işlenen de aynı genişliğe sahip ancak biri işaretsizse, sonuç da işaretsizdir.
        İşlenenin biri diğerinden daha genişse, diğeri geniş olan türe terfi ettirilecektir.

    3Bu işleçler FLOAT türlere izin verir.

    4Kayan noktalı (floating point) sayılar, özensiz saklanma biçimlerinden dolayı asla eşitlik için karşılaştırılmamalıdır. Böyle bir girişimde bulunmak derleyicinin bir uyarı göstermesine neden olacaktır. Aynı matematiksel sonucu vermesi gereken iki farklı işlem eşitsizliği karşılaştırabilir. İki kayan noktalı sayıyı, diyelim ki A ve B için, karşılaştırmanın doğru yolu şöyledir, 'abs((A - B) / B) < 1e-6' (kayan noktalı değerler 6-9 hanelik nominal hassasiyete sahiptir).

    5Unutulmamalıdır ki, tamsayı türleri arasında bile olsa, çarpma ve bölme kod ve veri boyutu olarak çok maliyetli işlemlerdir.

    6WHEREIS'in sonucu kullanılan tanımlayıcıya bağlı olarak değişir:
        > Bir prosedür veya işlev giriş noktasının KOD adresini döndürecektir.
        > Bir assembly etiketi, etiketin KOD adresini döndürecektir.
        > Bir değişken ise değişkenin VERİ adresini döndürecektir.
        > Bir sabit ise hata üretilir.
        > Bir sabit dizisinde ne döndürüleceği işlemci ailesine bağlıdır:
            - İşlemci ailesi 16-bit ise: Verinin KOD adresi döndürülür.
            - İşlemci ailesi 16-bit-olmayan ise: Arama tablosunun (lookup function) giriş noktasının KOD adresi döndürülür.


Etiketler: jal islecler operators

Yorumlarınız

Hiç yorum yapılmamış, ilk yorumu siz yapabilirsiniz.

Bir yorum ekleyin

İsim:
E-posta:
Yorumunuz:
Güvenlik Kodu:
 
Tüm alanları doldurmak zorunludur. Yorumunuz kontrol edilince yayınlanacaktır. E-posta adresi yayınlanmaz.
Konular