برنامه‌نویسی خودکار

در علوم کامپیوتراصطلاح برنامه‌نویسی خودکارRicardo Aler Mur, "Automatic Inductive Programming ", ICML 2006 Tutorial. June 2006. () یک نوع از برنامه‌نویسی کامپیوتر است که در آن با استفاده از برخی مکانیسم‌ها به تولید یک برنامه کامپیوتری پرداخته می‌شود و به برنامه نویسان انسانی اجازه می‌دهد در یک انتزاع سطح بالاتر برنامه بنویسند.

توافق کمی بر سر تعریف دقیق برنامه‌نویسی خودکار وجود دارد این عدم تفاهم عمدتاً به دلیل این است که معنای آن در طول زمان تغییر کرده‌است. پژوهشگر کانادایی؛ دیوید پاماس با ردیابی تاریخی "برنامه نویسی خودکار " در تحقیقات منتشر شده خود اشاره کرده‌است که آغاز برنامه‌نویسی خودکار در دهه ۱۹۴۰ و خودکارسازی فرایند پانچ دستی نوار کاغذی بوده‌است. بعد از آن به ترجمه زبان‌های برنامه‌نویسی سطح بالا مانند Fortran و ALGOL اشاره می‌کند. در واقع یکی از اولین برنامه‌هایی که به عنوان یک کامپایلر شناخته می‌شود، Autocode نامیده می‌شد. Parnas به این نتیجه رسید که "برنامه نویسی خودکار همیشه تعبیری برای برنامه نویسی با زبان‌های سطح بالاتر است که در دسترس برنامه نویس بود."D. L. Parnas. "Software Aspects of Strategic Defense Systems." American Scientist. November 1985.

سنتز برنامه یک نوع اتوماتیک برنامه‌نویسی است که در آن یک روال از ابتدا و بر اساس ملزومات ریاضیاتی ایجاد شده‌است.

 ریشه 
میلدرد Koss به عنوان یک برنامه‌نویس پیشتاز در UNIVAC توضیح می‌دهد: «نوشتن کد شامل چندین مرحله خسته کننده شامل: —شکستن یک فرایند به دستورالعمل‌های گسسته، تخصیص مکان‌های حافظه ای خاص به تمام دستورها و مدیریت بافر I/O است. بعد از دنبال کردن این مراحل به منظور پیاده‌سازی روال‌های ریاضی، کتابخانه ای از زیرروال‌ها و مرتب‌سازی برنامه‌ها، وظیفه بعدی بررسی روال بزرگتر برنامه‌نویسی بود. ما نیاز به دریافت درک درست از روش صحیح استفاده مجدد از کدهای تست شده داشتیم و ماشین در این برنامه‌نویسی کمک می‌کرد. همان‌طور که برنامه می‌نوشتیم، روال‌ها را امتحان می‌کردیم و تلاش می‌کردیم به روشهایی برای انتزاعی سازی این گام‌ها فکر کنیم تا بتوانیم آنها را در برنامه‌های سطح بالاتر ترکیب کنیم. این تلاش‌ها منجر به توسعه مفسرها، اسمبلرها، کامپایلرها و مولدهای برنامه‌نویسی برای کار و تولید برنامه‌های دیگر شد که به‌صورت خودکار برنامه‌نویسی شده‌اند.»Chun, Wendy. "On Software, or the Persistence of Visual Knowledge." Grey Room 18. Boston: 2004, pg. 30.

هدف این است که بهره‌وری برنامه‌نویس بهبود داده شود.James Wilcox, "Paying Too Much for Custom Application Development", March 2011. این ایده اغلب مربوط به موضوعات استفاده مجدد از کد از جمله مهندسی نرم‌افزار مبتنی بر مولفه است.

 تولید منبع کد 
تولید منبع-کد، فرایند تولید منبع کد بر اساس شرح مسئله یا یک مدل آنتولوژی مانند یک الگو است و با یک ابزار برنامه‌نویسی مانند یک پردازنده الگوی یا یک محیط توسعه مجتمع (IDE) انجام می‌شود. این ابزارها اجازه تولید منبع کد از طریق گونه‌های مختلف معنی را می‌دهد.

برنامه‌هایی که می‌توانند کد کوبل را تولید کنند: عبارتند از:
 سری DYL250/DYL260/DYL270/DYL280
 شرکت کنترل کسب و کار 's SB-5
 بسته نرم‌افزار-برنامه-ژنراتور PMM2170 از پیت مارویک میچل'

این ترم افزار درج و لغو کدهای کوبل را پشتیبانی می‌کند.

 جستارهای وابسته 
 زبان مدل‌سازی
 زبان برنامه‌نویسی نسل چهارم

 منابع 



رده:پارادایم‌های برنامه‌نویسی