点击围观!腾讯 TAPD 助力金融行业研发提效、敏捷转型最佳实践! 了解详情
写点什么

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

  • 2009-04-17
  • 本文字数:570 字

    阅读完需:约 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

2009-04-17 05:362346
用户头像

发布了 157 篇内容, 共 50.1 次阅读, 收获喜欢 5 次。

关注

评论

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

2023年最佳Aspera替代方案,选择适合的Aspera替代方案

镭速

云原生架构如何落地实践

Onegun

微服务 云原生 小程序容器

一文教你轻松创建数字孪生实例——实践类

阿里云AIoT

阿里云 物联网 IoT

志愿者招募令|来!一起Build OceanBase第一次开发者大会

OceanBase 数据库

数据库 oceanbase

今天,我想去一个平行世界

阿里云视频云

云计算 云渲染

根据文本描述生成视频,Tune-A-Video 效果惊艳

Zilliz

计算机视觉

C++入门简单实例

老王同学

c++ 入门

索信达董事长吴辅世:忆Teradata中国创业岁月,看未来数据精神永流传

索信达控股

一文深度解读音视频行业技术发展历程

阿里云视频云

云计算

分析视角下银行业数据平台架构演进及实现

HashData

一文看懂:近期不断 “狂飙” 的 ChatGPT | 社区征文

架构精进之路

ChatGPT

22道js输出顺序问题,你能做出几道

loveX001

JavaScript 前端

美团前端二面面试题

loveX001

JavaScript 前端

号码隐私保护服务:保障亿万消费者的隐私安全

阿里云视频云

云计算

ChatGPT看技术发展趋势| 社区征文

向阳逐梦

人工智能 openai ChatGPT

数据合规可信计划暨国内首个数据合规标准发布!易观作为标准起草单位应邀参加

易观分析

数据 数字化 信息化

点维文化宣布通过百度智能云接入文心一言

Geek_2d6073

顶会论文 | 阿里云视频摘要SOTA模型:用于视频摘要的多层时空网络

阿里技术

人工智能

FLstudio2023水果编曲软件下载及中文语言切换教程

茶色酒

FLstudio2023

如何开发一个市值管理机器人?

加密先生

机器人开发

见山,见路,见天地:OpenHarmony的开源共建攀登

脑极体

开源鸿蒙

面试官:说说Event Loop事件循环、微任务、宏任务

loveX001

JavaScript 前端

如何在阿里云上快速实现企业实例一键迁移——实践类

阿里云AIoT

阿里云 物联网 IoT

一次线上OOM问题分析

艾小仙

Java OOM 问题排查 排查方法

Apache Flink 入选 2022 年“科创中国”开源创新榜

Apache Flink

大数据 flink 实时计算

一起玩转开源数据库!OceanBase DevCon 之开源生态全景解析

OceanBase 数据库

数据库 oceanbase

重磅 | 超级自动化行业黑马九科信息再获数千万A+轮融资 ——电科信息领投,深创投索斯福跟投,老股东信天创投、青松基金追加投资

九科Ninetech

前端经典面试题(有答案)

loveX001

JavaScript 前端

NLP 双数组字典树(double array trie) 基于darts-java改进,增加词性存储。

alexgaoyh

elasticsearch nlp darts-java 词性 double array trie

YOLOv5全面解析教程⑤:计算mAP用到的Numpy函数详解

OneFlow

人工智能 深度学习

N皇后问题的回溯法实现

老王同学

c++ 八皇后 回溯法

微软将编译器通用基础结构开源了_.NET_Abel Avram_InfoQ精选文章