BERİMSEL BİR DENEME


Halit Oğuztüzün       
... "Bilim dili olarak Türkçe" sıkça seslendirilen bir slogan. Ne var ki Türkçe’nin kök hazinesi olduğu gibi kalacak olursa gerçekleşmeyecek bir rüya. Mevcut kökler yeterince yüklüdür ve bunlara daha fazla yüklenmek kavram kargaşasına yol açmaktadır. Türkçe’nin bir bilim dili olarak gelişmesinin yolu kök "uydurmaktan" geçiyor. Türkçe’nin zengin ek olanakları gerisini halledecektir.

İngilizce’deki calculate ve onun calculation, calculator gibi türevleriyle, compute ve onun computation, computer gibi türevlerinin kullanım farklılıklarına dikkat ettiniz mi? Sözgelimi calculator ve computer farklı gereçler için kullanılan isimler. Öte yandan yarıçap uzunluğu verilmiş bir dairenin alanını bulma işlemine, İngilizce’de calculation denebileceği gibi computation da denebilir. Nerede compute nerede calculate deneceği, nerede fark etmeyeceği İngilizce kullanımda aşağı yukarı bellidir. Örneğin computational linguistics denir ama calculational linguistics demek tuhaf olur. Burada zaman içinde oluşmuş bir konvansiyon mu söz konusu yoksa bu iki kok farklı kavramlara mi karşılık geliyor? Peter Denning ile Robert Metcalfe'nin kitabi "Beyond Calculation: The Next Fifty Years of Computing" (Springer, 1997) sadece baslığıyla bile biri ötekini içeren iki farklı kavram bulunduğunu hissettiriyor.

Türkçe’de calculate için hesapla, calculation için hesap ya da hesaplama, calculator için hesap makinesi karşılıklarını kullanıyoruz. Hesap Arapça kökenli bir kelime ama saf öz Türkçecilerin dışında kimsenin bunu dert ettiğini sanmıyorum. Oysa compute için kafalar karışık. Computer için bilgisayar dediğimize göre compute için bilgisay, computing için bilgisayım, vs. dememiz beklenirdi, ama kimsenin bu kelimeleri kullandığını duymadım. Bil kokunun aşırı yüklenmiş olduğuna dikkatinizi çekerim. Bil kökünden türetilmiş kelimeleri sıralamaya kalkarsanız aşırı yüklenmenin ne demek olduğunu anlarsınız. Computing karşılığı olarak Türkçe yayınlarda neler kullanılmıyor ki: işlem, bilgi işlem, uygulama, hesaplama... Compute köküne bir karşılık bulmadan,ondan türemiş olan computer ismine karşılık bulmaya kalkınca böyle terslikler oluyor.

İngilizce’deki compute kokunun Türkçe karşılığı neden ber olmasın? Bu tek hecelik kelimenin benim bildiğim hiç bir karşılığı yok. söylemesi kolay, kulağı da tırmalamıyor. İste Türkçe için yepyeni bir kök.* "Uydurma" mı diyorsunuz? Farz edin ki siz doğmadan önce uydurulmuştu. Simdi, computing yerine ber kökünden türettiğimiz berim, computation yerine de berimleme kelimelerini kullanabiliriz. Böylece Denning ile Metcalfe'nin kitabini Türkçe’ye kazandırmaya başlığından başlayabiliriz: "Hesaplamanın Ötesinde: Berimin Gelecek Elli Yılı".

Bu kökten türeteceğimiz birçok kelime olacak. Önce hesaplama ve berimleme adlarıyla andığımız süreçlerin farklılığını ortaya koyalım. Temel ayrım, hesaplamanın dışa kapalı, berimin ise dışa acık bir süreç olmasıdır. Açıklayalım:

Bir hesaplamanın çevresiyle alışverişi başlangıçta girdilerin alınıp sonuçta çıktıların verilmesiyle sinirlidir. Aradaki zaman dilimi içinde çevreyle bir iletişimi yoktur. Oysa bir berim çevreyle sürekli bir etkileşim içinde bulunabilir. Örnek olarak bir doğrusal optimizasyon programının hesaplama yaptığını, bir sohbet (chat) programının berimleme yaptığını söyleyebiliriz. Berim, özel bir durum olarak hesaplamayı içermektedir. Diğer bir deyişle her hesaplama bir berimdir; bunun tersini kanıtlamak ise güç, belki de imkansız görünmektedir. Bu yüzden, bir doğrusal optimizasyon programının berimleme yaptığını söylemekte, bu ayrımın önemsiz görüldüğü bağlamda sakınca yoktur.

Hesaplama aritmetik öğrendiğimiz ilk günlerden beri tanışık olduğumuz bir kavram. Sayıları, saymayı ve sayılarla diğer işlemleri yapmayı öğrenerek hesaplama dünyasına adımımızı atıyoruz. Cebir, diferansiyel ve integral kalkulus bu yolculuğun sadece birer durağı: hesaplamayı daha karmaşık nesnelerle yapıyoruz sadece. Bu ve benzeri hesapları bilgisayar kullanarak yapmaya başlayınca bilgisayarı bir hesaplama aracı olarak tanıyoruz. Hesaplama yöntemlerimizi de algoritma olarak adlandırıyoruz.

Oysa sadece oyun programları bile bize bilgisayarın hesaplama aracı olmakla sınırlanamayacağını gösteriyor. Bu sınırlamayı ortadan kaldıran temel etken bilgisayarın hesaplama yeteneğine eş düzeyde önemli olan girdi/çıktı yapma yeteneğinden başka bir şey değil.

Bu iki kavramı bir de programlama paradigmaları acısından yorumlayalım.

Genel olarak, bir fonksiyonel programın (örneğin Haskell dilinde), hesaplama yaptığını, buyurgan (imperative) bir programın (örneğin C dilinde) berimleme yaptığını söyleyebiliriz. Buyurgan programı, tüm girdi işlemlerini program yürütümünün başında yapmak üzere kısıtlayabilirseniz, bu programın bir hesaplama yaptığını da söyleyebilirsiniz. Oysa program doğası gereği etkileşimli ise (bir süreç denetim programı gibi), böyle bir kısıtlama mümkün görülmemektedir. Berimleme kavramının genişletilmiş bir hesaplama kavramına indirgenip indirgenemeyeceği acık bir problemdir.

İsin bir yönü de gönderimsel şeffaflık (referential transparency) ile ilgilidir: Aynı sonucu veren iki alt-hesaplamayı herhangi bir ana hesaplama içinde ana hesaplamanın sonucunu etkilemeksizin değiş tokuş edebilirsiniz. Bu gönderimsel şeffaflıktır --modülerliğin ideal biçimi. Oysa iki berimlemenin denkliğinin nasıl tanımlanacağı bile açık değildir. Buradaki zorluğu görmek için iki C (ya da Pascal vs.) fonksiyonunun denkliğini tanımlamaya çalışın; global değişkenlerin olabileceğini ve bunların girdi komutlarından etkilenebileceğini de aklınızdan çıkarmayın. Genel olarak, berimlemede gönderimsel şeffaflık yoktur. Bu noktayı başka fiyakalı sözlerle vurgulamak istersek, bir hesaplamanın dışsal (extensional) olarak, bir berimlemenin ise içsel(intentional) olarak tanımlandığını söyleyebiliriz. Gözleyeceğimiz bir farklılık da bir hesaplamanın sonlu sayıda adım atılarak tamamlanmasına karşın bir berimlemede böyle bir şartın aranmamasıdır. Demek ki berimleme bir algoritmanın gerçekleştirimi olmayabilir.

Ber kökünün bize daha neler getireceğine bakalım. Birçok bilim dalı tatminkar karşılıklara kavuşacak. İngilizce’de computing science, computer science veya informatics olarak adlandırılan bilim dalına biz berbilim ya da çift anlamlılığı göze alıp sadece berim diyebiliriz. Bu bilim dalının teknolojik uygulamalarına berim mühendisliği dememiz mümkün. Bu durumda ilk olarak informatics yerine önerilmiş olan fakat günümüzde bilgi teknolojileri anlamında da kullanılan bilişim deyimi mevcut ve eski anlamlarını gönül rahatlığıyla terk edebilir ve bilme kavramıyla ilişkili yeni anlamlara yelken açabilir. Örneğin, cognitive science karşılığı bilişsel bilimler deniyor; o halde bilişim niçin cognition veya bununla ilgili bir anlamı karşılamasın? Disiplinler arası uygulamalı bir dal olan computational science and engineering, rahatlıkla berimsel bilim ve mühendislik deyimiyle karşılanabilir. Computational linguistics yerine berimsel dilbilim, computational fluid dynamics yerine berimsel akışkanlar mekaniği, veya berimsel olanın akışkanlar değil de mekanik bilimi olduğunu vurgulamak istersek akışkanların berimsel mekaniği diyebiliriz. Öte yandan, hesaplamalı akışkanlar mekaniği deyiminin ne kadar yetersiz kaldığını gözleyiniz: Sanki hesaplama yapmayan bir akışkanlar mekanikçisi olabilirmiş gibi. Bilgisayarlı dilbilim deyimindeki yüzeyselliğe bakınız: Sanki önemli olan belirli bir aleti kullanmakmış gibi. Oysa hangi alan olursa olsun araştırmada berimsel bir paradigmanın benimsenmesidir ilginç olan.

Ber kökünden türetebileceğimiz bir diğer isim, computer yerine bergeç -böylece bilgisayarın pabucu dama atılmış oluyor. Bilgisayar varken bergeç önerisini ortaya atmak abesle iştigal etmek sayılabilir. Unutmayın ki bir zamanlar computer yerine elektronik beyin deniyordu. Aradan gecen zaman içinde bilgisayarın bilgi saymadığı da anlaşılmıştır sanırım. Evet, o bermek için kullandığımız bir araç: bergeç. Belki de bu iki terim kardeşçe bir arada yasarlar: Bilgisayar bir kösede tek basına oturup "bilgileri sayarken", bergeç diyelim ki çamaşır makinesinin bir parçası olarak su sıcaklığını ayarlar.

Ber kökünün kullanım alanı bulabilecek bütün türevlerini bugünden kestirmemiz mümkün değildir. Belki berim ile iletişimin kaynaşmasını ifade eden tele-informatics ya da telematics yerine berişim deriz. Berme eyleminin gerçekleştirdiği bir süreç olan berimi değil de bu sürecin dış dünyada yarattığı etkiyi vurgulamak için berge kelimesini kullanabiliriz sözgelimi. Bergenin İngilizce’si ne olur, bunu da onlar düşünsün. Mizah yapmak isteyenler için de yol açık: Berimdeki mantıksal hatalara bere denir.

Aydınlanmacı bir yaklaşımla bakarsanız Türkçe’de sadeleşme hareketinin gerekçesi sudur: Kavramlar arasındaki ilişkilerle bu kavramlara ad olan kelimeler arasındaki türetim ilişkileri koşut olduğu takdirde kavramların ve aralarındaki ilişkilerin anlaşılması kolaylaşır, kavram kargaşası azalır. Umulan kavramsal açıklığı yakalamak için köklerin anlamını ve türetme eklerinin işlevlerini bilmek yararlıdır. Örneğin hesap, muhasip, muhasebe, mahsup gibi kelimelerin aynı kökten nasıl türetildiğini bilirseniz bu kavramlar arasındaki ilişkiyi hemen kavrarsınız. Ancak bunun için Arapça kelime türetim kurallarını öğrenmeniz gerekir. Oysa saymak eyleminin ne olduğunu bilen bir Türk çocuğuna, sayaç denen şeyin ne olduğunu anlatmakta zorlanmazsınız. Türetilen Türkçe terimleri öğrenmek öylesine kolaydır ki yeni bir terim duyan bunun anlamını önceden bildiğini sanır! Örnek mi? Berim kavramını da içeren process anlamındaki süreç kelimesini süre anlamında kullananları hatırlayınız.

"Bilim dili olarak Türkçe" sıkça seslendirilen bir slogan. Ne var ki Türkçe’nin kok hazinesi olduğu gibi kalacak olursa gerçekleşmeyecek bir rüya. Mevcut kökler yeterince yüklüdür ve bunlara daha fazla yüklenmek kavram kargaşasına yol açmaktadır. Türkçe’nin bir bilim dili olarak gelişmesinin yolu kök "uydurmaktan" geçiyor. Türkçe’nin zengin ek olanakları gerisini halledecektir.
* Ber kökünü "uydurma" şerefi Onur Tolga Şehitoğlu'na aittir.
--
Bu yazı daha önce ODTÜ Bilgisayar Topluluğu Bülteninin ilk sayısında yayınlandı. (Şubat 1998)