Yaptığım bir soru kağıdı için yığın kareleriyle ilgili bir sorum var:Ürettiğim bu yığın çerçevesi doğru mu?
Nada'da (şu ana kadar yapılmış bir dil) aşağıdaki işlevi göz önünde bulundurun:
function f(x,y)
begin
var z
z := y - x;
return z * z;
end;
işlev şu şekilde çağrılabilir:
n := f(a+2,b*3)
Yanıtınızı göstermek için şemaları kullanarak, yukarıdaki işlev çağrısı yürütüldüğünde olay dizisini açıklayın, yığın çerçevesinin işleve girişte nasıl oluşturulduğunu ve çıkışta nasıl yok edildiğini gösterir. ondan, ve x ve y parametrelerine ve z yerel değişkenine erişirken temel işaretçi yazmaçının nasıl kullanıldığı.
Bu soruya cevap verdim ve bu benim ürettiğim yığın çerçevesi:
Sadece birisinin yanlış olduğunu düşündüğümde bunu düzeltmesini istiyorum ... ya da yeni Yığın çerçevesi (eğer zamanınız varsa). Yardımı gerçekten takdir edeceğim.
Bu "Nada" dili tamamen yığın tabanlı veya aynı zamanda kayıt tabanlı olduğunu varsayarak mı? –
@Heandel, bence ikisinin de tamamen olduğuna emin değilim. Nada, kursta kullanmam gereken bir programlama dilidir. –
"Nada" ve bunun uygulanması hakkında çok fazla şey bilmeden bunun yanıtlanabileceğinden emin değilim. İlk baş eğme momentim, hem yeni hem de eski yığın çerçevesinde “+ 2”, “b * 3” ve “Z” harflerinin bulunduğu yerdir. Neden olduğundan emin değilim. Ve b * 3'ün b + 3'ten bilerek farklı mıdır? Bu benim kendi önyargılarımdır, fakat başka bir bilgi içermiyorsa, Nada'ya bu bağlamda tipik bir C uygulaması gibi davranmaya eğilimliydim, ki bu durumda sizin hakkınızda ne olduğunu düşünmüyorum. 'f'' _from_ çağrılan işlev için kod olmadan. –