Microsoft Has Open Sourced the Common Compiler Infrastructure

Microsoft Research开源了Common Compiler Infrastructure (CCI): Metadata 和 CCI: Code and AST 项目,包含用于操作 CLR 组件和调试文件元数据的库。CCI:Metadata 包括 System.Reflection 的替代方案,而 CCI:Code and AST 则提供了 System.CodeDom 的替代品。

Microsoft Research has open sourced the Common Compiler Infrastructure: Metadata (CCI) and CCI: Code and AST projects containing a set of libraries used by compilers and other programming tools to manipulate metadata in CLR assemblies and debug files. The CCI: Metadata components subsume System.Reflection while CCI: Code and AST subsumes System.CodeDom.

CCI does not actually load the assemblies it accesses, but it reads/writes their metadata, and it does not open a dependency assembly until it is needed. When working with CLR PE files, CCI can write to them any object that implements the metadata model interfaces (Microsoft.Cci.MetadataModel).

The CCI: Metadata API contains:

  • a Metadata Model
  • a CLR PE Reader
  • a CLR PE Writer
  • a metadata helper class (static methods in Microsoft.Cci.MetadataHelper.dll)
  • implementation classes for the Metadata Model interfaces
  • a Source Model to work with source files
  • a PDB reader
  • a PDB writer

The CCI: Code and AST project contains:

  • a Code Model used to read statements and expressions
  • a Mutable Code Model which represents a modified code model since the Code Model offers a read-only view of the code
  • an AST Model to extract AST nodes. “AST nodes take care of things such as binding names to definitions, overload resolution and error checking. The AST components are designed to support incremental compilation, while allowing for efficient projection onto the immutable code model.”

The project is supported by RiSE, a Microsoft Research team.

 from:http://www.infoq.com/news/2009/04/Open-Source-CCI;jsessionid=B169C7533F915EF866B37F43FEC7434C

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值