CompilerAutomata_HW 2_92_1.pdf

‫هس بخ‬
‫هب انم تی ش‬
‫اوتومتا و رطاحی کامپایلر‬
‫تکلیف دوم‬
‫دانشکده مهندسی کامپیوتر‬
‫نیمسال اول ‪95-94‬‬
‫مدرس ‪ :‬دکتر جابریپور‬
‫تاریخ تحویل‪ :‬شنبه ‪ 18‬مهر‬
‫توجه‪ :‬تحویل سواالتی که با * مشخص شدهاند و سواالت کالس درس الزامی است‪.‬‬
‫‪ -1‬با استفاده از آنچه تاکنون آموختهاید‪ ،‬به شکل غیر رسمی‪ ،‬نشان دهید هیچ ماشین متناهی وجود ندارد که زبان آن‪ ،‬بر روی مجموعه‬
‫الفبایی }‪ ،Σ = {1 , 0‬به صورت مجموعه رشتههایی که تعداد صفر و یک آنها برابرند تعریف شود‪.‬‬
‫‪ -2‬با توجه به ‪ ϵ-NFA‬داده شده به سواالت زیر پاسخ دهید‪:‬‬
‫‪ ϵ-Closure )a‬را برای هر ‪ State‬تعیین کنید‪.‬‬
‫‪ )b‬همه رشتهها با طول کوچکتر از ‪ 3‬که ماشین میپذیرد را معین کنید‪.‬‬
‫‪ ϵ-NFA )*( )c‬را به ‪ DFA‬تبدیل کنید‪.‬‬
‫‪ -3‬برای هریک از زبانهای زیر‪ ،‬یک ‪ ϵ-NFA‬ارائه دهید که پذیرنده آن باشد‪ .‬سعی کنید از ‪ ϵ‬برای سادهسازی طراحی خود استفاده‬
‫کنید‪.‬‬
‫‪ )a‬مجموعه همه رشتههایی که تعداد صفر یا بیشتر ‪ ،a‬به دنبال آن‪ ،‬صفر یا بیشتر ‪ b‬و به دنبال آن‪ ،‬صفر یا بیشتر ‪ c‬بیاید‪.‬‬
‫‪ )b‬مجموعه همه رشتههایی که شامل تکرار یک یا بیشتر ‪ 01‬و یا یک یا بیشتر ‪ 010‬باشند‬
‫‪ )c‬مجموعه همه رشتههایی از ‪ 0‬و ‪ ،1‬که حداقل یکی از ده حرف آخر آنها ‪ 1‬باشد‪.‬‬
‫‪ )*( )d‬مجموعه همه رشتههایی از ‪ 0‬و ‪ ،1‬که هیچ جفت ‪1‬ی که بینشان فرد ‪ 0‬باشد‪ ،‬در آنها وجود نداشته باشد‪.‬‬
‫‪ -4‬ثابت کنید هر ‪ ϵ-NFA‬یک ‪ DFA‬معادل دارد‪.‬‬
‫‪ -5‬برای هر یک از زبانهای زیر یک عبارت منظم بنویسید‪.‬‬
‫‪ )a‬مجموعه همه رشتهها‪ ،‬بر مجموعه }𝑐 ‪ ،{𝑎, 𝑏,‬که شامل الاقل یک ‪ a‬و یک ‪ b‬است‪.‬‬
‫‪ )b‬مجموعه همه رشتههایی از ‪ 0‬و ‪ 1‬که ‪10‬امین سمبل از سمت راست‪ 1 ،‬باشد‪.‬‬
‫‪ )c‬مجموعه همه رشتههایی از ‪ 0‬و ‪ 1‬که شامل حداکثر دو ‪ 1‬متوالی باشد‪.‬‬
‫‪ )d‬مجموعه همه رشتههایی از ‪ 0‬و ‪ 1‬که هر جفت ‪0‬متوالی قبل از هر جفت ‪ 1‬متوالی ظاهر شوند‪.‬‬
‫‪ )*( )e‬مجموعه همه رشتههایی از ‪ 0‬و ‪ 1‬که تعداد ‪0‬ها بر پنج قابل قسمت باشد‪.‬‬
‫‪)f‬‬
‫مجموعه همه رشتههایی از ‪ 0‬و ‪ 1‬که شامل زیررشته ‪ 101‬نیست‪.‬‬
‫‪ -6‬برای هریک از عبارات منظم زیر‪ ،‬یک توصیف روان فارسی بنویسید‪.‬‬
‫‪(0∗ 1∗ )∗ 000(0 + 1)∗ )a‬‬
‫‪(0 + 10)∗ 1∗ )b‬‬
‫‪ )*( -7‬دو زبان مثال بزنید که بستار آنها متناهی باشد‪ .‬یعنی اگر 𝐿 یک زبان منظم باشد آنگاه‬
‫تعداد اعضای ∗𝐿 متناهی باشد‪(.‬توجه کنید فقط دو زبان این ویژگی را دارند)‬
‫‪ )*( -8‬با تکنیک حذف ‪ ،State‬زبان ‪ DFA‬زیر را بدست آورید‪.‬‬
‫‪1‬‬
‫‪0‬‬
‫𝑝‬
‫𝑠‬
‫𝑞‬
‫𝑞‬
‫𝑠‬
‫𝑝‬
‫𝑟‬
‫𝑟‬
‫𝑝 ∗→‬
‫‪Q‬‬
‫𝑟‬
‫𝑠‬
‫‪ -9‬برای هریک از عبارات منظم زیر که بر مجموعه الفبایی }‪ ،{0,1‬تعریف شدهاند‪ ،‬یک ‪ ϵ-NFA‬ارائه دهید که پذیرنده آن باشد‪( .‬با‬
‫استفاده از روش)‬
‫‪01* )a‬‬
‫‪(0+1)01 )b‬‬
‫‪+‬‬
‫‪0 + (01)+ )c‬‬
‫‪ -10‬اگر )} 𝑓𝑞{ ‪ 𝐴 = (𝑄, Σ, δ, 𝑞0 ,‬یک ‪ ϵ-NFA‬بوده و در آن هیچ راهی به ‪ 𝑞0‬و هیچ راهی از 𝑓𝑞 به ‪State‬های دیگر وجود‬
‫نداشته باشد(به صورت رسمیتر‪ ،)∄ 𝑝, 𝛿(𝑝, 𝑎) = 𝑞0 𝑜𝑟 𝛿(𝑞𝑓 , 𝑎) = 𝑝 𝑎𝑛𝑑 𝑎 ∈ Σ :‬زبان ماشینهای اصالح شده زیر را‬
‫با فرض اینکه زبان 𝐴 برابر )𝐴(𝐿 است‪ ،‬با اعمال تغییرات زیر بدست آورید‪:‬‬
‫‪ 𝑞0 )a‬را به هر ‪ State‬مانند 𝑞 که از ‪ 𝑞0‬مسیری به آن وجود دارد (𝑞 = )𝑤 ‪ ،)𝛿̂ (𝑞0 ,‬با یک ‪ ϵ‬مستقیماً به آن مرتبط‬
‫سازیم‪.‬‬
‫‪ )*( )b‬هر ‪ State‬مانند 𝑞 که به 𝑓𝑞 راهی دارد‪ ،‬با یک ‪ ϵ‬مستقیماً به آن مرتبط شود‪( .‬یعنی برای آن‪ ،‬یک رشته مانند 𝑤‬
‫وجود دارد که 𝑓𝑞 = )𝑤 ‪) 𝛿̂ (𝑞,‬‬
‫‪ )c‬اوتومات هم شرایط بخش ‪ a‬را داشته باشد و هم بخش ‪.b‬‬
‫‪ )*( -11‬روشی ارائه دهید که با آن بتوان عبارت منظم ̃𝑅 را از روی عبارت منظم 𝑅 تعریف کرد بطوریکه ) ̃𝑅(𝐿 = 𝑅)𝑅(𝐿‪ .‬یعنی‬
‫عبارت منظم را به گونهای تغییر دهیم که زبان آن عبارت‪ ،‬عکس شود‪.‬‬
‫تذرکات‪:‬‬
‫‪ -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‬تمرینات خود را روز شنبه‪ 18 ،‬مهرماه‪ ،‬ساعت ‪ 12‬سر کالس حلتمرین تحویل دهید‪ .‬از دیرتر تحویل دادن تمرین خود بنابه هر‬
‫دلیلی بپرهیزید‪.‬‬
‫‪ -3‬در صورتی که تمرینی را ایمیل میکنید‪ ،‬در اسرع وقت نسخه فیزیکی آن را نیز تحویل دهید!‬
‫‪ -4‬همه برگههای خود را به هم منگنه کرده و سپس تحویل دهید!‬
‫‪-5‬‬
‫از تقلب به شدت بپرهیزید! خودتان سواالت را حل کنید! (در صورت کشف برای کل تکلیف نمره ‪ -100‬برای همه نفرات لحاظ‬
‫خواهد شد)‬
‫‪ -6‬سواالت خود را به گروه درس یا ایمیل اعضای حلتمرین ارسال نمایید‪( .‬در صفحه درس موجود است)‬
‫موفق باشید‬