BERİMSEL BİR DENEME
Halit Oğuztüzün
- 23 Mayıs 2005, EMO Bilgisayar Mühendisliği Dergisi
- Şubat 1998, ODTÜ Bilgisayar Topluluğu Bülteni
... "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)