کامپایلر های خود میزبان | Self Hosting Compiler

میدونستید بعضی از زبان های برنامه نویسی کامپایلرشون با زبان خودشون نوشته شده؟
خب یعنی چی؟ برای پاسخ به این سوال اول باید توضیح بدم کامپایلر چیه!(اگر میدونید پاراگراف بعدی رو رد کنید)


تعریف کامپایلر: کامپیوتر کدی که ما نوشتیم رو نمیفهمه چه با زبان های سطح بالا چه با زبان های سطح پایین.کامپیوتر فقط ماشین کد یا همون 0 ,1 رو میفهمه و کدی که توسط ما نوشته شده رو فقط خودمون میفهمیم.کامپایلر اینجا وظیفه ترجمه کد ما به 0,1 رو داره!

خب با توجه تعریف کامپایلر ما تا وقتی کامپایلر نداشته باشیم نمیتونیم کدی رو اجرا کنیم اونوقت چجوری میشه یه کامپایلر با همون زبانی داشته باشیم که هنوز کامپایلرش ساخته نشده چون هنوز زبان نداره :/ (میدونم ممکنه گیج بشید پس از مثال اول مرغ بوده یا تخم مرغ کمک بگیرید🥚🐤)

اینجوریه که میان یه کامپایلر خیلی ابتدایی با یه زبان دیگه (برای مثال اسمبلی) مینوسن و بعدش کد کامپایلر اصلی رو با خود زبان مینویسن و میدن به کامپایلری که ساختن تا کامپایل کنه. حالا شما یه کامپایلر برای زبانتون دارید که با خود زبانتون نوشته شده!🫡
(دیگه به اون کامپایلر اولیه نیازی نیست)

کامپایلر های زبان هایی مثل C , GO , Rust اینجورین 💻