Кіріспе
Компьютерлік бағдарламалаудың түрі
Компьютерлік ғылымда автоматты бағдарламалау – компьютерлік бағдарламалаудың бір түрі, онда белгілі бір механизм компьютерлік бағдарламаны жасайды, бұл бағдарламашыларға кодты жоғары деңгейде абстракциямен жазуға мүмкіндік береді. Автоматты бағдарламалаудың нақты анықтамасы бойынша бірлікке келу қиын болды, себебі оның мағынасы уақыт өте келе өзгеріп отырды. Дэвид Парнас жарияланған зерттеулерінде "автоматты бағдарламалау" тарихын қарастырып, 1940 жылдары қағаз лентасын тесудің қолмен атқарылатын процесін автоматтандыруды сипаттағанын айтты. Кейін ол Fortran және ALGOL сияқты жоғары деңгейдегі бағдарламалау тілдерін аударуға қатысты. Шындығында, компилятор ретінде танылған ең алғашқы бағдарламалардың бірі Autocode деп аталды. Парнас "автоматты бағдарламалау – бағдарламашыға бұрын қолжетімді болғаннан жоғары деңгейдегі бағдарламалау тілі үшін қолданылған жұмсақ тіл" деген қорытындыға келді. Бағдарлама синтезі – математикалық талаптарға сүйене отырып, процедураны бастапқыдан құратын автоматты бағдарламалаудың бір түрі.
Шығу тегі
UNIVAC бағдарламасының алғашқы бағдарламашысы Милдред Косс былай дейді: "Машиналық кодты жазу бірнеше еңбекке толы қадамдарды қамтыды – процесті жеке нұсқауларға бөлу, барлық командаларға нақты жад орындарын тағайындау және кіріс-шығыс буферлерін басқару. Математикалық алгоритмдерді, кіші бағдарламалар жинағын және сұрыптау бағдарламаларын іске асырғаннан кейін, біздің міндетіміз бағдарламалау процесін толық қарастыру болды. Біз сынақтан өткен кодты қайта пайдаланудың және машинаның бағдарламалауға көмектесуінің жолдарын түсінуіміз керек еді. Бағдарламалау кезінде біз процесті талдадық және осы қадамдарды жоғары деңгейдегі тілге енгізу үшін абстракциялаудың жолдарын іздедік. Осының нәтижесінде интерпретаторлар, ассемблерлер, компиляторлар және генераторлар жасалды – басқа бағдарламалармен жұмыс істеуге немесе оларды жасауға арналған бағдарламалар, яғни автоматты бағдарламалау."
Генеративтік бағдарламалау
Генеративті бағдарламалау және оған қатысты мета-бағдарламалау терминдері – бағдарламаларды «бағдарламалық құралдама компоненттерін автоматты түрде жасау үшін» жазу мүмкіндігін беретін ұғымдар. Бұл, дәл сияқты, автоматтандыру «киім, автомобиль, химиялық заттар және электроника сияқты дәстүрлі тауарлардың өндірісін» жақсартқандай. Мақсаты – бағдарламашылардың еңбек өнімділігін арттыру. Ол көбінесе компоненттік бағдарламалық жасақтама инженериясы сияқты кодты қайта пайдалану мәселелерімен байланысты.
Төмен кодты қолданбалар
Төмен кодты әзірлеу платформасы (LCDP) – бағдарламашыларға дәстүрлі компьютерлік бағдарламалаудың орнына графикалық интерфейстер мен конфигурация арқылы қолданбалы бағдарлама жасауға мүмкіндік беретін бағдарламалық қамтамасыз ету.