کد میانه و بهینه سازی - نسخهی قابل چاپ |
کد میانه و بهینه سازی - MiladCr7 - 02 بهمن ۱۳۹۳ ۰۳:۰۶ ب.ظ
سلام دوستان!!!یه سوال من کتاب کامپایلر اقای شاپوری رو داریم!!ولی این ۲فصل اخرشون خیلی برام گنگه(کد میانی-بهینه سازی کد میانی) میخواستم ببینم اگه کسی از بچه ها میتونه کمکی کنه!!از این ۲ فصل چه مطالبی مهمه؟؟؟ من کلا متوجهش نمیشم |
RE: کد میانه و بهینه سازی - bluebaran - 02 بهمن ۱۳۹۳ ۰۳:۱۵ ب.ظ
[quote='miladcr7' pid='328860' dateline='1421922991'] سلام دوستان!!!یه سوال من کتاب کامپایلر اقای شاپوری رو داریم!!ولی این ۲فصل اخرشون خیلی برام گنگه(کد میانی-بهینه سازی کد میانی) میخواستم ببینم اگه کسی از بچه ها میتونه کمکی کنه!!از این ۲ فصل چه مطالبی مهمه؟؟؟ من کلا متوجهش نمیشم [/quot جدول پرش و تعداد حافظه موقت رو سعی کن کار کنی البته من کتابم پوران هست ولی فک کنم خیلی سرفصلامون فرق نداشته باشه |
RE: کد میانه و بهینه سازی - MiladCr7 - 02 بهمن ۱۳۹۳ ۰۳:۱۸ ب.ظ
کد پرش رو گفتن ولی چیزی از جدول پرش توش نیست |
RE: کد میانه و بهینه سازی - bluebaran - 02 بهمن ۱۳۹۳ ۰۴:۲۲ ب.ظ
(۰۲ بهمن ۱۳۹۳ ۰۳:۱۸ ب.ظ)miladcr7 نوشته شده توسط: کد پرش رو گفتن ولی چیزی از جدول پرش توش نیست چند راه برای پیاده سازی case هستش که یه را جدول پرش هست جدول پرش اینگونه هستش که تو پرش ما غیر شرطی هست و از مقایسه تکراری جلوگیری میکنه اول عبارت شرطی case ارزیابی میشه و مقدارش به عنوان آفست برای جدول پرش استفاده میشه مثلا این دستور case رو داشته باش case a when 2 {st} when 3 {st3} when 4 {st 4} when 5 {st 5} when 9 {۶ st} حالا جدولمون اینطوری میشه ارزیابی a میذارش تو مثلا t1 دقت کن که میشه تفاوت مکان به ابتدای جدول اینجا چون از ۲ شروع میشه درسته a=2 هست ولی اولین مکان جدولمون میشه پس باید t1 برابر بشه با (a-2 ) jump L0+t1(شروع جدول پرش میشه از Lo و اینجا آفستش رو با t1 جمع کرده) ۱/ jump to L1 (برای پرش واسه when 2) ۲/ jump to L2 (برای پرش واسه when 3) ۳/ jump to L3 (برای پرش واسه when 4) ۴/ jump to L4 ( برای پرش واسه when 5) ۵/ jump to L5 ( واسه ۶ درسته که نداریم ولی ایراد جدول پرش اینه که باید واسه همه اونایی که تو محدوده هستند در نظر بگیره تا آدرسمون اشتباه نشه ) ۶/ jump to L6 ۷/ jump to L7 ۸/ jump to L8 ( واسه ۹ هستش) اندازه جدول پرش میشه تا اینجا از این به بعد رو دیگه جز جدول پرش نمیگیرن L1: st jump L10 L2: st2 jump L10 L3: st3 jump L10 L4: st4 jump L10 L5: st5 jump L10 L9: St6 L10: بقیه دستورات بعد از case شاید جایشو اشتباه کرده باشم اگه تناقض دیدی بگو |