خلاصه
تعامل بین طرح مجموعه دستورالعمل های کامپیوتری و طرح کامپایلر که کد را برای کامپیوتر ایجاد می کند دارای کاربردهای مهمی در هزینه محاسباتی و بازدهی می باشد. این مقاله، که به بررسی این تعامل ها می پردازد، به طور ایده آلی بر مبنای اطلاعات جامعی می باشد؛ متاسفانه، چنین اطلاعاتی اندک می باشند. و در حالی که داده هایی در زمینه داستفاده از مجموعه دستورالعمل وجود دارد، ارتباط این اطلاعات با طرح کامپایلر نامشخص می باشد.
بنابراین، این مورد یک دستور مشخص صریحی می باشد، که بر مبنای بررسی های گسترده ای است.
من وهمکارانم در بهبوهه تلاش تحقیقاتی هستیم که هدف آن اتوماتیک کردن ایجاد کامپایلر های کیفی تولیدی می باشد. (برای محدود کردن آنچه که قبلا به نام پروژه بلندپروازانه بوده است، ما تنها زبان جبر و کامپیوترهای معمولی را مد نظر قرار می دهیم.) به طور مختصر، بر خلاف بسیاری از کامپایلرها- یعنی تلاش برای کامپایل کردن در گذشته- فعالیت های شامل اتوماتیک کردن تمام مراحل کامپایلر – شامل مرحله بهینه سازی و ایجاد کد که در بهینه سازی کامپایلرها یافت می شود، می باشد. تنها اطلاعات ورودی مربوط به این فرایند تولید، تعریف رسمی از زبان مبدا و کامپیوتر هدف می باشد. ایجاد الگوریتم کامپایل که به همراه پارامترهای مناسب می باشد، در مجموعه گسترده ای از طرح های کامپیوتری بازدهی داشته و برای این تحقیق مهم می باشد. در عوض، مد نظر قرار دادن این الگوریتم ها ما را به طور مشخصی به این سمت می کشاند تا بسیاری از طرح ها و مشکلاتی را که آن ها ایجاد می کنند، مورد بررسی قرار دهیم. بسیاری از عقایدی که مطرح می گردد، بر مبنای تجاربمان برای انجام این فرایند و با توجه به مشکلاتی که ما با آن ها روبرو می باشیم، می باشد.
مقاله های مربوط به این دست با مد نظر قرار دادن این مورد آغاز می گردد که هزینه سخت افزار به سرعت پایین آمده در حالی که هزینه نرم افزار رو به بالا می باشد. نتیجه اجتناب ناپذیر این می باشد که می بایست روش هایی را برای سخت افزار به منظور ساده کردن فعالیت نرم افزاری پیدا کنیم. یکی از روش هایی که می توان چنین کاری را انجام داد، طراحی مجموعه دستورالعمل هایی می باشد که به بازتاب نیازهای مربوط به زبان های برنامه نویسی سطح بالا می پردازد.