Zahn'in yapısı - Zahn's construct

Zahn en yapı , içinde bilgisayar biliminin , yapılandırılmış için önerilen bir yapı olarak kontrol akış , ilk olarak tarif edilen bir bilgisayar programlama dillerinde Charles T. Zahn için 1974 yapı esas olarak bir uzantı olarak tarif mi yapıları döngü tanıyan çok sayıda aracı olan bir döngü tarafından sona erebilir . Örneğin, bir arama döngüsü, hedef bulunduğunda erken sona erebilir; veya arama başarısız bir şekilde tamamlandıktan sonra sona erebilir. Zahn'in yapısı, GO TOhangi durumla karşılaşıldığını belirlerken ifadelerden kaçınmak için kullanılabilir . Zahn bunu , döngüden sonra CASE benzeri bir yapıda durum göstergesi adı verilen yeni bir değişken türü ekleyerek yapar .

Donald Knuth , "Yapısal Programlama ile Git İfadeleri" adlı makalesinde, Zahn'in yapısının iki şeklini şu şekilde açıklamaktadır:

loop until <situation 1> or ... or <situation n>:
  <statement list 0>
repeat;
then <situation 1> => <statement list 1>;
 ...
     <situation n> => <statement list n>;
fi

ve:

begin until <situation 1> or ... or <situation n>:
  <statement list 0>;
end;
then <situation 1> => <statement list 1>;
 ...
     <situation n> => <statement list n>;
fi

Ayrıca belirli bir durum göstergesi belirlemek ve yapının gövdesinden çıkmak için bir ifade de olmalıdır.

Aşağıdaki basit örnek, belirli bir öğe için iki boyutlu bir tabloda arama yapmayı içerir.

exitwhen found or missing;
    for I := 1 to N do
        for J := 1 to M do
            if table[I,J] = target then found;
    missing;
exits
    found:   print ("item is in table");
    missing: print ("item is not in table");
endexit;

Modern programlama dillerinde istisna işleme için kullanılan Try-catch blokları , Zahn'in yapısının varyasyonlarıdır. En büyük fark, Zahn'in tekliflerinin kapsamının bir program içindeki ayrı döngülerle sınırlı olması, istisna işleme yetenekleri genellikle istisnaların bir çağrı yığınının derinliklerinden "atılmasına" ve yığında daha yüksek bir noktada "yakalanmasına" izin vermesidir .

Referanslar

  1. ^ Zahn, CT "Doğal yukarıdan aşağıya yapılandırılmış programlama için bir kontrol ifadesi" Programlama Dilleri Sempozyumu, Paris, 1974'te sunulmuştur.
  2. ^ Knuth, DE "Go To Tablolar ile Yapısal Programlama" Arşivlendi at 2013/10/23 Wayback Machine , Bilgisayar Surveys , Cilt 6, Aralık 1974, sayfa 275

Dış bağlantılar