دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۶
  • اردیبهشت

جلسه ۰۳ : مراحل و فازهای طراحی کامپایلر

  • دسته‌بندی‌ها :
جلسه ۰۳ : مراحل و فازهای طراحی کامپایلر
    • جزئیات
    • نوع محتواآموزشی

      سلام و وقت بخیر خدمت همراهان وب سایت آموزشی پی وی لرن. با دوره کامل آموزش طراحی کامپایلر در خدمت شما عزیزان خواهیم بود. بررسی مراحل و فازهای طراحی کامپایلر را در این بخش مورد بررسی قرار خواهیم داد.

      بررسی مراحل و فازهای طراحی کامپایلر

      مراحل تدوین کامپایلر شامل دنباله ای از مراحل مختلف است. هر مرحله ورودی خود را از مرحله قبلی می گیرد ، نمایش سورس پروگرام خود را دارد و خروجی خود را به مرحله بعدی کامپایلر وارد می کند. بگذارید مراحل یک کامپایلر را بهتر درک کنیم.

       

      بررسی مراحل و فازهای طراحی کامپایلر

      بررسی مراحل و فازهای طراحی کامپایلر

      تحلیل گر واٰژه ای (Lexical Analysis)

      تحلیل گر واژه‌ ای (Lexical Analysis) اولین مرحله از کامپایلر است. این فاز کد منبع اصلاح‌ شده ای را از پیش پردازنده‌ های زبان برنامه‌ نویسی که به شکل جملاتی نوشته می شوند ، می گیرد. تحلیل گر واژه‌ای با حذف هر گونه فاصله یا کامنت ها در کد منبع ، این ترکیب ها را به یک سری توکن ها تجزیه می کند.

      مثال : 

      تحلیل گر نحوی (Syntax analyser)

      مرحله بعدی، آنالیز نحوی نامیده می شود. این توکن تولید شده توسط تحلیل گر واٰژه ای را به عنوان ورودی می گیرد و یک درخت تجزیه تولید می کند. در این مرحله ، ساختار گرامری یک دستور، بر اساس ترتیبات توکن ها منبع بررسی می شود ، یعنی تجزیه کننده چک می کند آیا عبارتی که توسط توکن ها ساخته شده از نظر نحوی صحیح است.

      تحلیلگر معنایی (Semantic Analysis)

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

      تولید کننده کد میانی (Intermediate Code Generation)

      پس از تحلیلگر معنایی ، کامپایلر یک کد میانی از کد منبع را برای دستگاه مورد نظر تولید می کند. این برنامه ای برای برخی از دستگاه های انتزاعی است و بین زبان سطح بالا و زبان دستگاه قرار دارد. این کد میانی باید به گونه ای تولید شود که امکان ترجمه آن به کد ماشین مورد نظر را آسان تر کند.

      بهینه سازی کد (code optimization)

      در مرحله بهینه سازی کد (code optimization)، بهینه سازی کد میانی انجام می شود. بهینه سازی را می توان این گونه فرض کرد که خطوط کدهای غیر ضروری را حذف می کند و توالی عبارات را برای سرعت بخشیدن به اجرای برنامه، بدون اتلاف منابع (CPU ، حافظه) ترتیب می دهد.

      تولید کننده کد (Code generator)

      در این مرحله ، تولید کننده کد (Code generator) کد میانی را تحویل می گیرد و آن را به زبان دستگاه هدف نگاشت می کند. تولید کننده کد (Code generator) کد میانی را به دنباله ای از (معمولاً) کدهای  ماشین ترجمه می کند. توالی دستورالعمل های کد ماشین همانطور که کد میانی وظیفه را انجام می داد آن ها را انجام می دهد.

      جدول علائم (Symbol Table)

      جدول علائم (Symbol Table) یک ساختمان داده است که در تمام مراحل یک کامپایلر نگه داری می شود. تمام اسامی شناسه به همراه انواع آن ها در این جا ذخیره می شود. جدول نماد باعث می شود که کامپایلر بتواند سریع سوابق شناسه را جستجو و بازیابی کند. از جدول نمادها برای مدیریت دامنه استفاده می شود.

      کلام پایانی

      در این بخش از آموزش طراحی کامپایلر با بررسی مراحل و فازهای طراحی کامپایلر آشنا شدیم. در جلسه ی آینده توضیحات بیشتری راجع به تحلیل گر نحوی (Syntax analyser) خواهیم داشت.

      QR:  جلسه ۰۳ : مراحل و فازهای طراحی کامپایلر
      به اشتراک بگذارید