CompilerAutomata_HW 3_92_1.pdf

‫هس بخ‬
‫هب انم تی ش‬
‫اوتومتا و رطاحی کامپایلر‬
‫تکلیف سوم‬
‫دانشکده مهندسی کامپیوتر‬
‫نیمسال اول ‪95-94‬‬
‫مدرس ‪ :‬دکتر جابریپور‬
‫تاریخ تحویل‪ :‬شنبه ‪ 25‬مهر‬
‫توجه‪ :‬تحویل سواالتی که با * مشخص شدهاند و سواالت کالس درس الزامی است‪.‬‬
‫‪( -1‬سوال امتیازی) با توجه به ‪ DFA‬داده شده به سواالت زیر پاسخ دهید‪:‬‬
‫‪ )a‬همه عبارات منظم )‪ Rij(0‬را نشان دهید؛ توجه کنید که ‪ qi‬بیانگر حالت ‪i‬ام از ‪ DFA‬میباشد‪.‬‬
‫‪ )b‬همه عبارات منظم )‪ Rij(1‬را نشان دهید‪.‬‬
‫‪ )c‬همه عبارات منظم )‪ Rij(2‬را نشان دهید‪.‬‬
‫‪1‬‬
‫‪0‬‬
‫‪𝑞3‬‬
‫‪𝑞3‬‬
‫‪𝑞1‬‬
‫‪𝑞2‬‬
‫‪𝑞1‬‬
‫‪𝑞2‬‬
‫‪ )d‬زبان ماشین را با عبارات منظم نمایش دهید‪.‬‬
‫‪ )e‬پس از حذف ‪ ،q2‬شکل ‪ DFA‬با عبارات منظم را نمایش دهید‪.‬‬
‫‪-2‬‬
‫ثابت کنید زبانهای زیر منظم نیستند‪.‬‬
‫‪ )a‬رشتههایی به صورت ‪. 0n12n‬‬
‫‪ )*( )b‬مجموعه رشتههای ) و ( که بصورت صحیح کنار هم قرار گرفتهاند‪ .‬یعنی یک پرانتزگزاری معتبر و قابل محاسبه‬
‫هستند هستند‪ .‬مانند‪(()(())) :‬‬
‫‪ 0n1m )c‬که 𝑚 ≤ 𝑛‪.‬‬
‫‪ )d‬رشتههایی به فرم 𝑟 𝑤𝑤 ‪( .‬یعنی رشته ‪ w‬و برعکسش‪ .‬مثال‪)00011000 :‬‬
‫‪ ،0𝑛 )e‬که 𝑛 توانی از ‪ 2‬باشد‪.‬‬
‫‪)f‬‬
‫(*) 𝑛‪ 0𝑛 1𝑚 2‬که ‪ m‬و ‪ n‬دو عدد دلخواه هستند‪.‬‬
‫‪ )*( )g‬رشتههایی به فرم 𝑗‪ 0𝑖 1‬که ‪ i‬و ‪ j‬نسبت به هم اول باشند‪.‬‬
‫‪ )h‬رشتههایی از ‪ 0‬و ‪ 1‬که بیانگر باینری عددی اول هستند‪.‬‬
‫‪ -3‬نشان دهید اگر از قضیه تزریق برای اثبات نامنظم بودن زبان ‪ 01∗ 0∗ 1‬استفاده کنیم‪ ،‬با شکست مواجه خواهیم شد‪.‬‬
‫‪ -4‬اگر ‪ h‬همورفیزم‪ ،‬از مجموعه الفبایی }‪ {0, 1, 2‬به مجموعه }𝑏 ‪ {𝑎,‬به صورت 𝑎𝑏 = )‪ℎ(0) = 𝑎, ℎ(1) = 𝑎𝑏, ℎ (2‬‬
‫تعریف شده باشد‪ ،‬به سواالت زیر پاسخ دهید(}𝑏 ‪ ℎ: {1, 2, 3} → {𝑎,‬در واقع صرفاً یک تابع است) ‪:‬‬
‫‪ ℎ(01200) )a‬و )‪ ℎ(21120‬را پیدا کنید‪.‬‬
‫‪ ℎ(𝐿) )b‬را برای )‪ 𝐿(1 + 02‬بدست آورید‪.‬‬
‫‪ ℎ−1 (𝐿) )*( )c‬را برای ) ∗)𝑎𝑏(𝑎(𝐿 بدست آورید‪.‬‬
‫‪0 0‬‬
‫‪1‬‬
‫‪ )*( -5‬اگر } ]‪ ∑3 = { [0] , [0] , … , [1‬باشد‪ ،‬ثابت کنید زبان ‪ L‬که توصیف آن برابر مجموعه رشتههایی از الفبای داده شده‬
‫‪0 1‬‬
‫‪1‬‬
‫‪0 0 1‬‬
‫است که جمع اعداد سطر اول و دوم آن در سطر سوم است‪ .‬زبانی منظم است‪ .‬مثال‪[0] [1] [1] :‬‬
‫‪1 0 0‬‬
‫‪ -6‬ثابت کنید )𝐿(𝑥𝑎𝑀 منظم است‪ .‬تعریف این زبان به این صورت است که شامل همه رشتههایی از زبان 𝐿 است که هیج 𝑥ی بجز‬
‫𝜖 وجود ندارد که 𝐿 ∈ 𝑥𝑤‪.‬‬
‫‪→ 𝑞1‬‬
‫‪𝑞2‬‬
‫‪∗ 𝑞3‬‬
‫‪ -7‬اگر زبان 𝐿 بر روی مجموعه الفبایی }‪ {0‬تعریف شده باشد ولی لزوماً منظم نباشد (مثالً زبان 𝑃‪ ،‬شامل مجموعه رشتههایی که‬
‫طولشان برابر عددی اول باشد منظم نیست)‪ ،‬ثابت کنید زبان ∗𝐿 منظم است‪.‬‬
‫‪( -8‬سوال امتیازی!) در مورد منظم بودن 𝑃𝑃 از سوال قبل چه میتوان گفت؟ چه نتیجهای میگیرید؟‬
‫‪ )*( -9‬با کمک خواص بستاری زبانهای منظم ثابت کنید که 𝑚‪ 0𝑛 1𝑚 2𝑛−‬که ‪ ،𝑛 ≥ 𝑚 ≥ 0‬منظم نیست‪( .‬راهنمایی‪ :‬از منظم‬
‫نبودن 𝑛‪ 0𝑛 1‬استفاده کنید)‬
‫‪ )*( -11‬ثابت کنید زبانهای منظم تحت عمل 𝑒𝑙𝑓𝑓𝑢‪ 𝑆ℎ‬بسته هستند‪ .‬این عمل به شکل زیر تعریف میشود‪:‬‬
‫} ∗ ‪𝑆ℎ𝑢𝑓𝑓𝑙𝑒(𝑎, 𝑏) = {𝑤 |𝑤 = 𝑎1 𝑏1 … 𝑎𝑘 𝑏𝑘 , 𝑎1 … 𝑎𝑘 ∈ 𝐴 , 𝑏1 … 𝑏𝑘 ∈ 𝐵, 𝑎𝑖 , 𝑏𝑖 ∈ Σ‬‬
‫‪ -11‬ثابت کنید اگر زبان ‪ L‬منظم باشد )𝐿(𝑓𝑙𝑎‪ ℎ‬یعنی نصف آن زبان نیز منظم است‪ .‬منظور از نصف آن است که‪ ،‬اگر هر رشته عضو‬
‫زبان‪ ،‬نصف شود توسط زبان جدید پذیرفته میشود‪.‬‬
‫∗‬
‫}𝐿 ∈ 𝑥𝑤 ‪ℎ𝑎𝑙𝑓(𝐿) = {𝑤|∃𝑥 ⊂ Σ , |𝑥| = |𝑤| ,‬‬
‫مثالً اگر }‪ 𝐿 = {𝜖, 0010,010‬آنگاه }‪. ℎ𝑎𝑙𝑓(𝐿) = {𝜖, 00‬‬
‫تذرکات‪:‬‬
‫‪ -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‬تمرینات خود را روز شنبه‪ 25 ،‬مهرماه‪ ،‬ساعت ‪ 12‬سر کالس حلتمرین تحویل دهید‪ .‬از دیرتر تحویل دادن تمرین خود بنابه هر‬
‫دلیلی بپرهیزید‪.‬‬
‫‪ -3‬در صورتی که تمرینی را ایمیل میکنید‪ ،‬در اسرع وقت نسخه فیزیکی آن را نیز تحویل دهید!‬
‫‪ -4‬همه برگههای خود را به هم منگنه کرده و سپس تحویل دهید!‬
‫‪-5‬‬
‫از تقلب به شدت بپرهیزید! خودتان سواالت را حل کنید! (در صورت کشف برای کل تکلیف نمره ‪ -111‬برای همه نفرات لحاظ‬
‫خواهد شد)‬
‫‪ -6‬سواالت خود را به گروه درس یا ایمیل اعضای حلتمرین ارسال نمایید‪( .‬در صفحه درس موجود است)‬
‫موفق باشید‬