زمان کنونی: ۰۷ دى ۱۴۰۳, ۰۴:۳۰ ب.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

bootstraping

ارسال:
  

لهمشد پرسیده:

bootstraping

سلام:
من تازه با سایت مانشت اشنا شدم ممکنه یکی تو ضییح بده که bootstraping چیه بگذارید من بگم یه خورده بعد تشریح کنید:
"می گن اغلب مترجم یک زبان جدید به همان زبان نوشته میشود . بعنوان مثال کا مپایلر اولیه پاسکال به پاسکال نوشته شده است . یکی از مشکلات این عمل این است که کد کامپایلر نوشته شده چطور ترجمه شود ما که کا مپایلیری نداریم که این دستورات این کامپایلر رو که به زبان پاسکال نوشته شده روش کامپایل کنیم تا کا مپایلر پاسکال برامون تولید بشه اگه هم بخواهیم روی یک کامپایلیر دیگه دستورات این کا مپایلر رو کامپایل کنیم با جمله اول که گفته" اغلب مترجم یک زبان جدید به همان زبان نوشته میشود"
تناقض داره خوب چه باید کرد:
در جواب گفته شده راه حل ارائه شده به این‌تر تیب است که ما کا مپایلر را بصورت دستی به کد میانی پاسکال تبدیل کرده و پس از ان کد کا مپایلر را به عنوان ورودی به p-code مربوطه داده و کا مپایلر ایجاد میکنند چطور اخه با مثال اگه میشه تو ضییح بدید ؟؟
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

۵۴m4n3h پاسخ داده:

RE: bootstraping

چیزی که من در مورد bootstrapping متوجه شدم این بوده:
علاوه بر مشکلی که شما توضیح دادید نوشتن کامپایلر به زبان اسمبلی بسیار مشکل هست در نتیجه از یک سلسله مراتب کامپایلر استفاده میکنیم.
اول از یک زیرمجموعه‌ی خیلی ساده از آن زبان شروع میکنیم و با صرف نظر از خیلی از امکانات با این زبان کوتاه شده یک کامپایلر می نویسیم مثلاً یک نوع حلقه‌ی تکرار داشته باشه یا اصلاً حلقه‌ی تکرار نداشته باشه و اینا با if و goto پیاده سازی بشه یا مثلاً رکورد و آرایه و اینا نداشته باشه یعنی سطح زبان رو پایین میاریم بعد با این زبان بسیار ساده که اسمش رو میذاریم micro یه زبان mini تعریف میکنیم که امکانات بیشتری داره، یعنی کامپایلر mini رو به زبان micro مینویسیم و همین روند رو ادامه میدیم تا به کامپایلری که میخوایم برسیم.
در ضمن برای micro هم با زبان ماشین یا اسمبلی کامپایلر می نویسم.
نقل قول این ارسال در یک پاسخ



پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close