C. R. Blair
Department of Defense
Washington 25, D.C.
Birçok yüksek hızlı dijital bilgisayarın zamanının yaklaşık üçte biri, yeni programlardaki hataların giderilmesine ayrılmaktadır. “Hata ayıklama”, insanların yanılabilirliğinin ve bilgisayarların kelimesi kelimesine çalışmasının zorunlu bir sonucudur. Çünkü makine yalnızca kendisine tam olarak ne talimat verildiyse onu yapabilir; oysa esneklik için tasarlanmış olan insan programcısı, bunları dışlamak için elinden geleni yapmasına rağmen kodlamasına “hataların” sızdığını fark eder.
Dijital bilgisayar zamanı hâlâ pahalıdır. En vicdanlı programcılar bile, sırada nereye bakacaklarına karar verirken makinenin boşta kalmasına izin vererek birçok değerli dakikayı boşa harcar.
Birçok bilgisayar kurulumunda, hata ayıklama maliyetini düşürmek için sert önlemler benimsenmiştir. Örneğin, bazı programcılar kendi problemlerini çalıştıran makineye asla dokunmazlar. Yeni bir program bir aracıya verilir; bu kişi programı durma ya da arıza noktasına kadar çalıştırır ve o andaki bellek içeriğini programcıya geri verir. Programcıdan, bu çıplak verilerden ölüm nedenini keşfetmesi beklenir. Kabul etmek gerekir ki, böyle bir yöntem bilgisayar zamanından tasarruf sağlar; aynı zamanda kabul etmek gerekir ki, daha fazla programcı zamanı gerektirir ve problemin olgunlaşma süresini uzatır.
Aslında kimse zavallı programcıyla pek ilgilenmez; ne de olsa programcı zamanı, bilgisayar zamanının maliyetinin çok küçük bir bölümüne satın alınabilir. Ancak sık sık, aceleyle yapılması gereken bir problem ortaya çıkar; o zaman verimli yöntemler unutulur ve programcı konsolun başında oturup ışıklara bakar. Çünkü program hatalarını bir bilgisayar kadar hızlı saptayabilecek hiçbir şey yoktur ve uygun düğmelerin parmakların ucunda olması kadar hata ayıklamayı teşvik eden başka bir şey de yoktur.
Her iki sistemin en iyi özelliklerini birleştirmenin maliyeti ne olur? Şaşırtıcı derecede az. Giriş-çıkış donanımının bir kopyası, biraz ek düşük hızlı bellek ve işlem biriminden ayrılabilen bir konsol, konsol üzerinden hata ayıklamanın avantajlarını, harici hata ayıklama fiyatlarından çok az daha yüksek bir maliyetle sağlayacaktır. Çünkü bu öğeler dakika başına birkaç kuruşa satın alınabilir; ancak onların satın alınması, dakika başına dolarlarla ölçülen bilgisayarın daha dolu kullanılmasına olanak tanır.
Makine bir operasyonel problem üzerinde çalışırken, arıtılmamış bir programla bir programcı gelir. Bantını (ya da kartlarını) yardımcı depolamaya yükler. Ardından çalıştırmaya hazır olduğunda başlat düğmesine basar. Parmağını çekmeden önce bilgisayar operasyonel programı durdurmuş, ana depolamanın ve yazmaçların içeriğini yardımcı depolamanın içeriğiyle değiştirmiş ve yeni programı yürütmeye başlamış olur. Yeni program durur durmaz ya da başarısız olur olmaz yardımcı depoya yönlendirilir; operasyonel program geri çağrılır, kesintiye uğradığı yerden yeniden başlatılır (çünkü bir bilgisayar, depolamadaki her şey geri yüklendiği sürece ardışık komutlar arasındaki zaman ya da meydana gelen olaylardan etkilenmez) ve programcı hata ayıklamaya devam etmek için düğmeye yeniden basana kadar çalışmayı sürdürür.
Bu tahterevalli eylemi, ana işlem biriminin işlevini bir işten diğerine kaydırır: hata ayıklama sırasında yeteneklerini gerçekten kullanabildiği zaman programcıya, kullanamadığı zamanlarda ise operasyonlara. Böylece programcı, hataları bulmak için bilgisayarı kullanma kolaylığına sahip olur; operasyonlar ise programcının bir sonraki adımda ne yapacağına karar verdiği uzun ve sık aralıklar boyunca makineden yararlanır.
Notlar
- Otomatik kodlama teknikleri hata ayıklama miktarını azaltabilse de, onu ortadan kaldıramaz.
- Mevcut birçok makinede yazmaçların göstergelerinden ayrılması aşırı derecede pahalı olurdu; ancak modern transistörlü bilgisayarlar genellikle bu işlevi kolayca yerine getirecek şekilde uyarlanabilen ayrı gösterge sürücüleri gerektirir.
- Yardımcı depolama için bir tambur kullanılıyorsa yaklaşık saniyenin otuzda biri.
- Elbette gerçek zamanlı programlar hariç.