1 Aralık 1986 Tarihli Commodore Gazetesi Sayfa 21

1 Aralık 1986 tarihli Commodore Gazetesi Sayfa 21
Metin içeriği (otomatik olarak oluşturulmuştur)

İlginç Bir Programlama Tekniği: Ayhan KALAYLIOĞLU RECURSTON, bilgisayar programlama dilinde kısaca kendi kendini çağırabilen altprogramları ifade eder. Şimdi şöyle bir soru akla gelebilir. Bir altprogram nasıl oluyor da kendi altprogramı oluyor; çelişki yok mu; sı- nırı nerede, kim ve nasıl belirliyor? Aslında olaya paniğe kapılmadan sakince yaklaşınca konu daha iyi an- laşılıyor. Bu programlama tekniği bil- hassa dallanıp budaklanan işlemlerin çözümünde kullanılıyor. RECURSİON olayını açıklamadan önce bilinmeyen ya da unutmuş olan- lar için altprogram olayının detayla- rını açıklayalım. Bilindiği gibi altprogram bir prog- ram parçasıdır. Başka bir program ta- rafından çağırılabilir ve altprogramın bittiğini belirten bir emirle (RETURN emri) asıl programa geri döner. Alt- programların başka bir özelliği de bir- çok altprogramın birbirlerini çağıra- bilmesi ve sırayı karıştırmadan doğ- ru olarak geri dönebilmesidir. Bu özellik sayesinde birçok program da- ha derli toplu, anlaşılır bir biçimde ya- zılabilmektedir. Modüler programlama denilen ola- yın temel taşlarından biri de budur. Bütün yapılan işlerin sınırları belirle- nir ve hepsi ayrı altprogramlara bö- lünür. Böylece ufacık bir programla birçok işin halledilmesi mümkün olur. Makine dilinde programlama bilen- leriniz veya başka diller kullanmış olanlarınızın duymuş olabileceği bir olay bu sorunun başlıca çözüm anah- tarıdır. Çözüm 'STACK' (yığın, bil- gi yığını) denilen bir veri yapısı saye- sinde sağlanmıştır. Stack'ı bilgilerin yazılıp üstüste konduğu sayfalara benzetebiliriz. En son yazılmış bilgi ve üstte olacağı için ilk olarak ele o ge- Recursion lecektir. Yığının (stack) temel çalışma prensibi de budur; *“LAST IN FIRST OUT". (Yığına en son atılan bilginin ilk önce çıkması prensibi.) Altprogram olayına dönersek; BA- SIC dile GOSUB emrine rastladığın- da altprogramın geri döneceği adresi yığına atar ve işlemin geri kalan kıs- mı GÖTO emrinin aynısıdır. Altprog- ram içinde ise RETURN emrine rast- ladığınızda adres yığından alınır ve program oradan devam eder. Böyle- ce geri dönüş işlemi doğru bir biçim- de gerçekleşmiş olur. zılir.Sırasını ve yerini karıştırmamak. için bir göstergeç kullanılır (stack po- inter). Bu göstergeç bir sonraki bilgi- nin nereye yazılacağını gösterir. Yeni bir bilgi yazılırken bu bilgi yı- ğinın ucuna göstergeç vasıtasıyla ek- lenir ve hemen ardından göstergeç bir artırılır. Yığından bilgi alındığında tam ters işlem gerçekleşir. Onca yığın göstergeci bir eksiltilir. Hemen ardın- dan bilgi yığından göstergeç vasıtasıy- la okunur. Dönelim RECURSION olayına: RECURSİON'da aymı altprogramlar- PROBLEMİN ÇöZzüMü GEÇEN ZAMAN <SAAT,DAKİKA,SANİIYE): BOOAOO8 BAŞLANGIÇ ŞEKLİ Mokakakokbokoleoğrooğeok ol ojr *5 * YAt 4444 * mA4t44 * * * * O *4tk AAA * H44k Kt * kt44A HA44A * * * * * * 44 * H4t * * E* o akoklakkoğe öğe öle oe of ol ÇöZzüLMÜŞ ŞEKLİ Mokokakokokbakkokeole ol ol ol *SCCCC * KAHAACOAAAA * KA4HAAC * * * C4t 44t 4 MA 4ACOA 444 —t CCCCCOC * AAA HADK * * *CCCC4 444 AOAt * *CCCE * a okalskeoklolcokeöke lll ol İki olayı birleştirip incelersek; geri dönüş adresleri peşpeşe birbirleri üze- rine yığılacak, fakat sıraları geri dö- nüş açısından yorumlandığında doğ- ru olacaktır. Böylece istenilen seviye- de derinliklere inen altproğramlar ya- zılıp yürütülebilir. Yığının fiziksel yapısına gelince: Yı- ğın bildiğimiz hafızanın belli bir böl- gesidir. Bilgiler hafızaya peşpeşe ya- da olduğu gibi yığın tipi veri yapıları- na ihtiyaç vardır. Bu yığın yalnızca ge- ri dönüş adreslerini içermez; aynı za- manda programın her kendini çağırı- şında içinde bulunduğu durumu gös- teren bilgileri de içermelidir. Böylece altprogram kendi kendine (bir üst se- viyeye) geri döndüğü zaman kaçıncı seviyede ve ne durumda bulunduğu- nu hatırlayacaktır. Programımız bir 21

Bu sayıdan diğer sayfalar: