U računarstvu, izraz automatsko programiranje[1] predstavlja tip računarskog programiranja u kojem neki mehanizmi kreiraju računarski program da pomognu programerima pisanje koda na višem apstraktnom nivou.
Postoji malo sporazuma u vezi sa preciznom definicijom automatskog programiranja, najviše zbog njenog značenja koje se promijenilo s vremenom. David Parnas, prateći historiju "automatskog programiranja" u objavljenim istraživanjima, zabilježio je da je ono u 1940tim opisivalo automatizaciju ručnog procesa probijanja papirne trake. Kasnije je opisivalo prevođenje programskih jezika visokog nivoa kao što su Fortran i ALGOL. Ustvari, jedan od najranijih programa koje je mogao identificirati kompajler imao je naziv Autocode. Parnas je zaključio da je "automatsko programiranje uvijek bilo eufemizam za programiranje u jezicima višeg nivoa koji su tada bili dostupni programeru."[2]