![](https://csdnimg.cn/release/download_crawler_static/88451494/bg1.jpg)
自动程序设计
自动程序设计的含义
自动程序设计,是指采用自动化的手段进行程序设计的技术。后引申为采用自动化手段
进行开发的技术和过程。其目的是提高生产率和产品质量,并且它在软件工程、流水线控制
等领域均有广泛的运用。
自动程序设计的含义按广义和狭义,横向和纵向,可以分成几个类型。
广义含义
按照广义的理解,自动程序设计是尽可能借助计算机系统,尤指自动的程序设计系统进
行工程开发的过程。这里的开发指的是,从问题的非形式描述,经形式的软件功能规格说明、
设计规格说明,到可执行的程序代码、调试,及至确认、交付使用的全过程。
狭义含义
按照狭义的理解,自动程序设计指的是从形式的功能和规格的说明,到可执行的程序代
码的这个过程的自动化。
纵向理解
按纵向理解,低级的自动化指从设计规格说明,到可执行的程序代码这一过程的自动化,
系统只是起到了程序员的作用;中级的自动化指的是从除了设计还有功能的规格说明,到可
执行的程序代码的过程的自动化,系统除了起到程序人员的作用外,还起设计员、系统分析
员的作用;高级的自动化则解决了从非形式的描述到可执行的代码当中整个过程的自动化问
题,系统除了起程序员、设计员、系统分析员的作用外,还起到了领域专家的部分作用。
横向理解
按横向理解,在上述各种纵向理解级别上,根据人工干预的程度,又可区分各种不同的
自动化级别。
自动程序设计的任务是设计一个程序系统,它接受关于所设计的程序要求实现某个目标
非常高级描述作为其输入,然后自动生成一个能完成这个目标的具体程序。在某种意义上说,
编译程序实际上就是去做“自动程序设计”的工作。编译程序是接受一段有关干某件事情的
源码说明(源程序),然后转换成一个目标码(目的程序)程序去完成这件事情。而这里所
说的自动程序设计相当于一种“超级编译程序”,它要求能对高级描述进行处理,通过规划
过程,生成的到所需的程序。因而自动程序设计所涉及的基本问题与定理证明和机器人学有