تالار گفتمان مانشت
قواعد static scoping و daynamic ??? - نسخه‌ی قابل چاپ

قواعد static scoping و daynamic ??? - amin1371 - 30 دى ۱۳۹۳ ۱۲:۲۵ ب.ظ

سلام
کسی میتونه در مورد قواعد static scoping و daynamic توضیح کامل و جامع بده ؟؟
خیلی تست ازش تو کنکور اومده ولی من خودم نمیدونم روش حلشو هر جا میبینی یجور حل شده

RE: قواعد static scoping و daynamic ??? - bluebaran - 30 دى ۱۳۹۳ ۱۲:۴۷ ب.ظ

(۳۰ دى ۱۳۹۳ ۱۲:۲۵ ب.ظ)amin1371 نوشته شده توسط:  سلام
کسی میتونه در مورد قواعد static scoping و daynamic توضیح کامل و جامع بده ؟؟
خیلی تست ازش تو کنکور اومده ولی من خودم نمیدونم روش حلشو هر جا میبینی یجور حل شده

حوزه ایستا :
حوزه پویا :
تو هردو حوزه که متغیر محلی یکی هست میمونه بحث رو متغیر غیر محلی
متغیر غیر محلی تو حوزه پویا ما باید رد فراخوانی ها رو دنبال کنیم
مثلا اگه متغیر مثل x داریم داخلی زیربرنامه p5
و داخل خودش تعریف نشده و پارامتر رسمیش هم نیست پس یک متغیر غیر محلی هست و باید بگردیم ببینیم که کی فراخوانیش کرده
مثلا فک کن دنباله فراخوانی ما اینه main /p1/p3/p5
میریم p3 رو میگردیم ببینیم اعلانی ازش هست یا نه بود مقدارش میشه مقدار متغیر x
اگه نبود میریم و p1 رو میگردیم
اگه نبود تو main رو میگردیم
حالا تو حوزه ایستا ما به فراخوانی کاری نداریم و اینجا به تعریف کار داریم که زیربرنامه مثلا همین p3 تو چه زیر برنامه ای تعریف شده و همین طور تا آخر
مثلا main /p4/p3 رد تعریف زیربرنامه هست
و ما برای دستیابی به همون x غیر محلی باید رد تعریف رو بگیریم
اول p4 رو میگردیم داخلش تعریف شده بود که مقدارشو میگیریم اگه نبود میریم داخل main رو میگردیم

RE: قواعد static scoping و daynamic ??? - afagh.msm - 30 دى ۱۳۹۳ ۰۱:۱۲ ب.ظ

داخل حوزه ایستا ب تابع بالا دستیش نگا کنی و مثل ارث بری شی گراست ولی پویا دنباله زیر برنامه ها یکی یکی ب عقب برگرد تا جایی ک متغیرو پیدا کنی
مثلا:
این عکسی ک گذاشتمو ببین متوجه میشی چه میگم
حوزه پویا

مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


حوزه ایستا

مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.

داخل حل تستای این مبحث فقط دقت زیادی میخاد

RE: قواعد static scoping و daynamic ??? - amin1371 - 30 دى ۱۳۹۳ ۰۱:۳۹ ب.ظ

دست گلتون درد نکنه واقعا ممنون فهمیدم دوتا تستاشم حل کردم
من تازه عضو این انجمن شدم و تاحالا خیلی از سوالامو جوابشو گرفتم بازم ممنون از همه