في علوم الكمبيوتر، مكدس الاستدعاءات هو مجموعة بنية البيانات التي تخزين معلومات حول النشطة الوظائف الفرعية ل برنامج كمبيوتر. يُعرف هذا النوع من المكدس أيضًا باسم مكدس التنفيذ ، أو مكدس البرامج ، أو مكدس التحكم ، أو مكدس وقت التشغيل ، أو مكدس الماكينة ، وغالبًا ما يتم اختصاره إلى «المكدس» فقط. على الرغم من أهمية صيانة مكدس الاستدعاءات للتشغيل السليم لمعظم البرامج، إلا أن التفاصيل عادةً ما تكون مخفية وتلقائية في لغات البرمجة عالية المستوى. توفر العديد من مجموعات تعليمات الكمبيوتر إرشادات خاصة للتعامل مع الحزم. يتم استخدام مكدس الاستدعاءات لعدة أغراض ذات صلة، ولكن السبب الرئيسي لامتلاك واحد هو تتبع النقطة التي يجب أن يعيد كل روتين فرعي نشط التحكم إليها عند الانتهاء من التنفيذ. الروتين الفرعي نشط هو روتين تم استدعاؤه، ولكنه لم يكتمل بعد، وبعد ذلك يجب إعادة التحكم إلى نقطة الاستدعاء. يمكن أن تتداخل عمليات التنشيط هذه للروتينات الفرعية مع أي مستوى (تكراري كحالة خاصة)، ومن هنا تأتي بنية المكدس. على سبيل المثال، إذا قام روتين فرعي codice_1 باستدعاء روتين فرعي codice_2 من أربعة أماكن مختلفة، codice_2 أن يعرف DrawLine مكان العودة عند اكتمال تنفيذه. لإنجاز ذلك، يتم دفع العنوان الذي يتبع التعليمات التي codice_2 إلى DrawLine ، "عنوان المرسل" ، إلى الجزء العلوي من مكدس المكالمات مع كل مكالمة. الوصف. نظرًا لأن مكدس المكالمات منظم ك مكدس، يقوم المتصل بدفع عنوان الإرجاع إلى المكدس، والروتين الفرعي المسمى، عندما ينتهي، يسحب أو ينبثق عنوان الإرجاع من مكدس المكالمات وينقل التحكم إلى هذا العنوان. إذا استدعى روتين فرعي يسمى روتينًا فرعيًا آخر، فسوف يدفع عنوان إرجاع آخر إلى مكدس المكالمات، وهكذا، مع تراكم المعلومات وتفكيكها كما يملي البرنامج. إذا استهلك الدفع كل المساحة المخصصة لمكدس الاستدعاءات، يحدث خطأ يسمى تجاوز سعة المكدس، مما يؤدي عمومًا إلى تعطل البرنامج. تسمى إضافة إدخال روتين فرعي إلى مكدس المكالمات أحيانًا «لف»؛ على العكس من ذلك، فإن إزالة الإدخالات هي «فك». عادة ما يكون هناك مكدس استدعاء واحد مرتبط ببرنامج قيد التشغيل (أو بشكل أكثر دقة، مع كل مهمة أو سلسلة من العمليات)، على الرغم من أنه يمكن إنشاء مكدسات إضافية لمعالجة الإشارات أو تعدد المهام التعاوني (كما هو الحال مع setcontext). لأنه ليس هناك واحد فقط في هذا السياق أهمية، فإنه يمكن أن يشار إليها "على" أنها كومة (ضمنا، «المهمة»)؛ ومع ذلك، في لغة البرمجة فورت الوصول إلى "كومة البيانات" أو "المعلمة كومة" أكثر صراحة من مكدس الاستدعاءات ويشار إلى "كومة" في لغات البرمجة عالية المستوى، عادةً ما تكون تفاصيل مكدس المكالمات مخفية عن المبرمج. يتم منحهم حق الوصول إلى مجموعة من الوظائف فقط، وليس الذاكرة الموجودة على المكدس نفسه. هذا مثال على التجريد. من ناحية أخرى، تتطلب معظم لغات التجميع من المبرمجين المشاركة في معالجة المكدس. تعتمد التفاصيل الفعلية للمكدس في لغة برمجة على المترجم ونظام التشغيل ومجموعة التعليمات البرمجية المتاحة. وظائف مكدس المكالمات. كما هو مذكور أعلاه، فإن الغرض الأساسي من مكدس المكالمات هو "تخزين عناوين الإرجاع" . عندما يتم استدعاء روتين فرعي، يجب حفظ موقع (عنوان) التعليمات التي يمكن من خلالها استئناف روتين الاتصال لاحقًا في مكان ما. استخدام مكدس لحفظ عنوان المرسل له مزايا مهمة مقارنة باتفاقيات الاستدعاء(اصطلاح الاستدعاء) البديلة. الأول هو أن كل
 مجموعة بنية البيانات التي تخزين معلومات حول النشطة الوظائف الفرعية ل برنامج كمبيوتر
ما هو مكدس الاستدعاءات في علوم الكمبيوتر وما هي وظيفته؟


يتم استخدام مكدس الاستدعاءات لعدة أغراض ذات صلة، ولكن السبب الرئيسي لامتلاك واحد هو تتبع النقطة التي يجب أن يعيد كل روتين فرعي نشط التحكم إليها عند الانتهاء من التنفيذ
ما هي الأغراض المختلفة التي يمكن استخدام مكدس الاستدعاءات لتحقيقها؟


إلا أن التفاصيل عادةً ما تكون مخفية وتلقائية في لغات البرمجة عالية المستوى
ما هي المشكلة التي يحلها مكدس الاستدعاءات في البرامج؟


 يحدث خطأ يسمى تجاوز سعة المكدس
ما هو تأثير تجاوز سعة المكدس على أداء البرامج؟


تعتمد التفاصيل الفعلية للمكدس في لغة برمجة على المترجم ونظام التشغيل ومجموعة التعليمات البرمجية المتاحة
كيف تتفاعل اللغات البرمجية مع مكدس الاستدعاءات وما هي التفاصيل التي يجب على المبرمجين أن يعرفوها؟


 تسمى إضافة إدخال روتين فرعي إلى مكدس المكالمات أحيانًا «لف»؛ على العكس من ذلك، فإن إزالة الإدخالات هي «فك»
كيف يمكن للمبرمجين إضافة وإزالة إدخالات في مكدس الاستدعاءات؟

