4、自动化程序合成与传统程序评估的局限

自动化程序合成与传统程序评估的局限

1. 自动化程序合成的影响

一旦认识到计算机程序的能力,就不难发现大规模自动化程序合成的潜在影响是深远的。自动合成的程序将提高软件的健壮性,进而提升许多其他技术的健壮性。可证明正确的程序将使软件可认证,而如今这只能在非常有限的规模和特定环境下实现。自动生成的软件生产成本低且无恶意软件,在运行时间、内存占用或功耗等非功能属性方面也可能表现出色。

这些好处还将超越人类目前编程的界限。自动化程序合成可以帮助解决那些目前在概念上过于复杂或经济上不可行的任务。一个特别有用的应用是在那些对人类来说困难且繁琐,但由于各种原因(如遗留问题、高效转换为机器语言等)仍在实际中使用的编程语言中进行合成。

近年来,程序合成在两个领域取得了显著进展,具有很大的潜力:

1.1 程序改进

由于从头合成程序具有挑战性,近年来人们对改进人类编写的程序,特别是改进其非功能属性(如运行时间、内存占用或功耗)的方法越来越感兴趣。关键优势在于,人类编写的参考程序确定了合成过程的目标。它可以用作测试生成器来构建程序合成任务,也可以作为任务规范的来源,通过形式化方法从其中推导出来。当前一种用法在测试供应有限的情况下尤为有价值。

非功能属性的改进在不同的抽象层面上进行:
- 机器语言层面 :与编译器设计和代码优化中研究的重写系统相关。例如,Schkufza 等人采用马尔可夫链蒙特卡罗技术,改进了 64 位 x86 处理器的机器代码程序的运行时间。参考程序是人类编写的机器代码或从高级语言编译而来的代码。使用 Metropolis - Hastings 算法从其中随机生成新的候选程序,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值