【24h】

Optimizing Programs with Intended Semantics

机译:使用预期语义优化程序

获取原文
获取原文并翻译 | 示例

摘要

Modern object-oriented languages have complex features that cause programmers to overspecify their programs. This overspecification hinders automatic optimizers, since they must preserve the overspecified semantics. If an optimizer knew which semantics the programmer intended, it could do a better job.rnMaking a programmer clarify his intentions by placing assumptions into the program is rarely practical. This is because the programmer does not know which parts of the programs' overspecified semantics hinder the optimizer. Therefore, the programmer has to guess which assumption to add. Since the programmer can add many different assumptions to a large program, he will need to place many such assumptions before he guesses right and helps the optimizer.rnWe present Iopt, a practical optimizer that uses a specification of the programmers' intended semantics to enable additional optimizations. That way, our optimizer can significantly improve the performance of a program. We present case studies in which we use Iopt to speed up two programs by a factor of 2.rnTo make specifying the intended semantics practical, Iopt communicates with the programmer. Iopt identifies which assumptions the programmer should place, and where he should place them. Iopt ranks each assumption by (I) the likelyhood that the assumption conforms to the programmers' intended semantics and (ii) how much the assumption will help Iopt improve the programs' performance. Iopt proposes ranked assumptions to the programmer, who just picks those that conform to his intended semantics. With this approach, Iopt keeps the programmers' specification burden low. In our case studies, programmers had to add just a few assumptions to realize significant performance speedups.
机译:现代的面向对象的语言具有复杂的功能,导致程序员过度说明自己的程序。这种超规范阻碍了自动优化器的运行,因为它们必须保留超规范的语义。如果优化器知道程序员打算使用哪种语义,则可以做得更好。rn让程序员通过将假设放入程序中来阐明自己的意图几乎是不现实的。这是因为程序员不知道程序中过度指定的语义的哪些部分阻碍了优化器。因此,程序员必须猜测要添加哪个假设。由于程序员可以在大型程序中添加许多不同的假设,因此他需要先放置许多这样的假设,然后才能猜对并帮助优化程序。rn我们介绍了Iopt,这是一种实用的优化程序,它使用程序员的预期语义规范来实现其他功能优化。这样,我们的优化器可以显着提高程序的性能。我们介绍了一些案例研究,其中我们使用Iopt将两个程序的速度提高了2倍。为了使指定的语义切实可行,Iopt与程序员进行了交流。 Iopt确定了程序员应该放置哪些假设以及他应该放置在什么位置。 Iopt通过(I)假设符合程序员预期语义的可能性以及(ii)多少假设将有助于Iopt改善程序性能来对每个假设进行排名。 Iopt向程序员提出了排名假设,程序员只挑选符合其预期语义的假设。通过这种方法,Iopt可以降低程序员的规范负担。在我们的案例研究中,程序员仅需添加一些假设即可实现显着的性能提升。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号