با سلام.

من قبلا برای درس «طراحی و پیاده سازی زبانهای برنامه نویسی» یه کامپایلر پاسکالک(پاسکال کوچیک) نوشتم. البته نه بصورت کامل که همه دستورات رو داشته باشه ولی از ساختارهای کنترلی if، forو while و از انواع داده ای نوع داده ای integer و عبارات محاسباتی چهار عمل اصلی با رعایت اولویت ها رو پیاده سازی کردم. به این ترتیب که یک سورس پاسکالک میگیره و هم کد میانی و هم کد اسمبلی رو تولید میکنه. من با زبان ++C پیاده سازیش کردم و میدونم که تو زبانهای دیگه هم چه جوری میشه پیاده سازیش کرد.

در کل برای تولید کامپایلر شما به دو صورت میتونین عمل کنین:
1. روش دستی
2. روش اتوماتیک

برای پیاده سازی به روش دستی شما باید با نظریه زبانها و ماشینها آشنایی داشته باشی.(عبارات منظم، گرامر،DFA و ...)
برای پیاده سازی به روش اتوماتیک هم باید بایستی با نظریه زبانها و ماشین آشنایی جزئی داشته باشی. این رو هم بگم که تو روش اتوماتیک این شکلی نیست که اصلا کد نویسی نداشته باشیم. داریم ولی کمه. فقط تولید کد میانی و کد مقصد
حالا در صورت نیاز من اینا رو بعدا توضیح میدم.

موفق باشید/