CompilerAutomata_HW 5_92_1.pdf

‫هس بخ‬
‫هب انم تی ش‬
‫اوتومتا و رطاحی کامپایلر‬
‫تکلیف پنجم‬
‫نیمسال اول ‪95-94‬‬
‫دانشکده مهندسی کامپیوتر‬
‫مدرس ‪ :‬دکتر جابریپور‬
‫تاریخ تحویل‪ :‬شنبه ‪ 16‬آبان‬
‫توجه‪ :‬تحویل سواالتی که با * مشخص شدهاند و سواالت کالس درس الزامی است‪ .‬سواالتی که با عالمت ! مشخص شدهاند برای‬
‫شروع مناسب هستند‪.‬‬
‫‪-1‬‬
‫(!) اگر ‪ P‬یک ‪ PDA‬به شکل )}𝑝{ ‪ 𝑃 = ({𝑝, 𝑞}, {0.1}, {𝑍0 , 𝑋}, 𝛿, 𝑞, 𝑍0 ,‬باشد و ‪ Transition Function‬آن به شکل زیر باشد‪ ،‬با‬
‫شروع از ‪ ID‬اولیه ) ‪ ،(𝑞, 𝑤, 𝑍0‬همه ‪ID‬هایی که به آنها با دریافت رشتههای زیر میرسیم را نشان دهید‪.‬‬
‫‪0011 )a‬‬
‫‪010 )b‬‬
‫‪ )!( -2‬اگر )}𝑓{ ‪ 𝑃 = ({𝑞0 , 𝑞1 , 𝑞2 , 𝑞3 , 𝑓}, {𝑎, 𝑏}, {𝑍0 , 𝐴, 𝐵}, 𝛿, 𝑞0 , 𝑍0 ,‬یک ‪ PDA‬با تابع ‪ δ‬زیر باشد به سواالت پاسخ دهید‪.‬‬
‫توجه کنید که آکالدها بعلت اینکه همواره یک انتخاب داریم برداشته شدهاند‪.‬‬
‫‪)a‬‬
‫با ‪ Trace‬کردن نشان دهید 𝑏𝑏𝑎 عضو زبان است‪.‬‬
‫‪)b‬‬
‫وضعیت ‪ Stack‬بعد از خواندن ‪ 𝑏 7 𝑎4‬را نشان دهید‪.‬‬
‫‪ -3‬برای پذیرش هریک از زبانهای زیر یک ‪ PDA‬طراحی کنید‪ .‬مختارید ‪PDA‬تان را در حالت خالی شدن ‪ Stack‬یا حالت نهایی طراحی کنید‪.‬‬
‫‪)a‬‬
‫‪)b‬‬
‫}‪{02𝑛 1𝑛 |𝑛 ≥ 1‬‬
‫(!) رشتههای متشکل از ‪ 0‬و‪ ، 1‬بطوریکه هیچ پیشوندی از آن داری تعداد بیشتری ‪ 1‬نسبت به ‪0‬ها نباشد‪.‬‬
‫‪)c‬‬
‫رشتههای متشکل از ‪ 0‬و‪ ، 1‬بطوریکه تعداد ‪1‬ها برابر با ‪0‬ها باشد‪.‬‬
‫‪)d‬‬
‫(*) رشتههای متشکل از ‪ 0‬و‪ ، 1‬بهطوریکه به شکل 𝑤𝑤 نباشند‪.‬‬
‫‪)e‬‬
‫(*) }𝑘 ≠ 𝑗 𝑟𝑜 𝑗 ≠‬
‫𝑖| 𝑘 𝑗 𝑖𝑎{‬
‫𝑐 𝑏‬
‫‪ )*( -4‬ثابت کنید برای هر ‪ PDA P1‬یک ‪ PDA P2‬وجود دارد‪ ،‬بطوریکه تعداد حروف الفبا ‪ Stack‬آن تنها ‪2‬تا بوده و ) ‪𝐿(𝑃1 ) = 𝐿(𝑃2‬‬
‫میباشد‪.‬‬
‫‪-5‬‬
‫(*) برای گرامر زیر یک ‪ PDA‬در حالت ‪ Empty Stack‬طراحی کنید‪.‬‬
‫𝐴𝐴𝑎 → 𝑆‬
‫𝑎| 𝑆𝑏| 𝑆𝑎 → 𝐴‬
‫تذرکات‪:‬‬
‫‪ -1‬کتاب زیر مرجع اصلی درس است‪ ،‬مطالعه آن میتواند کمک شایانی به فهم مطالب کند‪.‬‬
‫‪Introduction to Automata Theory, Languages, and Computation; J.E.Hopcraft, R.Montwani,‬‬
‫‪J.D.Ullman, 3rd Edition‬‬
‫‪Compilers, Principles, Techniques &Tools; A.V.Aho, M.S.Lam, R.Sethi, J.D.Ullman, 2nd Edition‬‬
‫‪ -2‬تمرینات خود را روز شنبه‪ 16 ،‬آبانماه‪ ،‬ساعت ‪ 12‬سر کالس حلتمرین تحویل دهید‪ .‬از دیرتر تحویل دادن تمرین خود بنابه هر‬
‫دلیلی بپرهیزید‪.‬‬
‫‪ -3‬در صورتی که تمرینی را ایمیل میکنید‪ ،‬در اسرع وقت نسخه فیزیکی آن را نیز تحویل دهید!‬
‫‪ -4‬همه برگههای خود را به هم منگنه کرده و سپس تحویل دهید!‬
‫‪-5‬‬
‫از تقلب به شدت بپرهیزید! خودتان سواالت را حل کنید! (در صورت کشف برای کل تکلیف نمره ‪ -100‬برای همه نفرات لحاظ‬
‫خواهد شد)‬
‫‪ -6‬سواالت خود را به گروه درس یا ایمیل اعضای حلتمرین ارسال نمایید‪( .‬در صفحه درس موجود است)‬
‫موفق باشید‬