توضیحات درس

توصیف درس

کامپایلر نرم‌افزاری است که یک کد که به زبان خاصی نوشته شده را به زبان ماشین ترجمه می‌کند و ما در این درس به پیچیدگی‌ها و مفاهیم مربوط به کامپایلر می‌پردازیم تا حدی که بتوانیم یک کامپایلر برای خودمان طراحی و تولید کنیم.

سرفصل‌های تقریبی

  1. تحلیل واژگانی
  2. تجزیه زبان
  3. تجزیه بالا به پایین
  4. تجزیه پایین به بالا
  5. بررسی انواع
  6. محیط اجرا
  7. تولید کد
  8. کد میانی و بهینه‌سازی محلی
  9. بهینه‌سازی سرتاسری
  10. انتساب ثباته
  11. مدیریت حافظه
  12. امنیت زبان

پیش‌نیازها

اصول سیستم‌های کامپیوتری به ما یاد می‌دهد چه اجزاء سخت‌افزاری را چگونه در کنار هم قرار بدهیم تا یک سخت‌افزار برای محاسبه کردن تولید کنیم. سیستم عامل ابزارهایی طراحی می‌کند که داشتن آن‌ها به اجرای یک یا چند نرم‌افزار در کنار هم کمک می‌کند. در درس کامپایلر می‌آموزیم چگونه نرم‌افزاری اجرایی تولید کنیم که با سیستم عامل و با واسطه (یا با کمک) سیستم عامل با کامپیوتر کار کند. بدین ترتیب گذارندن درس‌های اصول سیستم‌های کامپیوتری و سیستم عامل برای این درس لازم خواهد بود.

منابع درس

درس کامپایلر دانشگاه استنفورد

Aho, Alfred V., et al. Compilers: Principles, Techniques, & Tools. Pearson Education India, 2007.

نحوه‌ی ارائه‌ی کلاس

کلاس به صورت برخط و هم‌زمان ارائه می‌شود.

نحوه ارزش‌یابی

در مجموع برای تحویل تمرین‌ها می‌توانید ۱۰ روز تاخیر بدون کسر نمره داشته باشید که ساعتی محاسبه می‌شود.

جدول زمانی و توضیحات تمرین‌ها

دستیاران آموزشی درس (به ترتیب الفبا)

نام دستیاران ایمیل
آقای زارع ihaveint در جی‌میل

کلاس حل تمرین

کلاسی برای تعریف پروژه خواهید داشت.