关注微软Phoenix项目

Phoenix开 始的时候是Microsoft Research部门的一个以构建编译器和代码分析工具的项目。起初是以一个研究开发工具包(RDK,Research Development Kit)面向教育机构发布的,但是现在它正准备发布给大部分社区。回到今年的二月份,微软的一个项目经理Sarah Derstadt曾将Phoenix声明为一个商业开发工具包(CDK,Commercial Development Kit):

Phoenix在行业内的使用仍非常限于内部研究领域。在接下来的6个月里,Phoenix团队将把这个RDK/CDK转换到我们的SDK中。这个SDK在我们将来发行Visual Studio的新版本的时候,会以一个Beta功能出现。

Kang Su总结了Phoenix的简史:

几年前,在Visual C++开发编译器后端的时候(和我们今天做的非常类似),逐渐引起大家注意的一个地方是关于重定向后端来为新平台(比如Itanium、CLR、 POWER、ARM和后来的X64等)创建代码所产生的成本。处理这样的重定向是一个痛苦的过程,VC团队的一个小团队意识到如果创建一个新的后端框架, 快速重定向到不同的平台,应该是很有价值的。

关于VC++和MSR(微软研究院)两个团队是如何结合的,Kang Su说:

当时MSR里的一些有才华的人在做着一些关于世界上最高级的二进制重写和静态分析研究方面的工作。在很多组里都有类似的工作,但他们没有共享代码。当 MSR了解到在Visual C++团队里也有这么一个新的项目的时候,激发了他们的兴趣。最终,Visual C++、MSR和CLR团队决定他们应该联合起来创建一个新的项目,它不仅能够快读重定向后端,还可作为项目迁移和分析的平台。

关于他们联姻后的成功,他总结到:

而且,团队还同意Phoenix应该作为微软的所有项目的代码生成平台。

七月份,微软发布了一个关于这个SDK的一个预发布版本。Phoenix提供了许多实现通用中间表示法的构造块:

  • 块分析
  • 内存跟踪
  • 代码覆盖
  • 错误注射
  • 运行时切面和反馈
  • 预编译器
  • 实时编译器
  • 代码优化
    • 整个项目
    • 回退链接(Post-link)
    • 运行时

微软有意将他们目前已有的25个代码生成器整合到基于Phoneix的单一平台上。Phoenix将来的震惊之处可能是它将透明性引入到了编译器和代码生成过程。这样,就打破了编译器为黑盒子的传统模型。

查看英文原文:Catching up with Phoenix

你可能感兴趣的:(关注微软Phoenix项目)