在计算机科学中,术语自动编程,称谓一种类型的计算机程序,它基于某种机制生成计算机程序,这允许人类编程者在更高的抽象层次上写代码。
在自动编程的严格定义上少有一致意见,很大程度上因为它的含义随着时间而改变。David Parnas在他的关于“自动编程”历史的出版研究中,指出在1940年代它描述手工处理打孔纸带的自动化。后来它指称高级语言如Fortran和ALGOL的转译。事实上,最老的可辨识为编译器的程序之一就叫作Autocode(英语:Autocode)。Parnas的结论是“自动编程一直就是用比编程者平常用的语言更高层的语言来编程的婉语”。
程序合成(英语:Program synthesis)是一种类型的自动编程,这里的过程是基于数学上的要求而从头做起创建的。