Programarea automată în informatică și inginerie informatică se referă la producerea de cod de programare a computerului de către un anumit sistem sau software, ca răspuns la intrările sau comenzile mai abstracte ale utilizatorului. Într-un sens, programarea automată descrie orice situație în care un computer sau un software va înlocui o instrucțiune introdusă de un programator cu un bloc de cod care poate efectua în mod concret acțiunile descrise în instrucțiune. Când este folosită într-un alt sens, programarea automată poate descrie scopul creării unui limbaj de programare sau a unui sistem care să poată asambla intuitiv o aplicație finalizată, bazată doar pe cea mai simplă direcție de la programator. Programarea automată poate fi utilizată în unele domenii de cercetare informatică pentru a se referi la procesul de proiectare a unui sistem de inteligență artificială (AI) capabil fie să producă în mod autonom un program pentru a finaliza o sarcină, fie să-și modifice propriul cod pentru a îmbunătăți funcționalitatea.
Definiția programării automate este oarecum vagă. Inițial, a fost folosit în primii ani ai programării computerelor pentru a descrie traducerea instrucțiunilor abstracte asemănătoare unui limbaj de asamblare în cod mașină extins. Aceasta a fost numită programare automată deoarece compilatorul înlocuia automat o singură declarație care poate fi citită de om cu zeci sau mai multe instrucțiuni de cod de mașină, scriind în esență automat programul într-un mod primitiv. Aceleași acțiuni sunt încă efectuate de către compilatoarele de limbaj în majoritatea cazurilor, indiferent de limbajul de programare suprapus utilizat.
O altă utilizare a termenului „programare automată” este de a descrie generarea automată de cod. Acesta este momentul în care un mediu de dezvoltare integrat (IDE) sau un alt instrument poate fi folosit vizual, sau într-un mod foarte ușor, pentru a specifica modul în care un utilizator final ar vedea un program. Odată ce rezultatul dorit este creat, software-ul sau IDE-ul poate produce automat cod sursă funcțional pentru a obține rezultatul fără nicio introducere suplimentară din partea programatorului.
În unele cazuri, programarea automată se referă și la studiul modului de implementare a limbajelor la un nivel atât de înalt încât codul sursă să arate ca un limbaj natural. Un limbaj de programare ca acesta ar produce automat aplicația pe baza intrării ample a programatorului. Indiferent cât de automat devine un limbaj, trebuie remarcat însă că programatorul trebuie la un moment dat să modifice manual codul pentru o anumită funcționalitate folosind limbajul de programare în sine.
În domeniul inteligenței artificiale, unele cercetări sunt efectuate în dezvoltarea unui sistem care se poate programa automat pentru a adăuga capacități care nu i-au fost oferite inițial. Acest lucru se extinde și la AI care sunt capabile să scrie software independent care poate rezolva o anumită problemă. O aplicație ar fi crearea unui limbaj de programare care ar putea folosi AI pentru a genera prototipuri rapide de programe.