این درس به بررسی مفاهیم اساسی و روشهای طراحی و پیادهسازی زبانهای برنامهنویسی میپردازد. دانشجویان با نحوهی تعریف نحوی (Syntax) و معنایی (Semantics) زبانها، روشهای تجزیه (Parsing)، ترجمه و تفسیر (Interpretation & Compilation)، مدیریت حافظه، و ویژگیهای زبانهای سطح بالا آشنا میشوند.
اهداف درس:
درک اصول طراحی زبانهای برنامهنویسی
آشنایی با انواع زبانها و پارادایمهای برنامهنویسی
یادگیری نحوهی تعریف گرامر زبان با استفاده از BNF و EBNF
آشنایی با فرآیند تجزیه و ایجاد درخت نحوی
درک روشهای پیادهسازی و اجرای زبانها، از جمله تفسیر و ترجمه
بررسی مدیریت حافظه و مفاهیم مرتبط با تخصیص و بازیابی حافظه
مطالعهی ویژگیهای پیشرفته مانند برنامهنویسی شیگرا، تابعی، و منطقی
پیشنیازها:
مفاهیم پایهای برنامهنویسی
نظریه زبانها و ماشینها
اصول طراحی کامپایلر
شیوهی ارزیابی:
تمرینات عملی و پروژههای کدنویسی
آزمونهای میانترم و پایانترم
ارائه و تحلیل زبانهای برنامهنویسی موجود
منابع پیشنهادی:
"Programming Language Pragmatics" - Michael L. Scott
"Concepts of Programming Languages" - Robert W. Sebesta
"Engineering a Compiler" - Keith D. Cooper & Linda Torczon