Donald Knuth: "Bilgisayar Programlama Sanatı"nın Yazarı ve TeX'in Mucidi — Bilgisayar Biliminin Newton'u
1962'de bir doktora öğrencisi, "**bütün algoritmaları matematik temelinde sistematik biçimde anlatan bir kitap yazacağım**" dedi. 60 yıl sonra, Knuth'un 4 ciltlik *The Art of Computer Programming* eseri hâlâ bilgisayar biliminin en derin başvuru kitabıdır. Aynı adam, modern matematik yazımının standart aracı **TeX**'in de mucididir.

Bilgisayar bilimi henüz genç bir disiplindi: 1962. Modern bilgisayarlar IBM 7090 gibi devasa makinelerdi; programlama dili olarak FORTRAN'ı kullanan birkaç bin profesyonel vardı. Donald Knuth adlı 24 yaşında bir Caltech doktora öğrencisi, sıra dışı bir iddiada bulundu: bilgisayar bilimi öğrencileri için tüm algoritmaların matematiksel temellerini sistematik biçimde anlatan bir kitap yazacaktı.
Knuth, kitabı 7 ciltte tasarladı. The Art of Computer Programming (Bilgisayar Programlamasının Sanatı). 1968'de ilk cilt yayımlandı. Birkaç yıl sonra ikinci, üçüncü. Sonra Knuth bir şeyleri fark etti: matematik metinleri dizgi olarak kötü görünüyordu. Dizgi sistemleri o dönemde matematiği yetersiz işliyordu. Knuth, 1977'de kendi başka bir dev projeyle kitabı bıraktı: matematik dizgisi için bir bilgisayar sistemi yazmak.
Bu sistem: TeX. Bugün modern bilim camiasında neredeyse evrensel bir standarttır. Tüm matematik makaleleri, fizik makaleleri, bilgisayar bilimi makaleleri, çoğunlukla TeX ya da onun türevi LaTeX ile yazılır. Knuth'un ana eserine ara vermesinin meyvesi, modern bilim yazımının matematiksel altyapısı oldu.
Knuth, hâlâ — 87 yaşında — 4. cildin sonraki bölümlerini yazıyor. The Art of Computer Programming modern bilgisayar biliminin en derin teorik başvuru kitabı olarak duruyor.
Wisconsin'den Caltech'e
Donald Ervin Knuth, 10 Ocak 1938'de Wisconsin'de doğdu. Babası Lutheran kilisesi orgcusuydu. Donald, çocukluk yıllarından beri müzik ve matematikte aynı anda yetenekliydi.
Lise yıllarında Knuth'un yarışma kazandığı bir hikâye vardır. Ziegler's Giant Bar çikolata şirketi, bir reklâm yarışması açtı: "Ziegler's Giant Bar harfleri kullanılarak en fazla İngilizce kelime üreten" kazansın. Knuth, sözlüğü baştan sona okudu ve 4500 kelime buldu (ortalama yarışmacı 100-200 yapardı). Birinciliği kazandı; ödül, bütün okul için bir TV ve onun için cep parası. Bu, onun olağanüstü sistematik çalışma karakterinin erken bir göstergesidir.
Lisans için Case Institute of Technology (Cleveland)'a girdi. İlk yılında karşılaştığı yeni IBM 650 bilgisayar onu tutkulu yapacak değildi; ama makinenin manuelini okuduktan sonra, kendi kendine programlama öğrendi. 19 yaşında, bilgisayar için ilk profesyonel projesini yaptı: Caltech basketbol takımı için istatistik analiz programı.
Mezuniyetten sonra Caltech'te doktora. Burada matematikçi Marshall Hall'un öğrencisi oldu; kombinatorik ve algoritmalar üzerine doktora tezini tamamladı (1963).
The Art of Computer Programming başlıyor
1962'de Addison-Wesley yayınevi, Knuth'a "bilgisayar derleyicileri üzerine bir kitap yazar mısın?" diye sordu. Knuth bu fikre genişletmek istedi:
"Sadece derleyicileri değil, tüm bilgisayar algoritmalarını matematik temelinde sistematik biçimde anlatan büyük bir başvuru kitabı yazmak istiyorum."
Addison-Wesley'in kabul etmesi üzerine başladı. 7 ciltlik bir plan yaptı:
- Cilt 1: Temel algoritmalar (1968)
- Cilt 2: Sayısal algoritmalar (1969)
- Cilt 3: Sıralama ve arama (1973)
- Cilt 4: Kombinasyonel algoritmalar (planlandı, 1970'lerden bu yana yavaş yavaş yayımlanıyor)
- Cilt 5: Sözdizimi analizi
- Cilt 6: Bağlamdan bağımsız diller
- Cilt 7: Derleyici teknikleri
Şimdi, 60 yıldan fazla zaman sonra, sadece ilk 3 cilt tam basılı. Cilt 4 yazılıyor; ek kitapçıklar Knuth'un web sitesinde mevcut. 5, 6, 7 hâlâ planlama aşamasında. Knuth, ölmeden önce hepsini bitirmeyi umuyor.
The Art of Computer Programming, bilgisayar bilimi öğrencileri için temel olmuş, hatta kült bir başvuru kaynağıdır. Her sayfa, matematiksel sıkılık ve algoritmik içgörü bakımından son derece zengindir. Bilgisayar biliminin Newton'un Principia'sıdır.
Bill Gates, 1995'te bir röportajda şunu söyledi: "Eğer bana 'kendi başına bir programcı olarak kabul edilmek istersem, ne yapmalıyım?' diye sorsan, 'The Art of Computer Programming'i bitir' derdim. 'Eğer bunu yapabiliyorsan, lütfen bana özgeçmişini gönder.'"
Algoritmik analiz: Big O notasyonunun yaygınlaşması
Knuth'un en büyük matematiksel katkılarından biri, algoritma analizini bir matematik dalı olarak kurmasıdır. Algoritmaların performansını ifade etmek için Big O notasyonu zaten vardı (Bachmann-Landau, 1894); ama bilgisayar bilimine sistematik biçimde uygulayan Knuth oldu.
Knuth'un yaklaşımı:
- Bir algoritma için, her temel işlemin sayısını matematiksel olarak hesapla.
- (girdi büyüklüğü) büyüdükçe işlem sayısının nasıl büyüdüğünü ifade et.
- Farklı algoritmaları, asimptotik davranışlarına göre karşılaştır.
Bu, modern bilgisayar bilimi öğretiminin temel araştırma yöntemidir.
TeX (1977-1989)
1976'da Knuth, kitabının ikinci baskısının provalarını görünce şoke oldu: yeni dizgi sistemi (yazıcı, eski yüksek-kaliteli teknolojiyi kaybetmişti) matematik formüllerini kötü gösteriyordu. Knuth, bu konuda "ne yapabilirim ki?" diye düşündü; sonra cevabı kendi verdi: "Kendi dizgi sistemimi yazarım."
İlk plan altı ay sürecekti. Sonuçta 10 yıl sürdü. TeX sistemini ve onunla beraber gelen METAFONT font tasarım dilini geliştirdi. 1989'da TeX'in 3.0 sürümünü yayımladı; o günden bu yana TeX'in temel yapısı değişmedi.
TeX'in benzersiz özellikleri:
- Matematik formüllerinin son derece güzel görünmesi.
- Stabil: TeX'in bug sayısı son derece azdır; Knuth, her bulunan bug için artan miktarlarda nakit ödül vermek için meşhurdur (başlangıçta 2.56, 10.24 — her seferinde ikiye katlanıyor).
- Açık kaynaklı ve özgür: TeX, kaynak kodu ile birlikte serbestçe dağıtılır.
LaTeX (Leslie Lamport tarafından 1984'te geliştirildi), TeX üzerine inşa edilmiş daha kullanıcı dostu bir makro paketidir. Bugün dünya matematik ve bilim camiasının %95'inden fazlası, makalelerini LaTeX ile yazar.
Eğer bir doktora tezi, bir fizik makalesi, bir matematik kitabı görüyorsanız, büyük olasılıkla TeX/LaTeX ile yazıldı. Bu cümle bile dolaylı olarak Knuth'un mirasının altında yazıldı.
Edebi programlama (Literate Programming)
Knuth'un 1980'lerde önerdiği bir başka fikir: edebi programlama (literate programming). Klasik programlama, "bilgisayara ne yapacağını söyle, dokümantasyonu sonra ekle" şeklindeydi. Knuth'un önerisi tam tersiydi:
"Bir programı, bir insan okuyucu için yazılmış bir kitap gibi yazın. Ana metin, doğal dil açıklamasıdır; aralarda kod parçaları yer alır. Sonra bir araç hem dokümanları hem çalıştırılabilir kodu çıkarır."
Bu fikir, Jupyter Notebooks, R Markdown, Mathematica notebookları gibi modern araçlarda doğrudan ya da dolaylı olarak yaşar. Bilim insanlarının "hesabımı paylaşıyorum" tarzı belgeler yapması için temel yöntem oldu.
Knuth Cebri ve Algorithms
Knuth'un saf matematik katkıları da geniştir:
- Knuth-Morris-Pratt algoritması (1977): metin içinde örüntü arama. Modern arama motorlarının ve editörlerin temel araçlarından.
- Knuth-Bendix tamamlama algoritması: soyut cebirde otomatik teorem ispatlama için.
- Sürreel sayılar (surreal numbers): John Conway'in fikrini Knuth, 1974'te küçük bir kitapta popülerleştirdi. Sürreel sayılar, gerçek sayıların ve ordinal sayıların tek bir çatı altında genelleştirilmesidir.
- Iverson süzgeci ve diğer notasyonel yenilikler.
Turing Ödülü
Knuth, 1974'te bilgisayar biliminin "Nobel'i" sayılan Turing Ödülü'nü aldı. Atıf: "Çok cilt The Art of Computer Programming serisi başta olmak üzere, algoritma analizi ve programlama dilleri tasarımı alanlarına yaptığı büyük katkıları için."
Bugün Knuth, Stanford Üniversitesi'nde Emerit Profesör. Mahkemesinin pek çok ödülü vardır.
Kişisel hayat
Knuth'un sıra dışı bir alışkanlığı vardır: 1990'da, e-posta kullanmayı bıraktı. Açıklaması:
"E-posta günde belirli sayıda dakikamı alıyor; o zaman ne olur, oturup düşünür müyüm? Ben de oldum. E-postayı bıraktım."
Bugün, 87 yaşında, hâlâ Stanford'da çalışıyor. Her yıl birkaç defa konferans verir; web sitesinde TeX güncellemelerini ve The Art of Computer Programming'in yeni bölümlerini yayımlıyor. Web sitesini bizzat günceller.
Boş zamanlarında bilgisayar müziği yazıyor. Babası bir org çalıcısıydı; Knuth da kendi evinde özel bir pipe organ (kilise org tipi) yaptırdı. Bach'ın org parçalarını ve kendi bestelerini çalıyor.
Bir hayat dersi
Knuth'un hayatı, "bir tek konuya 60 yıl odaklanmak" sabırının ne kadar büyük bir sonuç verebileceğinin bilim tarihindeki en güzel örneklerinden biridir. 1962'de başladığı bir proje, hâlâ tamamlanmadı; ama yarım hâli bile bilgisayar biliminin temel başvuru eseri oldu.
Daha geniş bir hayat dersi: gerçekten büyük eserler, modaya, hız baskısına, kısa vadeli ödüllere aldırmadan yapılır. Knuth, internet trendlerine, AI hype'larına, sosyal medyaya hiç ilgi göstermeden, kendi konusuna sıkı sıkıya odaklanmış bir yaşam sürdü; sonuçta yaptığı eser, geçici trendlerin hepsinin üstünde duruyor.
Bir sonraki sefer bir matematik makalesinin güzel formüllerini gördüğünüzde, ya da bir algoritma kursunda "Big O notasyonu" duyduğunuzda, ya da Jupyter Notebook ile bir hesap yaptığınızda — bütün bunların arkasında bir adamın 60+ yıllık sabrı olduğunu hatırlayabilirsiniz. Donald Knuth, modern bilgisayar biliminin sessiz fakat dev kalbi.
Etiketler
Kendinizi Test Edin
Cevaplarınız profilinizde istatistik olarak saklanır.
1. Donald Knuth'un 1962'de başlattığı ve hâlâ tamamlanmamış olan büyük eseri hangisidir?
2. Knuth, 1977'de The Art of Computer Programming'e ara verip hangi büyük projeyi başlattı?
3. Knuth'un TeX'teki ünlü "bug ödülü" politikası nedir?
4. Knuth hangi yılda Turing Ödülü'nü (bilgisayar biliminin "Nobeli") aldı?
5. Knuth'un 1990'da yaptığı sıra dışı kişisel kararı nedir?
İlgili Yazılar
Brahmagupta: Sıfıra Kurallar Koyan ve Negatif Sayıları Borç Olarak Tanımlayan 7. Yüzyıl Hintlisi
628 yılında Brahmagupta, sıfırın aritmetiğini ve negatif sayıların kurallarını ilk kez sistematik biçimde yazdı. Borç-mülk metaforuyla negatif sayıları meşrulaştırdı, ikinci dereceden denklem formülünü genelleştirdi.
Bilim TarihiHypatia: İskenderiye'nin Son Büyük Kadın Matematikçisi ve Bir Çağın Sonu
M.S. 4. yüzyıl İskenderiye'sinde, dünyanın en büyük kütüphanesinin gölgesinde bir kadın geometri ve astronomi dersleri veriyordu. Hikâyesi, bir bilim insanının ötesinde, bir çağın bittiğini anlatır.
Bilim TarihiÉtienne Bézout: Fransız Donanmasının Matematik Hocası ve Adı Yanlış Yere Yapışmış Cebirci
Adı bugün her kriptografi dersinde geçen Bézout, hayatta sınava hazırlanan denizci adaylarına ders kitabı yazdı. Ünü, kendi bulmadığı bir teoremden geldi; kendi büyük teoremi ise nesiller boyunca anlaşılamadı.