自动程序设计

来自计算思维百科
跳转至: 导航搜索

自动程序设计的任务是设计一个程序系统,它接受关于所设计的程序要求实现某个目标的非常高级的描述作为其输入,然后自动生成一个能完成这个目标的具体程序。编制和调试一个复杂的计算机程序是件费时的繁琐工作。一方面,具有错误的程序比比皆是,而完美、无懈可击的程序却极其少有;另一方面,带来的后果是极其严重的,有时甚至是不能容忍的,计算机不允许程序存在错误,程序的失误这就造成了程序设计的困境.为了摆脱这种状况,就要从软件开发技术方面寻找出路。可以说,自动程序设计是从人工智能方面解决此问题的一种方法。自动程序设计所涉及的基本问题与定理证明和机器人学有关,要用到人工智能方法来实现,它也是软件工程和人工智能相结合的课题。

自动编制出一份程序来获得某种指定结果的任务同论证一份给定的程序将获得某种指定结果的任务是紧密相关的,前者也称程序综合,后者称为程序验证。许多自动程序设计系统将产生一份输出程序的验证作为额外的收益。自动程序设计研究的重大贡献之一是把程序调试的概念作为问题求解的策略来使用。实践已经发现,对程序设计或机器人控制问题,先产生一个代价不太高的有错误的解,然后再进行修改的作法,要比坚持要求第一次得到的解就完全没有缺陷的作法,通常效率要高得多。