کامپایلر – 002

توضیحات درس

توصیف درس

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

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

  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 در جی‌میل

کلاس حل تمرین

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