2009-05-06 68 views
0
  1. 你如何准确地执行“共同”?
  2. Kleene不动点定理如何帮助优化?
  3. 在非功能语言编写的程序中,如何消除局部函数定义中的自由变量?

编辑:这些不是我的家庭作业问题。我正在休息。编辑2:嗯,我只是开始研究编译器优化,并没有我想要优化的特定代码。你能告诉我什么是你可以使用上述三种优化技术的一般方法,或者至少告诉我正确解释它们的资源?困惑三种优化技术

+3

你对此有什么特别的困惑? – 2009-05-06 19:45:43

回答

0

这些是我在网上找到的,如果有人可以访问更多信息,请回复。

威廉·克林格提出两种上述技术,并期待到班上更有趣的: http://www.ccis.neu.edu/home/will/csg262_fall2004/syllabus.html

这些人使用的是克林代数的数据流分析。我认为我们可以在优化编译器中使用它: http://ieeexplore.ieee.org/Xplore/login.jsp?url=http://ieeexplore.ieee.org/iel5/4159639/4159640/04159673.pdf%3Fisnumber%3D4159640%26prod%3DCNF%26arnumber%3D4159673%26arSt%3D201%26ared%3D210%26arAuthor%3DFernandes%252C%2BT.&authDecision=-203

不幸的是,上述论文需要登录。

这是我发现了大约共用(但没有帮助太多): http://www.patentsurf.net/7,516,448

2
  1. 共用由底向上的散列完成。
  2. Kleene定理允许编译器实现递归方程的迭代解,该方程给出有关程序的事实。一个事实的简单例子是,在某个点上,变量i总是等于0.
  3. 如果在封闭函数中有一个带有自由变量的let-bound或lambda-bound的本地函数,则根据定义你正在处理一种具有一流功能的语言。自由变量通常通过闭包转换来处理,尽管一些编译器使用lambda提升。

推荐搜索词:

  • 自下而上散列
  • 共子表达式消除
  • 迭代数据流分析
  • 数据流优化变得简单
  • 延续传递,封扯皮风格
  • 关闭转换
  • Lambda起重机
0

来自诺曼的好答案。(我只是希望你的教授不会混淆编译器可能做的优化和软件编程人员可能做的优化,后者不是一个技术主题,所以没有多少关于它的说法,但在实际应用中它是数量级更加显着。)