Software Synthesis
مقطع: تحصیلات تکمیلی | گرایش: نرمافزار |
نوع درس: نظری | تعداد واحد: ۳ |
پیشنیاز: – | همنیاز: – |
سنتز نرمافزار به مجموعه روشها و الگوریتمهایی اطلاق میشود که از توصیف برنامه مورد نظر، متن کد برنامه را تولید میکنند. سنتز نرمافزار یک دانش میانرشتهای است. تکنیکهای سنتز از یک سو با اتکا به مبانی ریاضی زبانهای برنامهسازی و از سوی دیگر بر مبنای الگوریتمهای هوش مصنوعی کار میکنند. یکی از اهداف مهم سنتز یاری رساندن به افرادی است که تخصص برنامهنویسی ندارند. این افراد با ارائه توصیفهای سطح بالا نظیر مثالهایی برای رفتار برنامه، میتوانند ایجاد برنامه جدید کنند. دانشجویان در این درس با حیطههای کلاسیک و جدید نظیر برنامهنویسی با مثال، سنتز حل محدودیت توسط ابزار SMT solver، سنتز با کمک انواع، سنتز در علوم داده و سنتز با کمک شبکههای عصبی آشنا میشوند.