🎓 Bounlu tarafından hazırlandı
25.283 görüntülenme

Yığın ve Çağrı Kuralları Nedir?

Bilgisayar mühendisliğinde, programların çalıştırılması sırasında fonksiyon çağrılarının yönetilmesi kritik bir öneme sahiptir. Bu yönetim, yığın (stack) adı verilen bir bellek yapısı ve çağrı kuralları (calling conventions) ile sağlanır.

Kısa cevap

Yığın, fonksiyon çağrılarında parametrelerin, yerel değişkenlerin ve dönüş adreslerinin geçici olarak saklandığı bir veri yapısıdır. Çağrı kuralları ise bu bilgilerin yığına nasıl yerleştirileceğini ve fonksiyonlar arasında nasıl aktarılacağını belirleyen standartlardır.

01

Adım adım çözümlü örnekler

Basit bir fonksiyon çağrısı örneği ile yığın ve çağrı kurallarını açıklayınız.

Ana fonksiyondan `fonksiyonA` çağrılır ve bazı parametreler gönderilir.Çağrı kuralına göre parametreler yığına itilir (push).Dönüş adresi (ana fonksiyonun `fonksiyonA`'dan sonraki komutu) yığına itilir.`fonksiyonA` çalışmaya başlar, yerel değişkenlerini yığına ekleyebilir.`fonksiyonA` tamamlandığında, yerel değişkenleri yığından kaldırılır.Dönüş adresi yığından alınır ve program oradan devam eder.Parametreler yığından temizlenir (çağrıyı yapan veya çağrılan fonksiyon tarafından).

İç içe geçmiş fonksiyon çağrıları (örneğin `fonksiyonA`'nın `fonksiyonB`'yi çağırması) yığına nasıl yansır?

Ana fonksiyon `fonksiyonA`'yı çağırır, parametreler ve dönüş adresi yığına konur.`fonksiyonA` çalışırken `fonksiyonB`'yi çağırır.`fonksiyonB` için yeni parametreler ve `fonksiyonA`'ya dönüş adresi yığına konur.Yığın, en son çağrılan fonksiyonun bilgilerini en üstte tutar (LIFO - Last In, First Out).`fonksiyonB` tamamlanınca, `fonksiyonA`'ya dönüş adresi kullanılır.`fonksiyonA` tamamlanınca, ana fonksiyona dönüş adresi kullanılır.
02

Bilgi kartları

03

Mini test

S1.Bir fonksiyon çağrıldığında, programın kaldığı yerden devam etmesini sağlayan bilgi nereye kaydedilir?

Doğru cevap: A. Dönüş adresi, yani fonksiyon bittikten sonra programın kaldığı yer, yığına kaydedilir.

S2.Aşağıdakilerden hangisi çağrı kurallarının (calling conventions) bir parçası DEĞİLDİR?

Doğru cevap: D. Hangi fonksiyonun önce çağrılacağı programın mantığına aittir, çağrı kurallarının görevi değildir.

S3.Yığın (Stack) veri yapısının temel çalışma prensibi nedir?

Doğru cevap: B. Yığın, LIFO (Last In, First Out) prensibiyle çalışır.
📄Bu konuyu PDF çalışma kağıdı olarak indirKonu özeti + 10 soru + cevap anahtarı — sınıfta paylaş, yazdır.
04

Sık yapılan hatalar

Fonksiyon çağrılarında parametreler ve dönüş adresi heap belleğe kaydedilir.Doğrusu: Fonksiyon çağrılarında parametreler, dönüş adresi ve yerel değişkenler yığına (stack) kaydedilir.

Çağrı kuralları, programın hangi fonksiyonun daha hızlı çalışacağını belirler.Doğrusu: Çağrı kuralları, fonksiyonlar arasındaki veri iletişimini ve bellek yönetimini standartlaştırır.

05

Sıkça sorulan sorular

Yığın taşması (stack overflow) nedir?

Yığına sürekli olarak veri eklenmesi ve yığının ayrılan bellek alanını aşması durumudur. Bu durum genellikle sonsuz veya çok derinlemesine fonksiyon çağrılarından kaynaklanır ve programın çökmesine neden olur.

Farklı programlama dilleri aynı çağrı kurallarını mı kullanır?

Hayır, farklı programlama dilleri veya aynı dilin farklı derleyicileri/platformları farklı çağrı kuralları kullanabilir. Bu nedenle, farklı dillerden veya ortamlardan gelen kodların birlikte çalışması için çağrı kurallarının uyumlu olması gerekir.

Yığın ve çağrı kuralları neden önemlidir?

Bu mekanizmalar, programların doğru çalışmasını, fonksiyonların birbirini güvenli bir şekilde çağırabilmesini ve bellek yönetiminin verimli olmasını sağlar. Modern programlamanın temel yapı taşlarındandır.

İlgili konular