0% found this document useful (0 votes)
8 views3 pages

PL (00 01) 2nd Final

Uploaded by

yalda.hajilito
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views3 pages

PL (00 01) 2nd Final

Uploaded by

yalda.hajilito
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

‫زمان‪ 135 :‬دقیقه‬ ‫آزمون پایان ترم طراحی و پیادهسازی زبانهای برنامه نویسی‬ ‫خرداد ‪1401‬‬

‫نمره‬ ‫شماره دانشجویی‪:‬‬ ‫سؤال نام و نام خانوادگی‪:‬‬


‫استفاده از هیچ منبعی در طول امتحان مجاز نمی باشد‪.‬‬ ‫•‬
‫آزمون از ‪ 9‬سؤال تشکیل شده است‪.‬‬ ‫•‬
‫در صورتی که در سؤالی با ابهام روبرو شدید‪ ،‬فرض خود را بنویسید و متناسب با آن جواب را ارائه کنید )در طول امتحان‬ ‫•‬
‫سؤال چندانی پاسخ داده نمی شود(‪.‬‬
‫پس از اتمام )در مدت ‪ 2‬ساعت و ‪ 15‬دقیقه(‪ ،‬بلفاصله نسبت به آماده سازی جواب وبارگذاری آن در قس@@مت پای@@ان ت@@رم‬ ‫•‬
‫تمرینهای درس اقدام نمایید )ذکر نام و نام خانوادگی فراموش نشود(‪ .‬پس از پایان وق‪44‬ت‪ ،‬مطل‪44‬ب جدی‪44‬دی اض‪44‬افه‬
‫نشود‪ 25 .‬دقیقه برای آپلود فایل در نظر شده است‪ ).‬شروع آزمون‪ - 15:00 :‬پایان ‪ - 17:15 :‬فرصت آپلود ت‪44‬ا‬
‫‪(17:40‬‬
‫الف(‪ Elliptical Reference‬در چه نوع دادهای مطرح میباشد و چیست‪(3) e‬‬ ‫‪1‬‬
‫ب(‪ Name Type Equivalence‬را تعریف کنید‪(2) .‬‬
‫ج(‪ Closure‬چیست و نوع حافظه ی متغیرهای محلی آن از چه نوعی باید باشد‪(3) e‬‬
‫‪14‬‬
‫د( تفاوت ‪ Coroutine‬و تابع در چیست‪(2) e‬‬
‫ه( تفاوت ‪ call-by-name‬و ‪ call-by-need‬در چیست‪(2) e‬‬
‫و( در چه مواقعی ‪ call-by-name‬و ‪ call-by-reference‬همانند یکدیگر رفتار می کنند‪(2) e‬‬
‫اگر زبانی از ساختارهای )‪ Union(1‬و )‪ (2‬نوع داده ی شمارشی ‪ enum‬پش@@تیبانی کن@@د‪ ،‬در ه@@ر ی@@ک از ای@@ن دو م@@ورد بط@@ور‬ ‫‪2‬‬
‫‪4‬‬
‫جداگانه‪ ،‬اگر چه خصوصیتی داشته باشد به یک زبان ‪ Strongly Typed‬نزدیک تر می باشد‪e‬‬
‫آدرس عنصر ]‪ A[2][5][8‬در آرایه ی سه بعدی ]‪ int A[0..4][4..6][6..10‬در صورتی که در حافظه بصورت‬ ‫‪3‬‬
‫‪3‬‬
‫‪ Column Major‬ذخیره شده باشد‪ ،‬هر ‪ 4 int‬بایت اشغال کند و آدرس شروع آرایه ‪ 1000‬باشد را محاسبه نمایید‪.‬‬
‫‪9‬‬ ‫قطعه کد زیر را در نظر بگیرید‪ .‬در خط ‪ ،4‬فضایی که ‪ q‬به آن اشاره می کند‪ ،‬آزاد می شود‪ .‬نتیجه ی اجرای این برن@@امه نی@@ز در‬ ‫‪4‬‬
‫سمت راست نمایش داده شده است‪.‬‬
‫;‪(1)int *p = new int‬‬
‫;‪(2)*p = 10‬‬
‫;‪(3)int *q = p‬‬
‫;‪(4)delete q‬‬
‫;‪(5)int *r = new int‬‬
‫;‪(6)q = new int‬‬
‫;‪(7)*q = 5‬‬

‫الف( کدام خط این کد منجر به ‪ Dangling Pointer‬میشود و برای کدام اشاره گر‪e‬چرا‪(2) e‬‬
‫ب( مطابق شکل‪ ،‬پس از اجرای خط ‪ 5‬چه اتفاقی افتاده است‪(2) e‬‬
‫ج( روش ‪ Tombstone‬را برای رفع این مشکل بر روی مثال اعمال کرده و شکل نهایی را نمایش دهید‪(3) .‬‬
‫د( در چه صورت استفاده از روش ‪ Locks and Keys‬برای مثال داده شده میتواند با مشکل روبرو شود‪(2) .‬‬
‫زمان‪ 135 :‬دقیقه‬ ‫آزمون پایان ترم طراحی و پیادهسازی زبانهای برنامه نویسی‬ ‫خرداد ‪1401‬‬
‫نمره‬ ‫شماره دانشجویی‪:‬‬ ‫سؤال نام و نام خانوادگی‪:‬‬
‫برنامهی زیر را در زبان ‪ C++‬در نظر بگیرید‪ .‬شکل حاصل از آن نیز مشخص شده است‪.‬‬ ‫‪5‬‬
‫الف( روش ‪ Reference Counting‬برای مشخص شدن حافظه های ‪ garbage‬را در محل های )‪ (2) ،(1‬و )‪ (3‬اعمال‬
‫کرده و شماره گره های ‪ garbage‬تشخیص داده شده را مشخص کنید )برای هر محل‪ ،‬ش‪44‬کل ج‪44‬داگانه رس‪44‬م کنی‪44‬د و‬
‫اطلعات مورد نیاز روش را برای گرههای مختلف مشخص کنید(‪.‬‬
‫‪Reference‬‬ ‫ب( اگر از روش ‪ Mark and Sweep‬استفاده شود‪ ،‬در کدام محل ها‪ garbage ،‬متفاوتی نسبت به روش‬
‫‪ Counting‬بدست خواهد آورد‪ e‬چرا‪e‬‬
‫{)(‪int main‬‬
‫‪9‬‬ ‫;‪node *f = new node‬‬
‫;‪node *q = p‬‬
‫{)‪for (int i=0;i<5;i++‬‬
‫;‪q->next = new node‬‬
‫;‪q = q->next‬‬
‫}‬
‫;‪node *p = f->next->next‬‬
‫;‪q->next = p->next‬‬
‫;‪f = null‬‬
‫‪–-------> 1‬‬
‫;‪p = null‬‬
‫‪–-------> 2‬‬
‫;‪q = null‬‬
‫‪–-------> 3‬‬
‫;‪return 0‬‬
‫}‬

‫تعریف تابع زیر مربوط به زبانی است که در آن برای پارامترهای تابع میتوان مقدار پیش فرض ) ‪ (Default Value‬در نظر‬ ‫‪6‬‬
‫گرفت‪ .‬این زبان از هر دو مورد ‪ Positional Parameters‬و ‪ Keyword Parameters‬پشتیبانی میکند‪.‬‬

‫)‪function Mul(A : Integer; B:Integer := 10 ; C:Integer ; D:Integer := 2‬‬


‫;‪return Integer‬‬
‫‪6‬‬ ‫با توجه به این تعریف‪ ،‬به موارد زیر پاسخ دهید‪.‬‬

‫الف( تمام روش هایی که این تابع را با مقادیر ‪ 5‬برای ‪ A‬و ‪ 30‬برای ‪ C‬میتوان فراخوانی کرد را بنویسید )مقادیر ‪ B‬و ‪ D‬نباید به‬
‫تابع ارسال شوند تا همان مقادیر پیش فرضشان برای آنها در نظر گرفته شود‪(4) .(.‬‬
‫ب( تعریف این تابع را برای زبانی که فقط از ‪ Positional Parameters‬پشتیبانی می کند‪ ،‬باز نویسی کنید‪(2).‬‬
‫با چه نوع ارسال پارامتر تابعی )‪ value، result، value-result، reference‬و یا ‪ ،(name‬برنامه ی زیر منجر به‬ ‫‪7‬‬
‫جابجایی مقادیر ‪ x‬و ‪ y‬تعریف شده در ‪ main‬شده و در نتیجه در خروجی ابتدا ‪ 30‬و سپس ‪ 20‬را نمایش می دهد‪ .‬تمام ن@@وع‬
‫ارسال هایی که جواب درست میدهند را فقط نام ببرید و روشهایی که جواب غلط میدهند را با ذکر دلیل مشخص کنید ک@@ه‬
‫برایشان چه اتفاقی صورت می گیرد‪.‬‬
‫;‪int x = 0, y = 10‬‬
‫{)‪void swap(int a, int b‬‬
‫;‪int t = a‬‬
‫‪7‬‬ ‫‪a = b‬‬
‫‪b = t‬‬
‫;‪return‬‬
‫}‬
‫{)(‪void main‬‬
‫;‪int x = 20, y = 30‬‬
‫;)‪swap(x, y‬‬
‫;)‪print(x, y‬‬
‫;‪return‬‬
‫}‬
‫زمان‪ 135 :‬دقیقه‬ ‫آزمون پایان ترم طراحی و پیادهسازی زبانهای برنامه نویسی‬ ‫خرداد ‪1401‬‬
‫نمره‬ ‫شماره دانشجویی‪:‬‬ ‫سؤال نام و نام خانوادگی‪:‬‬
‫َشخصی ادعا کرده است که اگر کد زیر را در هر زبانی پیادهسازی کند‪ ،‬برنامه خاتمه پذیر نخواهد بود‪ .‬ادعای ای@@ن ش@@خص را از‬ ‫‪8‬‬
‫لحاظ انواع ارسال پارامتر به تابع بررسی کنید‪.‬‬
‫{)‪void func(int a,int b‬‬
‫)‪if (b==0‬‬
‫‪3‬‬ ‫;‪return 0‬‬
‫‪else‬‬
‫;)‪return func(a,b‬‬
‫}‬
‫{)(‪void main‬‬
‫;))‪func(func(1,1),func(0,0‬‬
‫}‬

‫کد زیر را در نظر بگیرید‪ .‬اطلعات چندان دقیقی از زبان در اختیار نداریم‪ .‬بر اساس قوانین ‪ scope‬متغیره@@ا و محی@@ط ارج@@اع‬ ‫‪9‬‬
‫تابع در زمان ارسال بصورت پارامتر‪ ،‬این برنامه چه مقادیری را ممکن است در خروجی نمایش دهد‪ e‬مقادیر ممک@@ن خروج@@ی را‬
‫همراه با دلیل ذکر کنید‪.‬‬
‫‪x: integer := 0‬‬
‫‪y: integer := 0‬‬

‫)‪procedure f(z: integer‬‬


‫‪9‬‬ ‫)‪print(z+y‬‬

‫)‪procedure g(p: procedure‬‬


‫‪y: integer := 10‬‬
‫)‪p(x‬‬
‫)(‪procedure h‬‬
‫‪x: integer := 100‬‬
‫‪y: integer := 20‬‬
‫)‪g(f‬‬
‫)(‪h‬‬

‫موفق باشید ‪ -‬کشت کاران ‪64‬‬

You might also like