写点什么

Phoenix 编译器框架说明

2008 年 5 月 28 日

Phoenix 框架的构架师 Andy Ayers,通过在 Channel9 上 做的一个视频来设法解释 Phoenix 编译器框架(Compiler Framework)究竟是什么,以及它是如何工作的。Phoenix 不仅仅限于一个编译器,它还是一个软件优化和分析框架,能被其他编译器和工具使用。 它能生成二进制代码,也能输出 MSIL 程序集。源代码可以经过分析,并被表示为 IR(中间表示,Intermediate Representation)形式,这种形式可以在后期被各种工具分析和处理。它的工作方式确实不像一个 JIT 编译器(JITer,即时编译器)。

与其它编译器相似,Phoenix 也把源代码转化为二进制内容。一个主要的区别是,Phoenix 将微软所有的编译器(超过 25 个)聚集成一个,为微软支持的所有语言和平台生成二进制文件或 MSIL 代码。

一 个绝妙的特性是,Phoenix 作为一个框架,包含一些 API,同时还是可插接的。人们能使用这些 API 编写利用 Phoenix 特性的工具。例如,开发者 可以编写他自己的工具来分析 IR 文件,并生成一些如何优化源代码的总结。可插接的特性同样会带来极大的方便。Andy 说道,微软通常需要 1-2 年的时间为 新的硬件芯片生成所有的编译器。如今,当芯片上市的时候,硬件制造商能够交付一个 Phoenix 插件,用来为新芯片编译源代码。

和其它微软的主要编译器一样,Phoenix 必须通过 Windows、Office、Visual Studio 和其他几个庞大产品的编译测试,这些产品可以把编译器推到极限。这样做保证了编译器经受了真实世界、复杂软件的检验,以检查出任何存在其中的 Bug。

这个编译器内部支持多线程,这样就能够在基于编译所用的平台上获得更快的构建时间(Build Time)。在一个四处理器的机器上,构建时间比单处理器的机器快 5 倍。

Microsoft Connect 站点最近发布了 Phoenix SDK - 2008 年 4 月 CTP 版。这个版本在 2007 年 7 月发布的早先版本的基础上,有了很多功能的增强,并对错误进行了修正。关于 Phoenix 的更多信息可以在 Microsoft Connect 找到。

查看英文原文: An Explanation of the Phoenix Compiler Framework

2008 年 5 月 28 日 08:481167
用户头像

发布了 254 篇内容, 共 40.1 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

工作日志3-1

一锅水端平

开工第一周,有哪些助你弯道超车的好书?

博文视点Broadview

产品训练营-第五周作业

羽室

云计算带来的变革将如何在2021年加速创新

浪潮云

云计算

Mac 下配置 Intellij IDEA + Tomcat 出现权限问题的解决办法

少平

tomcat

Linux入门篇 —— 手把手教你 Linux 三种网络配置方法

若尘

Linux 网络

区块链二维码溯源系统开发,区块链公共服务平台建设

WX13823153201

区块链二维码溯源系统开发

重磅!京东云自研第四代云主机发布;曝国外物理学家开发出用于量子计算机的汇编语言

京东科技开发者

微软 开发者 量子计算机 谷歌

Java 中各种DTO,POJO 等的概念

少平

重磅丨国资委下发通知,加快推进国有企业数字化转型

PingCode

团队管理 项目管理 研发管理 研发效能 研发工具

一场由fork引发的超时,让我们重新探讨了Redis的抖动问题

华为云开发者社区

数据库 redis 华为云 GaussDB fork

字节跳动力推的OKR,是未来企业发展的标配吗?

ToB行业头条

一个15年的架构师谈“如何成为一名优秀的解决方案架构师”

华为云开发者社区

架构 软件 架构师 华为云

跨云迁移过程中的数据同步及一致性校验实践(一)

UCloud技术

迁移 数据传输 数据库迁移 数据迁移

跨云迁移过程中的数据同步及一致性校验实践(二)

UCloud技术

迁移 数据传输 数据库迁移 数据迁移

ETL工具—Taskctl 如何搭建配置作业类型的管理

会飞的鱼

大数据处理 kettle 运维自动化 海豚调度 ETL

PingCode新成员Goals开放内测!

PingCode

项目管理 敏捷 敏捷开发 研发管理 研发效能

关于 Synchronized 的一个点,网上99%的文章都错了

yes

Java JVM

小心你的个人信息——GitHub 热点速览 v.21.09

HelloGitHub

GitHub 终端工具 开源项目 社交

FindBugs:Java 静态代码检查

少平

代码审查

SARIF:DevSecOps工具与平台交互的桥梁

华为云开发者社区

安全 DevSecOps SARIF 自动化平台 OASIS

vivo 官网资源包适配多场景的应用

vivo互联网技术

低代码 无服务器云函数

Spring中的事务使用注意事项

少平

spring

华为AR&VR黑科技:以“自由视角”360度尽展舞台唯美

华为云开发者社区

华为 算法 视频 AR&VR 全息显示

公安合成作战系统!智慧警务情指行一体化建设解决方案

源中瑞-龙先生

公安合成作战系统开发 产品解决方案 情指行一体化 公安

力扣 (LeetCode)-两数之和,有效的括号,两数相加

魔王哪吒

面试 算法 LeetCode 28天写作

入选SIGMOD2021的时间序列多周期检测通用框架RobustPeriod如何支撑阿里业务场景?

阿里云大数据AI技术

人工智能 数据库 大数据

神经网络攻防:01.模型到底是什么?

P小二

神经网络 网络安全 AIPwn AI安全 P小二

隧道建设手段结合科技能有多强大?盾构机可视化让工程化繁为简

一只数据鲸鱼

物联网 数据可视化 3D可视化 盾构机 隧道工程

连续两次入围Gartner魔力象限的Quick BI到底有何魔力?

Geek_459987

“蚂蚁牙黑”太火,想玩就用ModelArts做一个

华为云开发者社区

AI 动画 modelarts 图像

Phoenix编译器框架说明-InfoQ