BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

关注微软Phoenix项目

| 作者 James Vastbinder 关注 0 他的粉丝 ,译者 霍泰稳 关注 1 他的粉丝 发布于 2007年8月24日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT