BT

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

微软将编译器通用基础结构开源了

| 作者 Abel Avram 关注 7 他的粉丝 ,译者 赵劼 关注 4 他的粉丝 发布于 2009年4月18日. 估计阅读时间: 2 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

微软研究院已经将“Common Compiler Infrastructure: Metadata (CCI)”和“CCI: Code and AST”两个项目开源了,其中包含了一套让编译器或编程工具操作CLR程序集元数据和调试文件的类库。CCI: Metadata组件扩展了System.Reflection,而CCI: Code and AST扩展了System.CodeDom。

CCI并不会加载它访问的程序集,而是读写它们的元数据,同时它也只会在必要时才会打开依赖的程序集。在操作CLR PE文件时,CCI可以写入任何实现了元数据模型接口(Microsoft.Cci.MetadataModel)的对象。

CCI: Metadata的API包括:

  • 一个元数据模型
  • 一个CLR PE读取器
  • 一个CLR PE写入器
  • 一个元数据辅助类(Microsoft.Cci.MetadataHelper.dll中的静态方法)
  • 元数据模型接口的实现类
  • 一个用于操作源文件的源代码模型
  • 一个PDB读取器
  • 一个PDB写入器

CCI: Code and AST项目包括:

  • 一个用于读取语句和表达式的代码模型
  • 一个可变的代码模型,可表示经过修改的代码模型,因为普通的代码模型只是提供了代码的只读视图
  • 一个用于提取AST节点的AST模型。“AST节点负责一些例如,绑定定义与名称,分辨重载,错误检查这样的事情。AST组件的设计目的是为了支持增量型编译,同时允许对不可变的代码模型进行高效的修订(projection)”

这个项目由微软研究院的RiSE团队支持。

查看英文原文:Microsoft Has Open Sourced the Common Compiler Infrastructure

评价本文

专业度
风格

您好,朋友!

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

获得来自InfoQ的更多体验。

告诉我们您的想法

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

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

评价 by Li Qiang

翻译得过于生硬,估计译者不懂相关知识。

Re: 评价 by Lee Jason

呵呵,我觉得大概意思对了就可以了,如果要仔细了解的话,自然需要去看原文以及源代码了

评价 by 李 彬

看这意思就一简单的parser,如果不包含优化操作的话没啥东西。

允许的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通知我

3 讨论

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


找回密码....

Follow

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

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

Like

内容自由定制

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

Notifications

获取更新

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

BT