Bu sayfadaki yazılar
Sayfanın metni
Sayfa 21
ile, (daha önce atom olarak tanımlanmış olan) elma, armut ve ayva atomlarından oluşan MEYVE listesi tanımlanıyor.
Fonksiyonel Diller
Bu listeleri işlemeyi sürdürebilmek için önceden tanımlanmış bir dizi fonksiyon vardır. Tek tek ögeler ya da listenin tümü yeni listelere dönüştürülebilir; bunun gerçekleşeceği koşullar belirlenebilir vb. Bu sırada son derece karmaşık yapılar ya da düzenli mantık ağları oluşabilir. Böylece belirli ölçüde insan düşüncesinin öncelikle çağrışımcı yolla işleyen mekanizmasına, komutların adım adım işlenmesinden çok daha fazla benzeyen bir işleyiş yaratılır. Bu nedenle Lisp, pratik alanda hemen tüm AI (Artificial Intelligence- Yapay Zeka) projelerine hayranlık uyandırıcı bir başarıyla kullanılmaktadır. Bu dil öncelikle sembolik veri işlemde (sayısal olmayan matematik), simgelerin tanınması ve mantıksal fonksiyonlar alanlarında olumlu sonuçlar vermektedir. C-64, Lisp'i kullanmak için henüz uygun değil, fakat yine liste işlemeye dayanan Logo adlı bir dil C-64'te başarıyla kullanılabilmekte. Liste işlemin sağladığı bu üstünlük, Logo'da henüz Lisp'teki mükemmelliğe erişmiş değil. Fakat bu sadelik, yeni başlayanlar açısından büyük bir öğrenim kolaylığı sağlıyor. Logo, artık tüm dünyada simgesi haline gelmiş olan “kaplumbağa grafiği” ile tanınıyor. Kaplumbağa (turtle), kural olarak, ekranda FORWARD, BACK, RIGHT, LEFT gibi komutlarla her yöne hareket ettirilebilen bir üçgenle simgeleniyor. Kaplumbağa, bu hareket sırasında, ekranda görünen bir çizgi bırakıyor ve oldukça karmaşık grafiklerin basit bir biçimde çizilmesini sağlayabiliyor. Basic'te olduğu gibi, Logo'da da (tabii Lisp'te de) programlamayı kolaylaştıran bir çeviricinin varlığı sözkonusu. Tüm program komutları, doğrudan (direkt modda) verilebiliyor; bu sayede de tüm rutinler bilgisayarla doğrudan bir diyalog içinde denenebiliyor. Böylece, derleyicilerde sözkonusu olduğu gibi, her değişiklikten sonra yeniden bir çeviri gerekli olmuyor. Grafiğin çok kolay oluşturulabilmesi, C-64'te Logo'nun kullanımını destekleyen nedenlerin başında gelmekte. Logo ile ilgilenenler için, ileriki sayılarımızda bu dili daha yakından tanıtan yazılar yayınlayacağız. Doğaldır ki, bilgisayar dillerini anve tanıtabilmek için bu yazı oldukça dar. Burada adı geçen dillerin dışında, her birinin kullanımı üzerine kitaplar doldurulabilecek daha bir sürü programlama dili var. Yazımızın amacı ise, bilgisayar dillerinin gelişim çizgisi üzerine genel bir bilgi vermekle kısıtlı. Özellikle tüm dünyada çok yaygın bir kullanıma sahip olan Commodore 64 için, gelecekte yeni diller de geliştirilecektir. Ayrıca bu konunun bir de, CP/M özelliği ile tüm programlama dillerinin dünyasına açılmayı sağlayan Commodore 128'in açısından görülmesi enteresan olacaktır. Gelecek sayılarımızda bu konuya da eğileceğiz. D
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 20
Ada'nın ikinci ek özelliği ise, paralel süreçleri aynı anda yürütebilme yeteneği (Multitasking). Bu yetenek, belirli işlemlerin aynı anda yerine getirilebilmesini sağlıyor (tabii ki, bilgisayarın birden fazla işlemciyle donatılmış olması gerekiyor; aksi takdirde elde edilecek olan bir “sanki-eşzamanlılık”tır). Bu da doğal olarak işletim hızında olağanüstü bir artış sağlar, fakat hardware harcamalarında da önemli bir külfet getirir. Programlama dillerinde, kabaca ayrılacak olursa, temelden farklı iki çizgi vardır. Bunların biri komut-dilleri, diğeri ise fonksiyonel dillerdir. Komut-dillerine, Basic'te dahil olmak üzere, Pascal, Modula, Ada ve C gibi dillerin yanısıra tüm “klasik” programlama dilleri girer. Bu dillerin tümü, yapılarından dolayı az ya da çok, bugün varolan bilgisayarların hardware örgütlenmesine dayalıdır (komut almak-komutu yerine getirmek-program göstergesini bir sonraki komutun üstüne getirmek). Buna karşılık, fonksiyonel diller tek tek özel komutların yerine getirilmesini talep etmez, yapılar, tanımlar ve yeni yapılar oluşturur.
KS
Bu dillerin temsilcileri olarak, örneğin Lisp (listeleri işlemeye yarıyor), Snobol (sembollerle canlandırma yapmakta kullanılıyor) ve üniversiteler dışında hiç tanınmayan bir sürü küçük, özel dil sayılabilir. Bu dil grubunun en çok tanınan temsilcisi, Lisp. Bu dil, acemiler açısından ilk bakışta, açılan ve kapanan bir sürü parantezden ve bazen de bunların arasında bulunan bazı simgelerden oluşuyor. Bunun nedeni, Lisp'in fonksiyonel yapısı. Lisp'te, komutlar yerine, en ilkel elemanlardan son derece karmaşık yapılar oluşturabilen fonksiyonlar var. Başlangıç noktası daima, en küçük Lisp yapısı olan atomdur. Bu klavye üzerinden bir bilgisayara girilebilen her şey, bir atom olabilir. (ATOM ELMA) ile, ELMA adlı bir “NESNE” tanımlanır; bu nesnenin herhangi başka bir veriyle ne içsel bir yapısı, ne de ilişkisi vardır. Diğer verilerle sahip olacağı bu ilişkiler, ancak daha sonra fonksiyonlarla tanımlanır. Lisp'in (List Processing Language) en temel ögesi, listeler oluşturabilme yeteneğidir. Liste, ögelerin düzenlenmiş bir dökümüdür. Bu ögeler en basitinden atomlar olabilir, ama başka listeler ya da fonksiyonlar da sözkonusu olabilir. (SETQ MEYVE (ELMA ARMUT AYVA))