Arexx
Retro bilgisayarBir sayılık bir ara verdikten hemen sonra tekrar kaldığımız yerden devam ediyoruz. Bundan önceki yazımda AREXX'in nasıl çalışmaya hazır hale getirileceğini anlatmış ve kısa bir örnek program vermiştim. Commodore Dergisi'nin Aralık 1991, 70. sayısının AMIGA bülteninde çıkan bu yazıyı okumamış olanlara o sayıyı alıp AREXX hakkındaki bilgileri okumaları tavsiye edilir, çünkü eğer AREXX hakkında hiçbir şey bilmiyorsanız bu yazıyı takip etmeniz zor olabilir. O yazıda genel bilgiler ve AREXX'in çalışmaya hazır hale nasıl getirildiğini görmüştük, bu kez AREXX dilinin işleyişini ve emirlerini göreceğiz.
AREXX, öncelikle programlar arası iletişimi sağlamak için kullanılan bir dil olduğu için, klasik dillerden biraz farklı bir mantığa uyarak çalışır. Her AREXX programı çalışırken, başka bir programın açtığı bir “mesaj port”unu 'host' (ev sahibi) olarak kabul edebilir. Programın çalışması sırasında AREXX, kendisinin tanımadığı, bir anlam veremediği bir emir cümlesi ile karşılaşırsa, bu emir cümlesini bu mesaj portuna gönderir. Bu mesaj portunun sahibi olan program, bu emirleri kendisi yorumlar, gereken işleri yapar, geriye de sonuç gönderebilir. Bu sayede bir AREXX programından örneğin bir editöre belli bir dosyayı yüklemesini ve belli bir satıra gitmesini söylemek mümkün oluyor. Daha somut örneklere geçmeden önce AREXX yorumcusunun (interpreter) kendi tanıdığı emir ve operatörlere bir göz atalım. Bu listede kısaltmalar şu anlamlara geliyor: A: Aritmetik işlem M: Mantıksal işlem K: Karşılaştırma işlem Ayrıca string'leri (karakter dizisi) birbirine eklemek için || operatörü vardır. AREXX bir yorumcu dili olduğu için programların düzyazı (ASCII) dosyaları halinde saklandığını daha önce söylemiştim. Herhangi bir düzyazı dosyasının yanlışlıkla AREXX programı çalıştırılması aslında tehlikeli sonuçlar yaratabilir, çün-
Mantıksal (logical) operatörler:
İşlem Öncelik Tür Anlam 8
Üst alma çıkarma eşit eşit değil küçük büyük küçük veya eşit büyük veya eşit AREXX emirleri günlük hayatta kullandığımız sözcüklere oldukça benzerler, herhangi başka bir vesile ile diskette saklanmış bir dosyanın içindeki sözcükler kolaylıkla emir olarak yorumlanabilir. Bu olasılığı ortadan kaldırmak için her AREXX programının başında AREXX emirleri içermeyen bir “Comment” (yorum) bulunması mecburiyeti konmuştur (programınızın başka bir yerinde kendiniz için notlar düşmek için bu yöntemi kullanabilirsiniz). Bu yorum C dilinde olduğu gibi /* ve */ işaretleri arasında konmuş olmalıdır. Örneğin:
/* DENEME.REXX: ilk program */
say “hello”
Mantıksal ters Aritmetik eksi
Çarpma (kayar nokta) Bölme (kayar nokta) Bölme (tamsayı) Tamsayı bölmenin kalanı (mod)
tamamen eşit (küçük büyük harf olarak da) tamamen eşit değil büyük veya eşit büyük veya eşit küçük veya eşit küçük veya eşit
Mantıksal ve (and) Mantıksal veya (or) Mantıksal eksik veya (xor) Mantıksal eksik veya (xor)
Bir programlama dilinin en önemli yanlarından biri de değişkenlerdir. Değişkenler konusunda AREXX son derece esnek davranır. Herhangi bir değişken adı kullanıldığında, öyle bir değişken yoksa değişkenin adı tamamen büyük harf olarak kullanılır. Örnek:
sayı - 15
say sayı
Bu program shell penceresinde '15' yazar, ama sadece
say sayı
dersek programın yazdığı cevap olacaktır. Ayrıca diğer dillerde 'array' (dizi), 'struct' (yapı), 'record' (kayıt) vb. adlandırılan bileşik değişkenler de AREXX'te yine esnek bir şekilde gerçekleştirilmişlerdir. Örneğin
isim.1 — “Ahmet”
say
say İsim.2
Ekran çıktısı:
Ahmet ISIM.2 olacaktır. AREXX, isim.2 adlı değişkene daha önce bir değer atanmış olmadığı için ilk değer verilmemiş değişkenlere yaptığı gibi değişken adını büyük harfe çevirip değer olarak kullanıyor. Benzer şekilde
öğrenci./1.isim — “Mehmet”
öğrenci.1.no — 321
öğrenci.1.not — 8'
şeklinde bir veri tabanı oluşturmak da son derece kolay mümkün oluyor. Böyle bir listeyi şöyle ekrana yansıtmak mümkün:
do x— 1fo 10
say adı: İlöğrenci.x.isim
say
say 'notu:“İlöğrenci.x.not
end
Bu yapı, diğer dillerde FOR döngüsü denen tekrarlama şeklini kullanıyor. Bir indeks değişkeni (bunda x) 1'den 10'a kadar sayıyor ve her defasında o numaralı öğrencinin adını, numarasını ve notunu yazıyor. İşte size klasik BASIC versiyonlarıyla yapamayacağınız bir şey (Onlar numaralı değişkenlere (array) izin verirler, ama .isim, .not gibi yapısal (structure) imkanları yoktur). Burada öğrenci.2 ve daha sonrakilere bir değer atamamışsanız, yerine ÖĞRENCİ.2.ISIM vb. görünecektir. Gelecek sefer program akışını kontrol eden emirleri anlatacağım. O zamana kadar hepinize sağlık, mutluluk ve sabır dilerim, hoşçakalın.
OYUN TANITIM Heart of China