بسته بندی با زیربرنامه‌ها

از ویکی جامع پردیس دانشگاهی دانشگاه قم
پرش به: ناوبری، جستجو
طراحی و پیاده سازی زبان های برنامه نویسی
مقاله بعدی:درس:طراحی و پیاده سازی زبان های برنامه نویسی
مقاله قبلی:انواع داده‌ی انتزاعی

زیر برنامه:

یک عملیات انتزاعی است که توسط برنامه نویس تعریف می‌شود و دو دیدگاه از زیر برنامه در اینجا مهم است.

۱. در سطح طراحی برنامه.
۲. در سطح زبان.

مشخصات زیر برنامه:

۱. نام زیر برنامه.

۲. اعضای زیر برنامه: به تعداد آرگومان‌ها، ترتیب و نوع هرکدام از آن‌ها. تعداد نتایج و ترتیب آن‌ها باید مشخص شود.

۳. عملیاتی که توسط زیر برنامه انجام می‌شود.

رویه یا زیرروال:

اگر زیربرنامه بیش از یک مقدار را برگرداند یا آرگومان‌های خود را تغییر دهد. رویه یا زیرروال نامیده می‌شود.


نکته
برچسب‌های زیر سه روش برای ارسال آرگومان‌ها به زیربرنامه است:
1. in: آرگومانی را مشخص می‌کند که توسط زیر برنامه تغییر نمی‌کند.
2. in-out: آرگومانی را مشخص می‌کند که می‌تواند اصلاح شود.
3. out: نتایج خروجی را مشخص می‌کند.


تعریف و فرخوانی زیربرنامه:

تعریف یک زیر برنامه خاصیت ایستای آن است. درهربار صدا زدن زیربرنامه حین اجرای برنامه یک سابقه فعالیتی از زیربرنامه پدید می‌آید. پس از خاتمه یافتن زیربرنامه این سابقه‌ی فعالیت از بین می‌رود و اگر فراخوانی دیگری صورت گیرد سابقه‌ی فعالیت جدیدی ایجاد می‌شود. ممکن است چندین سابقه‌ی فعالیت از یک زیربرنامه وجود داشته باشد.

تعریف زیربرنامه:

مطالبی که در برنامه نوشته می‌شود، تنها اطلاعاتی است که در زمان ترجمه وجود دارد. یعنی نوع متغیرهای زیربرنامه مشخص است ولی مقادیر یا محل آن مشخص نیست.


نکته
هر زیربرنامه دو فضا یا دو الگو دارد:

۱. بخش ایستا که سگمنت کد نام دارد و حاوی ثابت‌ها و کد اجرایی است.این بخش در حین اجرای زیربرنامه باید ثابت باشد. لذا یک کپی ازآن می‌توان بین تمام فعالیت‌های زیر برنامه به اشتراک گذاشته شود.

۲.بخش پویا که رکورد فعالیت نام دارد و شامل پارمترها نتایج تابع و داده‌های محلی و ناحیه‌ی حافظه‌ی موقت و نقاط برگشت و هم‌چنین پیوندهایی برای مراجعه به متغیرهای غیر محلی است. ساختار این بخش برای تمامی فعالیت‌های زیربرنامه‌ها یکسان است اما مقادیر متفاوتی در آن‌ها وجود دارد، لذا هر سابقه‌ی فعالیت یک کپی مخصوص به خود از رکورد فعالیت دارد.



نکته
اندازه و ساختار یک رکورد فعالیت مورد نیاز برای یک زیربرنامه می‌تواند در زمان ترجمه تعیین شود.