1 Kasım 1989 Tarihli Commodore Gazetesi Sayfa 60

1 Kasım 1989 tarihli Commodore Gazetesi Sayfa 60
Metin içeriği (otomatik olarak oluşturulmuştur)

rine dayanarak, ya güneş dünyanın etrafında, ya da dünya güneşin etra- fında dönüyor gibi postülalar ortaya atabiliriz. Bu sürece “*yüklemsel (predicate) öğrenme”' denir ve bilgisayar bilimi yolundaki en büyük engellerden bi- ridir, çünkü sonra atacağımız adım araştırmamızı bir ya da başka bir doğrultuda sürükleyecektir. “Zeki makinayı” elde edebilmek için doğ- ru seçimleri yapmalıyız. Bu tür öğ- renme süreçlerinin tümden gelimsel süreçler ile mi olduğunu varsayıyo- ruz? (Öğrenmemiz ve akıl yürütme- miz bize karşılığında veri sunulan bir dizi soru aracılığıyla mümkün olmak- tadır o zaman.) Diğer yandan çok miktarda sembolü ınampule edip bu informasyonu başka bir şekilde yeni- den paketlemenin ““zeka'”' göstergesi olduğunu varsayıyor muyuz? Önemli Bir Sorun LISP sembol manipülasyonuna yönelik bir bilgisayar dilidir. Alfanü- merik karakterler gösterebilmek gibi bir yan özelliği vardır ve bu dille bi- risi bir arcade oyunu yazabilir ama asıl özelliği büyük veri akışlarını iş- leyebilmesidir. Gövdeler LISP, Basic'ten yeni yapay zeka dilleri taraf dan kullanılan bu bir di- zi yüklem üzerine kurulmuş olmasıy- la da ayrılır: 'RENKLER ’(KIRMIZI BEYAZ MAVİ) bı.m!arıı:ıyazılması urumun- da verdığımız veriyi aynen yazacak- tır, ama tırnak işaretini kaldırırsanız LISP yorumcusu TANIMLANMA- MIŞ hata mesajını verecektir. Değiş- kene SETO denilen bir komutu kul- lanarak bir ad verebilirsiniz, bu de- ğişkene BASIC dilindeki LET emri (statement) gibi bir değer verir. SETO RENKLER '(KIRMIZI BEYAZ MAVİ) Görüldüğü gibi, değişkende depo- er, ya bir tırnak işaretini iz- leyen bir ifade ya da bir LISP fonk- siyonuna referans olabilir. (Bu BA- SIC'te bir “*komut”' ya da “anahtar sözcük”' olarak bilinir.) Değişkenin adını tırnak işareti olmadan girersi- niz. SETO emrinin verdiği değer oluşturulacaktır. Aynı mıcroPROLOG'ta olduğu gi- bi, LISP programlamn yöntemlerimi- ze tamamıyla yeni bir yaklaşım geti- 60 riyor. Bu anlamda LISP ve micro- PROLOG arasında birçok benzerlik var, bu benzerlik dilin kendisini oluş- turması sürecine kadar uzanıyor ama akış şeması kavramını prosramcılık ideolojimize aşıladığı “biribirini izle- yen akış”” düşüncesinden uzaklaşma- mız gerekiyor. Bu yaklaşım BASIC, COMAL gibi dillerde hâlâ devam ediyor. Bir informasyon listesini düşünün? Onda en sonuncusu dışında biribi- rini izleyen bir dizi veri olur. LISP lis- teleri uzunluklarından bağımsız ola- rak aynı şekilde ele alınabilecek bir nesneler grubu olarak görmek yanlı- sıdır. Listelerin bir seferde bir öğe aşı- larak katedilebileceği düşüncesi son derece yararlı oluyor. Bunun yanısıra LISP tanımlayıcı ve rakamların listelere serbestçe ka- rışmasına da olanak veriyor. Her şe- yi pointer'larla halledebilmenin bir yolu bu. Listelere gelince, bu pointer'lar tek bir veri birimini saptayacaktır. Buna hücre denir ve her yarısı başka bir po- inter içermektedir. Soldaki pointer (hücredeki ilk olan) depolanmış lis- tedeki ilk öğeye götürür, sağdaki de geriye kalanı işaret eder. Böylece (A BC12....)listesi için tablo şekil 1'de görülebilir. Böyle listeler alt listeler halinde dü- zenlenebilir ya da derinlemesine dü- şey olarak tasarlanabilir. Bunu şekil 2'de görebilirsiniz. Herhalde şimdiye kadar LISP'in neden bu kadar iyi bir genel amaçlı database oluşturma dili olduğu anla- şılmıştır. Çünkü bir data base'te iç- kin olan tüm fonksiyonlar ve data ya- pıları yapısında mevcuttur. Testler ve K Bir fonksiyonu, tek bir çagırma ile, yapılaştırılmış informasyonun inşa edilebileceği, depolanabileceği ya da alınabileceği şekilde tanımlayabilmek LISP'in genel bir özelliğidir. Daha- sı, bazı insanların “zeka”' dediğini kullanma yeteneğine sahip fonksi- yonlar yazılabildikten, yani bir fonk- siyondan çıkan datayı tartışıp o bul- gulara göre sonra ne yapılacağı ko- nusunda karar verebilen bir işlem ol- duktan sonra çok daha ilginç prog- ramlar yazılabilir. Diğer bir deyişle, LISP veriler üzerinde testler ve ara- larında karşılaştırmalar yapmaya ih- tiyaç duyar. En yaygın testler olan EO, ATOM ve NULL Boolean nicelikleri “*doğ- mll ve Üü 5 w değerler - tır. Acornsoft LISP'te, NIL ““yanlı- şı” temsil eder. Onun yanısıra, bir data yapısı diyagramının sonunda bulunan boş listeyi de temsil eder. “Doğru” bir fonksiyondan gelen da- tanın “yanlış”” olmadığı her durum sayılmaktadır. Bu nedenle T sözcü- ğünü bu niceliği tescil etmek üzere kullanabiliriz. (Aynı şekilde F de yan- lışı temsil edebilir.) “Doğru” değerler verdikleri düşü- nülen LISP fonksiyonları predicate (yüklem) olarak bilinir. Ama kulla- nım alanları, COND, özel fonksiyo- N Şekil 2: Data ağacı KUK Şekil 1: Lısp data yapı diyagramı

Bu sayıdan diğer sayfalar: