ما هو الـstack ؟ تتكون الذاكرة من جزئين ألا و هما الـRAM و ROM و يكون موضع الـStack في الـRAM و هي الذاكرة المؤقتة.
ينقسم الـStack الى نوعين ... النوع الاول هو "User Defined Stack" وهذا النوع يتميز باستخدامه في لغات البرمجة.
بينما النوع الثاني هو جزء من الـRAM و يتم تقسيمه بناءً على نظام التشغيل المُستخدم.
لنوضح اكثر، إن مفهوم الـStack يشبه الى حد كبير الصندوق الذي ترتب بداخله الأشياء فوق بعضها و قاعدته التي تتحكم فيه هي "First In Last Out" اذ انه يتم في البداية اخراج الأشياء التى تم ادخالها في النهاية و يتم في النهاية اخراج الأشياء التى تم ادخالها في البداية. وظيفة ال Stack:
هي القدرة على اعادتك لسطر الكود المرغوب فيه بعد اتمام عملية الاستدعاء لدالة معينة حتى تستطيع استكمال تنفيد باقي الاوامر التى لم يتم تنفيذها بنفس الترتيب المرغوب فيه.
و لكن تكمن المشكلة عند حدوث recursion function اي انه سوف يتم استدعاء نفس الدالة عدة مرات متتالية مما يؤدي الى تزاحم الـstack الناتج عن عملية ادخال العناصر المتتالية الى الـStack بدون توقف .. وبالتالي عند امتلاء المساحة المخصصه للـstack يحدث خطأ شهير جدا و هو ال Stack Overflow.